1.數字證書的基本功能
數字證書是由證書頒發機構簽署的數字文件,包含公鑰所有者信息、公鑰、頒發者信息、有效期和壹些擴展信息。
從證書的用途來看,數字證書可以分為簽名證書和加密證書。簽名證書主要用於對用戶信息進行簽名,保證信息的完整性和行為的不可否認性;加密證書主要用於對用戶傳輸的信息進行加密,保證信息的機密性。下面從原理上描述數字證書的基本功能。
身份認證
在每個應用系統中,往往需要完成用戶的身份認證,以確定誰在使用系統,以及可以給用戶什麽樣的操作權限。到目前為止,身份認證技術已經發展成為壹個成熟的技術體系,其中使用數字證書來完成身份認證是最安全有效的技術手段之壹。
用數字證書完成身份認證,被認證方(A)必須先在相關數字證書運營機構申請數字證書,然後將證書提交給應用系統認證方(B)完成身份認證。
通常,使用數字證書的身份驗證過程如下圖所示:
被認證方(A)使用自己的簽名私鑰加密隨機數;
被認證方(A)將其簽名證書和密文發送給被認證方(B);
b驗證A提供的簽名證書的有效期和證書鏈,並完成黑名單檢查,失敗則放棄;
有效期、證書鏈、黑名單驗證完畢後,乙方用甲方的簽名證書對甲方提供的密文進行解密,成功表示可以接受甲方提交的簽名證書中所述的身份。
在上述過程中,步驟3描述了證書本身的驗證,依次分別驗證有效期、證書鏈和黑名單。如果某壹步驗證失敗,驗證過程將立即終止,沒有必要進行下壹步驗證。同時,有效期、證書鏈和黑名單的順序驗證順序是最合理的順序,可以使驗證過程達到最佳性能。
通過第三步的驗證後,可以對甲方提交的證書進行驗證,但這與甲方本身是否等同於證書中所述的實體沒有必然聯系,甲方必須表明自己是該簽名證書對應的唯壹私鑰的所有者。因此,當步驟4成功執行,即簽名證書可以被解密時,就意味著甲方擁有了私鑰,從而完成了對甲方聲明的身份的認證..
上面具體描述的是單向認證,即只有B認證A的身份,而A不認證B的身份。單向認證並不是完美的安全措施,誠實可信的用戶A可能會遭遇類似“釣魚網站”的欺騙。因此,在需要高安全性的應用環境中,也需要實現雙向認證。即乙方還需要向甲方提供其簽名證書,由甲方完成上述驗證過程,以確認乙方的身份。如下圖。
數字簽名
數字簽名是數字證書的重要應用功能之壹。所謂數字簽名,是指證書用戶(A)用自己的簽名私鑰對原始數據哈希變換得到的消息摘要進行加密得到的數據。信息接收者(B)通過使用信息發送者的簽名證書解密附加到原始信息的數字簽名,獲得消息摘要,並通過使用相同的散列算法計算接收的原始數據的消息摘要。通過兩者的比較,可以驗證原始信息是否被篡改。數字簽名可以保護數據的完整性和數據傳輸的不可否認性。
使用數字證書完成數字簽名功能,需要在業務流程中使用數字證書的簽名功能之前,向相關數字證書運營機構申請具有數字簽名功能的數字證書。
通常,簽署數字證書和驗證數字證書簽名的過程如下所示:
簽名發送方(A)使用哈希算法計算要發送的明文的摘要;
a使用其簽名私鑰加密摘要以獲得密文;
a將密文、明文和簽名證書發送給簽名驗證方B;
乙壹通過A的簽名證書對A發來的密文進行解密,得到壹個摘要,另壹方面用同樣的哈希算法對明文計算出摘要。
b比較兩個摘要,如果相同,則可以確認明文在傳輸過程中沒有被更改,信息是由證書中聲明其身份的實體發送的。
如果需要確認A的身份是否與證書中聲明的壹致,您需要執行身份認證過程,如前壹節所述。
在上述過程中,數字簽名功能可以通過使用簽名私鑰結合哈希算法來完成。在數字簽名過程中,可以明確數據完整性在傳輸過程中是否被破壞,數據發送行為是否是簽名證書中所述身份的行為,提供數據完整性和行為不可否認性的功能。數字證書和A的身份確認需要通過身份認證過程來明確。
數字信封
數字信封是數字證書的另壹個重要應用功能,其效果類似於普通信封。普通信封受法律約束,確保只有收信人才能閱讀信的內容;數字信封使用密碼技術,確保只有指定的收件人才能閱讀“信”的內容。
數字信封中使用對稱加密和公鑰加密。信息發送方(A)使用隨機生成的對稱密鑰對信息進行加密,然後使用接收方(B)的公鑰對對稱密鑰進行加密。由公鑰加密的對稱密鑰稱為數字信封。在傳輸信息時,當信息接收方要對信息進行解密時,必須先用自己的私鑰對數字信封進行解密,獲得對稱密鑰,然後才能用對稱密鑰對獲得的信息進行解密。數字信封可以指定數據接收者,並確保數據傳輸過程的機密性。
使用數字證書完成數字信封功能,需要在業務流程中使用數字證書的數字信封功能之前,向相關數字證書運營機構申請具有加密功能的數字證書。
通常拆數字信封和數字信封的過程如圖所示:
信息發送方(A)生成對稱密鑰;
a使用對稱密鑰對要發送的信息進行加密,得到密文;
a使用信息接收者(B)的加密證書中的公共密鑰對對稱密鑰進行加密,以獲得數字信封;
a將密文和數字信封發送給B;
b用自己的加密私鑰拆開數字信封,得到對稱密鑰;
用對稱密鑰解密密文,得到明文。
在上述過程中,信息發送方(A)用接收方(B)的加密證書對用於加密明文信息的對稱密鑰進行加密,得到壹個數字信封,利用私鑰的唯壹性,保證只有擁有相應私鑰的B才能拆開數字信封,從而讀取明文信息。因此,A可以確認只有B可以讀取該信息,並且B可以確認該信息在傳輸期間是保密的。