數字證書-基礎瞭解篇
什麼是數字證書?
¤是由證書籤證機關(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)中檢查證書是否已經被撤銷。
數字證書由誰來頒發,如何頒發?
數字證書是由認證中心頒發的。
認證中心是一家能向用戶簽發數字證書以確認使用者身份的管理機構。為了防止數字憑證的偽造,認證中心的公共金鑰必須是可靠的,認證中心必須公佈其公共金鑰或由更高級別的認證中心提供一個電子憑證來證明其公共金鑰的有效性,後一種方法導致了多級別認證中心的出現。
數字證書頒發過程如下:使用者首先產生自己的金鑰對,並將公共金鑰及部分個人身份資訊傳送給認證中心。認證中心在核實身份後,將執行一些必要的步驟,以確信請求確實由使用者傳送而來,然後,認證中心將發給使用者一個數字證書,該證書內包含使用者的個人資訊和他的公鑰資訊,同時還附有認證中心的簽名信息。使用者就可以使用自己的數字證書進行相關的各種活動。