什么是數字證書?
¤是由證書簽證機關(CA)簽發的對用戶的公鑰的認證。因此,證書的內容應包括CA的信息、用戶信息、用戶公鑰及CA簽發時間及有效期等內容。目前國際上對證書的格式及認證方法遵從X.509體系標準。
¤數字證書實際上是一份電子文檔
¤數字證書是一段包含用戶身份信息、用戶公鑰信息以及身份驗證機構數字簽名的數據。身份驗證機構的數字簽名可以確保證書信息的真實性。證書格式及證書內容遵循X.509標準。
¤數字證書又稱為數字標識(Digital Certificate,Digital ID)。它提供了一種在Internet上身份驗證的方式,是用來標志和證明網絡通信雙方身份的數字信息文件,與司機駕照或日常生活中的身份證相似。在網上進行電子商務活動時,交易雙方需要使用數字證書來表明自己的身份,并使用數字證書來進行有關的交易操作。通俗地講,數字證書就是個人或單位在Internet的身份證。數字證書主要包括三方面的內容:證書所有者的信息、證書所有者的公開密鑰和證書頒發機構的簽名。
證書里包含了什么?
¤一個標準的X.509數字證書包含以下一些內容:
證書的版本信息;
證書的序列號,每個證書都有一個唯一的證書序列號;
證書所使用的簽名算法;
證書的發行機構名稱,命名規則一般采用X.500格式;
證書的有效期,現在通用的證書一般采用UTC時間格式,它的計時范圍為1950-2049;
證書所有人的名稱,命名規則一般采用X.500格式;
證書所有人的公開密鑰;
證書發行者對證書的簽名。
數字證書能解決什么問題?
在使用數字證書的過程中應用公開密鑰加密技術,建立起一套嚴密的身份認證系統,它能夠保證:
信息除發送方和接受方外不被其他人竊取;
信息在傳輸過程中不被篡改;
接收方能夠通過數字證書來確認發送方的身份;
發送方對于自己發送的信息不能抵賴。
以電子郵件為例,數字證書主要可以解決:
保密性:通過使用發件人的數字證書對電子郵件加密,只有收件人才能閱讀加密的郵件,這樣保證在Internet上傳遞的電子郵件信息不會被他人竊取,即使發錯郵件,收件人由于無法解密而不能夠看到郵件內容。
完整性:利用發件人數字證書在傳送前對電子郵件進行數字簽名不僅可確定發件人身份,而且可以判斷發送的信息在傳遞的過程中是否被篡改過。
身份認證:在Internet上傳遞電子郵件的雙方互相不能見面,所以必須有方法確定對方的身份。利用發件人數字證書在傳送前對電子郵件進行數字簽名即可確定發件人身份,而不是他人冒充的。
不可否認性:發件人的數字證書只有發件人唯一擁有,故發件人利用其數字證書在傳送前對電子郵件進行數字簽名后,發件人就無法否認發送過此電子郵件。
數字證書的原理是什么?
數字證書采用PKI(Public Key Infrastructure)公開密鑰基礎架構技術,利用一對互相匹配的密鑰進行加密和解密。每個用戶自己設定一把特定的僅為本人所知的私有密鑰(私鑰),用它進行解密和簽名;同時設定一把公共密鑰(公鑰),由本人公開,為一組用戶所共享,用于加密和驗證簽名。當發送一份保密文件時,發送方使用接收方的公鑰對數據加密,而接收方則使用自己的私鑰解密,通過數字的手段保證加解密過程是一個不可逆過程,即只有用私有密鑰才能解密,這樣保證信息安全無誤地到達目的地。用戶也可以采用自己的私鑰對發送信息加以處理,形成數字簽名。由于私鑰為本人所獨有,這樣可以確定發送者的身份,防止發送者對發送信息的抵賴性。接收方通過驗證簽名還可以判斷信息是否被篡改過。在公開密鑰基礎架構技術中,最常用一種算法是RSA算法,其數學原理是將一個大數分解成兩個質數的乘積,加密和解密用的是兩個不同的密鑰。即使已知明文、密文和加密密鑰(公開密鑰),想要推導出解密密鑰(私密密鑰),在計算上是不可能的。按現在的計算機技術水平,要破解目前采用的1024位RSA密鑰,需要上千年的計算時間。
數字證書的應用
現有持證人甲向持證人乙傳送數字信息,為了保證信息傳送的真實性、完整性和不可否認性,需要對要傳送的信息進行數字加密和數字簽名,其傳送過程如下:
(1) 甲準備好要傳送的數字信息(明文)。
(2) 甲對數字信息進行哈希(hash)運算,得到一個信息摘要。
(3) 甲用自己的私鑰(SK)對信息摘要進行加密得到甲的數字簽名,并將其附在數字信息上。
(4) 甲隨機產生一個加密密鑰(DES密鑰),并用此密鑰對要發送的信息進行加密,形成密文。
(5) 甲用乙的公鑰(PK)對剛才隨機產生的加密密鑰進行加密,將加密后的DES密鑰連同密文一起傳送給乙。
(6) 乙收到甲傳送過來的密文和加過密的DES密鑰,先用自己的私鑰(SK)對加密的DES密鑰進行解密,得到DES密鑰。
(7) 乙然后用DES密鑰對收到的密文進行解密,得到明文的數字信息,然后將DES密鑰拋棄(即DES密鑰作廢)。
(8) 乙用甲的公鑰(PK)對甲的數字簽名進行解密,得到信息摘要。
(9) 乙用相同的hash算法對收到的明文再進行一次hash運算,得到一個新的信息摘要。
(10)乙將收到的信息摘要和新產生的信息摘要進行比較,如果一致,說明收到的信息沒有被修改過。
在(5)處用到的PK,是否來自乙所持有的的數字證書?若是,從何處得到該數字證書?關于此過程的加密解密,是怎樣實現?
A 如何獲得通訊對方的公鑰并且相信此公鑰是由某個身份確定的人擁有的,這就要用到電子證書。電子證書是由大家共同信任的第三方---認證中心(Certificate Authority,CA)來頒發的,有某人的身份信息、公鑰和CA的數字簽名。任何一個信任CA的通訊一方,都可以通過驗證對方電子證書上的CA數字簽名來建立起和對方的信任,并且獲得對方的公鑰以備使用。
數字證書的使用
每一個用戶有一個各不相同的名字,一個可信的證書認證中心(CA)給每個用戶分配一個唯一的名字并簽發一個包含名字和用戶公開密鑰的證書。
如果甲想和乙通信,他首先必須從數據庫中取得乙的證書,然后對它進行驗證。如果他們使用相同的CA,事情就很簡單。甲只需驗證乙證書上CA的簽名;如果他們使用不同的CA,問題就復雜了。甲必須從CA的樹形結構底部開始,從底層CA往上層CA查詢,一直追蹤到同一個CA為止,找出共同的信任CA。
證書可以存儲在網絡中的數據庫中。用戶可以利用網絡彼此交換證書。當證書撤銷后,它將從證書目錄中刪除,然而簽發此證書的CA仍保留此證書的副本,以備日后解決可能引起的糾紛。
如果用戶的密鑰或CA的密鑰被破壞,從而導致證書的撤銷。每一個CA必須保留一個已經撤銷但還沒有過期的證書廢止列表(CRL)。當甲收到一個新證書時,首先應該從證書廢止列表(CRL)中檢查證書是否已經被撤銷。
數字證書由誰來頒發,如何頒發?
數字證書是由認證中心頒發的。
認證中心是一家能向用戶簽發數字證書以確認用戶身份的管理機構。為了防止數字憑證的偽造,認證中心的公共密鑰必須是可靠的,認證中心必須公布其公共密鑰或由更高級別的認證中心提供一個電子憑證來證明其公共密鑰的有效性,后一種方法導致了多級別認證中心的出現。
數字證書頒發過程如下:用戶首先產生自己的密鑰對,并將公共密鑰及部分個人身份信息傳送給認證中心。認證中心在核實身份后,將執行一些必要的步驟,以確信請求確實由用戶發送而來,然后,認證中心將發給用戶一個數字證書,該證書內包含用戶的個人信息和他的公鑰信息,同時還附有認證中心的簽名信息。用戶就可以使用自己的數字證書進行相關的各種活動。