數字證書技術

前 言
    隨着Internet在國內的日益普及,以網上銀行、網上購物爲代表的電子商務已越來越受到人們的重視,深入到普通百姓的生活中。目前,在國內的電子商務中缺少相應的技術手段來保障網上交易的安全性、權威性。衆所周知,在常規業務中,交易雙方現場交易,可以確認購買雙方的身份,即對客戶而言,商家是我要購物的地方,而非其他商場。對商家而言,購買者在現場無須擔心假冒。同時由於有商場開具的發票和客戶現場支付商品費用,無須擔心發身糾紛,無憑證可依。但在網上做交易時,由於交易雙方並不現場交易,因此,無法確認雙方的合法身份,同時交易信息是交易雙方的商業祕密,在網上傳輸時必須作到安全傳輸,防止信息被竊取;雙方的交易非現場交易,一旦發身糾紛,必須能夠提供仲裁。
    因此,在電子商務中,必須從技術上保證在交易過程中能夠實現:身份認證、安全傳輸、不可否認性、數據一致性。在採用數字證書認證體系之前,交易安全一直未能真正的得到解決。由於數字證書認證技術採用了加密傳輸和數字簽名技術,能夠實現上述要求,因此在國內外的電子商務中,都達到了廣泛的採用,以數字證書認證來保證交易能夠得到正常的執行。
一.數字證書概述
    數字證書是一段包含用戶身份信息、用戶公鑰信息以及身份驗證機構數字簽名的數據。身份驗證機構的數字簽名可以確保證書信息的真實性,用戶公鑰信息可以保證數字信息傳輸的完整性,用戶的數字簽名可以保證數字信息的不可否認性。
    數字證書是各類終端實體和最終用戶在網上進行信息交流及商務活動的身份證明,在電子交易的各個環節,交易的各方都需驗證對方數字證書的有效性,從而解決相互間的信任問題。
    數字證書是一個經證書認證中心(CA)數字簽名的包含公開密鑰擁有者信息以及公開密鑰的文件。認證中心(CA)作爲權威的、可信賴的、公正的第三方機構,專門負責爲各種認證需求提供數字證書服務。認證中心頒發的數字證書均遵循X.509 V3標準。X.509標準在編排公共密鑰密碼格式方面已被廣爲接受。X.509證書已應用於許多網絡安全,其中包括IPSec(IP安全)、SSL、 SET、S/MIME。
二.應用數字證書的必要性
    數字信息安全主要包括以下幾個方面:
    ·身份驗證(Authentication)
    ·信息傳輸安全
    ·信息保密性(存儲與交易)( Confidentiality)
    ·信息完整性(Integrity)
    ·交易的不可否認性(Non-repudiation)

    對於數字信息的安全需求,通過如下手段加以解決:
    ·數據保密性----加密
    ·數據的完整性----數字簽名
    ·身份鑑別----數字證書與數字簽名
    ·不可否認性----數字簽名
    ·爲了保證網上信息傳輸雙方的身份驗證和信息傳輸安全,目前採用數字證書技術來實現,從而實現對傳輸信息的機密性、真實性、完整性和不可否認性。
 
三.數字證書內容及格式
    數字證書包括證書申請者的信息和發放證書CA的信息,認證中心所頒發的數字證書均遵循X.509 V3標準。數字證書的格式在ITU標準和X.509 V3裏定義。根據這項標準,數字證書包括證書申請者的信息和發放證書CA的信息。X.509數字證書內容:
    證書各部分的含義:
    域 含義
    ·Version 證書版本號,不同版本的證書格式不同
    ·Serial Number 序列號,同一身份驗證機構簽發的證書序列號唯一
    ·Algorithm Identifier 簽名算法,包括必要的參數
    ·Issuer 身份驗證機構的標識信息
    ·Period of Validity 有效期
    ·Subject 證書持有人的標識信息
    ·Subject's Public Key證書持有人的公鑰
    ·Signature 身份驗證機構對證書的簽名
證書內容由以下兩部分組成:
(1) 申請者的信息
    ·第一部分申請者的信息,數字證書裏的數據包括以下信息:
    ·版本信息,用來與X.509的將來版本兼容;
    ·證書序列號,每一個由CA發行的證書必須有一個唯一的序列號;
    ·A所使用的簽名算法;
    ·發行證書CA的名稱;
    ·證書的有效期限;
    ·證書主題名稱;
    ·被證明的公鑰信息,包括公鑰算法、公鑰的位字符串表示;
    ·包含額外信息的特別擴展。
(2)發放證書CA的信息
    第二部分CA的信息,數字證書包含發行證書CA的簽名和用來生成數字簽名的簽名算法。任何人收
到證書後都能使用簽名算法來驗證證書是否是由CA的簽名密鑰簽發的。
 
四.驗證證書
    持證人甲想與持證人乙通信時,他首先查找數據庫並得到一個從甲到乙的證書路徑(certification path)和乙的公開密鑰。這時甲可使用單向或雙向驗證證書。
    單向驗證是從甲到乙的單向通信。它建立了甲和乙雙方身份的證明以及從甲到乙的任何通信信息的完整性。它還可以防止通信過程中的任何攻擊。
    雙向驗證與單向驗證類似,但它增加了來自乙的應答。它保證是乙而不是冒名者發送來的應答。它還保證雙方通信的機密性並可防止攻擊。
    單向和雙向驗證都使用了時間標記。
    單向驗證如下:
    (1) 甲產生一個隨機數Ra。
    (2) 甲構造一條消息,M=(Ta,Ra,Ib,d),其中Ta是甲的時間標記,Ib是乙的身份證明,d爲任意的一條數據信息。爲安全起見,數據可用乙的公開密鑰Eb加密。
    (3) 甲將(Ca,Da(M))發送給乙。(Ca爲甲的證書,Da爲甲的私人密鑰)
    (4) 乙確認Ca並得到Ea。他確認這些密鑰沒有過期。(Ea爲甲的公開密鑰)
    (5) 乙用Ea去解密Da(M),這樣既證明了甲的簽名又證明了所簽發信息的完整性。
    (6) 爲準確起見,乙檢查M中的Ib。
    (7) 乙檢查M中的Ta以證實消息是剛發來的。
    (8) 作爲一個可選項,乙對照舊隨機數數據庫檢查M中的Ra以確保消息不是舊消息重放。
    雙向驗證包括一個單向驗證和一個從乙到甲的類似的單向驗證。除了完成單向驗證的(1)到(8)步外,雙向驗證還包括:
    (9) 乙產生另一個隨機數,Rb。
    (10)乙構造一條消息,Mm=(Tb,Rb,Ia,Ra,d),其中Tb 是乙的時間標記,Ia是甲的身份,d爲任意的數據。爲確 保安全,可用甲的公開密鑰對數據加密。Ra是甲在第 (1) 步中產生的隨機數。
    (11)乙將Db(Mm)發送給甲。
    (12)甲用Ea解密Db(Mm),以確認乙的簽名和消息的完整 性。
    (13)爲準確起見,甲檢查Mm中Ia。
    (14)甲檢查Mm中的Tb,並證實消息是剛發送來的。
    (15)作爲可選項,甲可檢查Mm中的Rb以確保消息不是重放的舊消息。
五.數字證書使用
    每一個用戶有一個各不相同的名字,一個可信的證書認證中心(CA)給每個用戶分配一個唯一的名字並簽發一個包含名字和用戶公開密鑰的證書。
    如果甲想和乙通信,他首先必須從數據庫中取得乙的證書,然後對它進行驗證。如果他們使用相同的CA,事情就很簡單。甲只需驗證乙證書上CA的簽名;如果他們使用不同的CA,問題就複雜了。甲必須從CA的樹形結構底部開始,從底層CA往上層CA查詢,一直追蹤到同一個CA爲止,找出共同的信任 CA。
    證書可以存儲在網絡中的數據庫中。用戶可以利用網絡彼此交換證書。當證書撤銷後,它將從證書目錄中刪除,然而簽發此證書的CA仍保留此證書的副本,以備日後解決可能引起的糾紛。
    如果用戶的密鑰或CA的密鑰被破壞,從而導致證書的撤銷。每一個CA必須保留一個已經撤銷但還沒有過期的證書廢止列表(CRL)。當甲收到一個新證書時,首先應該從證書廢止列表(CRL)中檢查證書是否已經被撤銷。
    現有持證人甲向持證人乙傳送數字信息,爲了保證信息傳送的真實性、完整性和不可否認性,需要對要傳送的信息進行數字加密和數字簽名,其傳送過程如下:
    (1)甲準備好要傳送的數字信息(明文)。
    (2)甲對數字信息進行哈希(hash)運算,得到一個信息摘要。
    (3)甲用自己的私鑰(SK)對信息摘要進行加密得到甲的數字簽名,並將其附在數字信息上。
    (4)甲隨機產生一個加密密鑰(DES密鑰),並用此密鑰對要發送的信息進行加密,形成密文。
    (5)甲用乙的公鑰(PK)對剛纔隨機產生的加密密鑰進行加密,將加密後的DES密鑰連同密文一起傳給乙。
    (6)乙收到甲傳送過來的密文和加過密的DES密鑰,先用自己的私鑰(SK)對加密的DES密鑰進行解密,得到DES密鑰。
    (7)乙然後用DES密鑰對收到的密文進行解密,得到明文的數字信息,然後將DES密鑰拋棄(即DES密鑰作廢)。
    (8)乙用甲的公鑰(PK)對甲的數字簽名進行解密,得到信息摘要。 乙用相同的hash算法對收到的明文再進行一次hash運算,得到一個新的信息摘要。
    (9)乙將收到的信息摘要和新產生的信息摘要進行比較,如果一致,說明收到的信息沒有被修改過。
六.證書存放方式
    數字證書可以存放在計算機的硬盤、隨身軟盤、IC卡或CUP卡中。
    用戶數字證書在計算機硬盤中存放時,使用方便,但存放證書的PC機必須受到安全保護,否則一旦被攻擊,證書就有可能被盜用。
    使用軟盤保存證書,被竊取的可能性有所降低,但軟盤容易損壞。一旦損壞,證書將無法使用。
    IC卡中存放證書是一種較爲廣泛的使用方式。因爲IC卡的成本較低,本身不易被損壞。但使用IC卡加密時,用戶的密鑰會出卡,造成安全隱患。
    使用CUP卡存放證書時,用戶的證書等安全信息被加密存放在CUP卡中,無法被盜用。在進行加密的過程中,密鑰可以不出卡,安全級別最高,但相對來說,成本較高。
七.結束語
    目前在網上傳輸信息時,普遍使用X.509V3格式的數字證書。在數字信息傳輸前,首先傳輸雙方互相交換證書,驗證彼此的身份;然後,發送方利用證書中的加密密鑰和簽名密鑰對要傳輸的數字信息進行加密和簽名,這就保證了只有合法的用戶才能接收該信息,同時保證了傳輸信息的機密性、真實性、完整性和不可否認性。從而保證網上信息的安全傳輸。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章