了解數字證書
雖然公鑰加密通過允許許多人使用一個密鑰來簡化了密鑰管理,但存在一個問題:如何分發公鑰,以便使用者可以找到它并知道它是有效的。
在 S/MIME 中,此問題的解決方案是使用數字證書。數字證書是 S/MIME 與其他許多競争的郵件安全解決方案的不同之處。
了解數字證書與公鑰加密
數字證書是數字形式的辨別,與護照或駕駛員執照十分類似。數字證書是數字憑據,它提供有關實體辨別的資訊以及其他支援資訊。數字證書是由稱為證書頒發機構 (CA) 的權威機構頒發的。由于數字證書由證書權威機構頒發,是以由該權威機構擔保證書資訊的有效性。此外,數字證書隻在特定的時間段内有效。
數字證書對公鑰加密提供支援,因為數字證書包含證書中所辨別的實體的公鑰。由于證書将公鑰與特定的個人比對,并且該證書的真實性由頒發機構保證,是以,數字證書為如何找到使用者的公鑰并知道它是否有效這一問題提供了解決方案。這些問題通過使用者從數字證書中擷取另一使用者的公鑰來解決。該使用者知道它是有效的,因為該證書是由可信任的證書頒發機構頒發的。
此外,數字證書依賴公鑰加密來證明證書自己的身份。當頒發數字證書時,證書頒發機構使用它自己的私鑰對證書進行簽名。若要驗證數字證書的真實性,使用者可以擷取該證書頒發機構的公鑰,并對證書使用該公鑰,以确定它是否是由該證書頒發機構簽名的。
了解數字證書的結構
要使數字證書有用,它的結構必須采用一種可了解且可靠的形式,以便人們可以輕松地檢索并了解證書内的資訊。例如,護照采用這樣一種結構:人們可以輕松地了解以前從未見過的那一類護照中的資訊。同樣,隻要數字證書是标準化的,則無論頒發該證書的是哪個機構,人們都可以閱讀并了解該證書。
S/MIME 标準規定:用于 S/MIME 的數字證書應遵守國際電信同盟 (ITU) X.509 标準。S/MIME 版本 3 明确要求數字證書應遵循 X.509 的第 3 版。由于 S/MIME 依賴于已建立的數字證書結構公認标準,是以 S/MIME 标準建立在該标準的發展之上,進而提高了它的認可度。
X.509 标準規定數字證書應包含标準化資訊。具體地說,X.509 版本 3 證書包含下列字段:
版本号 證書所遵循的 X.509 标準的版本。
序列号 唯一辨別證書且由證書頒發機構頒發的編号。
證書算法辨別 證書頒發機構用來對數字證書進行簽名的特定公鑰算法的名稱。
頒發者名稱 實際頒發該證書的證書頒發機構的辨別。
有效期 數字證書保持有效的時間段,并包含起始日期和過期日期。
使用者名稱 數字證書所有者的姓名。
使用者公鑰資訊 與數字證書所有者關聯的公鑰以及與該公鑰關聯的特定公鑰算法。
頒發者唯一辨別符 可以用來唯一辨別數字證書頒發者的資訊。
使用者唯一辨別符 可以用來唯一辨別數字證書所有者的資訊。
擴充資訊 與證書的使用和處理有關的其他資訊。
證書頒發機構的數字簽名 使用證書算法辨別符字段中指定的算法以及證書頒發機構的私鑰進行的實際數字簽名。
由于 S/MIME 需要 X.509 v3 證書,是以該資訊還描述了 S/MIME 對其特定證書所使用的特征。
重要資訊:
X.509 v3 标準是統管數字證書的标準。它沒有為特定于 S/MIME 的證書提供标準。有關特定于 S/MIME 的數字證書的資訊在 S/MIME RFC 中說明。
雖然數字證書是電子的,但請記住,由于數字證書是标準化的,是以可以用在大量裝置上,而不僅僅是個人計算機上。數字證書可以用在手持裝置、手機和便攜式卡(稱為智能卡)上。智能卡可以用在各種不同的裝置上,并且在某些方面,很适合用于數字證書。智能卡使得數字證書可以像傳統的駕駛員執照或護照一樣便于攜帶,便于使用。
對于 S/MIME 的成功,通過 S/MIME RFC 和 X.509 版本 3 标準實作的 S/MIME 證書标準化是一個關鍵要素,因為它使得任何遵守該标準的應用程式都能了解數字證書。
數字證書和公鑰基礎結構
公鑰加密的優勢之一是,由于用一個密鑰對取代了大量的對稱密鑰,是以減少了密鑰管理的工作量。數字證書進一步增強了這一優勢,它解決了公鑰的分發和管理問題。但是,數字證書無法進行自我管理。由于數字證書固有的廣為分發的特點,是以,設計這些證書的管理方案時,必須考慮到數字證書的分發性這一特點。數字證書需要一種有效的基礎結構,以便在證書的使用環境中管理證書。公鑰基礎結構 (PKI) 與數字證書是不可分割的。PKI 負責頒發證書,它通過目錄確定這些證書的分發,并驗證證書。PKI 負責基礎工作,其中包括支援數字證書,并使它們可以提供 S/MIME 等服務所依賴的功能。
由于 PKI 的規模大,而且很複雜,是以超過了本書所講述的範圍。這裡所提供的資訊着重講述 PKI 和數字簽名如何配合工作,以實作郵件安全性。有許多很優秀的資源講述了 PKI。您可以從 PKI 供應商的文檔以及其他專門涉及 PKI 的資訊源中擷取有關 PKI 的詳細資訊。
PKI 如何實作郵件安全性
PKI 通過頒發證書,并使證書可以通過目錄進行通路,來提供使數字證書得以使用的方式。PKI 還通過驗證證書的真實性、證書的有效性并是以而驗證證書的可信性來驗證數字證書。這些服務對于數字證書非常關鍵,因為數字證書使用第三方證書頒發機構,進而依賴于分布式模型。
若要了解 PKI 如何驗證證書,請記住證書頒發機構在頒發數字證書方面的角色。如本主題前面的“了解數字證書與公鑰加密”中所讨論,證書頒發機構擔保辨別的有效性,并通過使用其公鑰對數字證書進行簽名來說明這一點。檢查證書的真實性意味着必須驗證證書頒發機構的數字簽名。PKI 通過為驗證證書頒發機構的簽名提供手段來驗證證書。如果無法驗證簽名,則可以将證書視為不可信。
如本主題開頭所述,任何安全方法都不是十全十美的。數字證書的安全性可能被破壞,這通常發生在私鑰丢失的情況下。要使數字證書可信,必須存在一種在數字證書過期前将其取消或“吊銷”的方法,就好像可以取消被盜的信用卡。證書吊銷是 PKI 用來支援數字證書的另一關鍵服務,也是數字證書驗證過程的另一部分。
由于 PKI 確定數字證書可信,是以 PKI 是數字證書不可或缺的一個部分。如果沒有 PKI,您将無法使用數字證書。由于 Exchange Server 2003 支援 X.509 v3 證書,是以具體哪些 PKI 支援 Exchange 安裝将取決于 Exchange 所使用的數字證書。但是,從郵件安全性的角度來看,所有 PKI 都提供這些基礎服務以支援數字證書。具體的 PKI 之間的差異與實作和設計有關,并與每一個 PKI 部署的具體情況有關。
使用數字證書實作郵件安全性
了解數字證書以及它如何支援公鑰加密後,下一步便是将該資訊應用于郵件安全領域。下一部分向您介紹數字證書如何為核心安全服務(包括數字簽名和郵件加密)提供支援。
如何将數字證書用于數字簽名
數字證書以及電子郵件的數字簽名
捕獲郵件。
計算郵件的哈希值。
從發件人的數字證書中檢索發件人的私鑰。
使用發件人的私鑰加密哈希值。
将加密的哈希值作為數字簽名附加到郵件中。
發送郵件。
下圖顯示在添加了數字證書的支援元素的情況下進行驗證的順序。
數字證書以及驗證電子郵件的數字簽名
接收郵件。
從郵件中檢索包含加密哈希值的數字簽名。
檢索郵件。
從發件人的數字證書中檢索發件人的公鑰。
使用發件人的公鑰解密加密的哈希值。
将解密的哈希值與接收郵件時産生的哈希值進行比較。
如果值比對,則說明郵件有效。
這一系列操作顯示,數字證書可以為驗證數字簽名而讓驗證過程通路公鑰。
如何将數字證書用于郵件加密
數字證書以及電子郵件的加密
從收件人的數字證書中檢索公鑰。
生成一次性對稱會話密鑰。
使用會話密鑰對郵件執行加密操作。
使用收件人的公鑰加密會話密鑰。
将加密的會話密鑰包含在加密的郵件中。
下圖顯示在添加了數字證書的支援元素的情況下進行解密的順序。
數字證書以及電子郵件的解密
從郵件中檢索加密的郵件和加密的會話密鑰。
從收件人的數字證書中檢索收件人的私鑰。
使用收件人數字證書中的收件人私鑰解密會話密鑰。
使用解密的會話密鑰解密郵件。
将未加密的郵件傳回給收件人。
如何将數字證書用于數字簽名和郵件加密
數字簽名和郵件加密互為補充。下圖顯示在添加了數字簽名的支援元素的情況下進行簽名和加密的順序。
數字證書以及對電子郵件進行數字簽名和加密
從收件人的數字證書中檢索收件人的公鑰。
下圖顯示在添加了公鑰加密的支援元素的情況下對數字簽名進行解密和驗證的順序。
數字證書以及解密電子郵件和驗證數字簽名
通過了解數字證書如何實作公鑰加密,以及公鑰加密如何為數字簽名和郵件加密提供基本的安全服務,您已了解 S/MIME 郵件安全的工作原理。這些概念共同組成了郵件安全的基礎核心。