瞭解數位憑證
上次修改主題的時間: 2005-05-19
雖然公開金鑰加密可讓許多人共同使用一個金鑰組,進而簡化金鑰的管理,但仍有一個問題:如何散佈公開金鑰,讓使用者能找到並確定其是否有效。
在 S/MIME 中,使用數位憑證即可解決這個問題。數位憑證的使用,是 S/MIME 與眾多同類的郵件安全性解決方案的不同之處。
數位憑證是一種數位形式的識別,與一般的護照或駕照相似。數位憑證是一種數位式的憑證,可針對某個體提供其身分的相關資訊,以及其他資訊。數位憑證是由授權單位所發行,稱為憑證授權單位 (CA)。由於數位憑證是由憑證授權單位所發行,因此憑證單位必須保證憑證資訊的有效性。此外,數位憑證也有特定的有效期限。
數位憑證可支援公開金鑰加密,因為數位憑證對於憑證中所識別的個體,具有其公開金鑰。由於憑證會與某特定人員的公開金鑰相符,且受到發行者的背書,因此數位憑證可解決如何尋找使用者公開金鑰及其是否有效的問題。其解決方式在於,使用者可以透過數位憑證取得其他使用者的公開金鑰。由於憑證是由值得信任的憑證授權單位所發行,所以使用者知道該憑證確實有效。
此外,數位憑證本身的驗證必須仰賴公開金鑰加密。在發行數位憑證時,憑證授權單位會使用本身的私密金鑰來簽署所發行的憑證。若想確認數位憑證是否可信,使用者可取得該憑證授權單位的公開金鑰,與憑證進行核對,以判斷其是否確由憑證授權單位所簽署。
數位憑證若要實用,就必須以易懂而可靠的方式來建構,如此,使用者才能輕易擷取並瞭解憑證中的資訊。舉例來說,護照便是遵循類似的結構模式,使人們能夠輕易地瞭解其中的資訊,即使是從未見過的護照類型,也不會有問題。同樣地,數位憑證若能標準化,將有助於其閱讀與瞭解,不會因發行單位不同而產生問題。
依 S/MIME 標準,S/MIME 所使用的數位憑證,必須符合國際電信聯盟 (ITU) X.509 的標準。S/MIME 第 3 版特別要求,數位憑證必須符合第 3 版的 X.509。在數位憑證的結構方面,由於 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 RFC 與 X.509 第 3 版的標準,S/MIME 憑證的標準化已成為 S/MIME 成功的關鍵要素,因為它確保了所有符合此標準的裝置都能使用數位憑證。
公開金鑰加密的優點之一,就是使金鑰管理更為方便,因為一個金鑰組可抵多個對稱式金鑰。數位憑證讓公開金鑰得以散佈並接受管理,因而更加凸顯了這項優點。然而,數位憑證無法自我管理。根據設計,數位憑證會廣泛地流傳,因此在管理這些憑證時,必須考慮數位憑證的分散特性。數位憑證必須要有一個正常執行的基礎結構,以便在欲使用憑證的環境中管理之。公開金鑰基礎結構 (PKI) 與數位憑證密不可分。PKI 負責發行憑證、確保這些憑證能透過目錄散佈,以及確認憑證的工作。PKI 負責的基礎作業可支援數位憑證,使其能夠提供 S/MIME 等服務所賴以執行的功能。
礙於篇幅及此主題的複雜性,PKI 不在本書的討論範圍內。本書將著重於 PKI 及數位憑證如何與郵件安全性搭配使用。討論 PKI 的資源相當多。請參考 PKI 供應商的文件與其他 PKI 相關資源,以取得更多更深入的 PKI 資訊。
PKI 可發行憑證,並使其透過目錄被存取,從而提供數位憑證讓人使用。PKI 也可驗證憑證的真實性、有效性,及其是否值得信任,藉以確認數位憑證。這些服務對數位憑證而言是相當重要的,因為數位憑證所仰賴的,是一種透過第三方憑證授權單位的散佈機制。
數位憑證發行與發佈至目錄時所使用的特定方式,取決於各個特定的 PKI 產品及其實作方式。整體而言,PKI 在發行數位憑證及發佈這些憑證的相關資訊時,會以其他應用程式能夠存取的目錄作為目的地。其中有些資訊是用來確認數位憑證的。如<瞭解公開金鑰加密>中<結合公開金鑰加密與郵件安全性>所討論,郵件安全性作業必須具備寄件者與收件者公開金鑰的存取權限。由於數位憑證可提供這項資訊,因此能否存取使用者的數位憑證,對郵件安全性系統就非常重要。透過提供數位憑證的存取權限,PKI 得以享有公開金鑰加密的優勢,即省去手動交換金鑰的必要,使金鑰的管理更為簡便。PKI 可透過目錄提供數位憑證,讓有需要的應用程式可以隨時取用。
想瞭解 PKI 確認憑證的方式,請牢記憑證授權單位在發行數位憑證時所扮演的角色。如本主題稍早的<瞭解數位憑證與公開金鑰加密>所討論,負責發行的憑證授權單位會使用公開金鑰來簽署數位憑證,以擔保身分的有效性。要檢查憑證的真實性,就必須驗證憑證授權單位的數位簽章。PKI 可以驗證負責發行之憑證授權單位的簽章,進而完成憑證的確認。若簽章無法被確認,則為不可信任的憑證。
本主題開頭已提過,沒有任何一種安全性方法是完美的。數位憑證也可能遭受損害,最常見的就是由於私密金鑰的遺失。數位憑證若要可靠,就必須要有方法,能在數位憑證到期之前予以取消或「撤銷」,就像取消失竊的信用卡一樣。憑證撤銷是 PKI 用以支援數位憑證的另一項重要服務,屬於數位憑證驗證程序中的另一個部份。
由於 PKI 可以確保數位憑證的可信度,故為數位憑證不可或缺的一部份。沒有 PKI,就無法使用數位簽章。由於 Exchange Server 2003 可支援 X.509 v3 憑證,因此支援 Exchange 安裝的特定 PKI,將取決於 Exchange 所使用的數位憑證。但從郵件安全性的立場來看,所有 PKI 都提供這些基本服務,以支援數位憑證。特定 PKI 之間的不同點在於其實作及設計的方式,並且因各 PKI 的部署而異。
瞭解數位憑證及其如何支援公開金鑰加密之後,接著就要將此資訊運用到郵件安全性中。下一節將說明,數位憑證如何支援數位簽章與郵件加密所屬的核心安全性服務。
如<瞭解公開金鑰加密>的<公開金鑰加密與數位簽章>所討論,公開金鑰與使用者私密金鑰的關係,可讓收件者對寄件者的郵件進行驗證與確認。數位憑證提供可靠的方法來散佈及存取公開金鑰,藉以支援公開金鑰加密。寄件者在郵件上簽章時,必須根據數位憑證上所使用的公開金鑰,提供與其關聯的私密金鑰。相對地,收件者在確認郵件上的數位簽章時,必須取得公開金鑰,從寄件者的數位憑證上執行該項作業。下圖顯示簽章作業搭配數位憑證的流程。
- 擷取郵件。
- 計算郵件的雜湊值。
- 從寄件者的數位憑證中,擷取寄件者的私密金鑰。
- 使用寄件者的私密金鑰,對雜湊值進行加密。
- 將加密的雜湊值附加到郵件上,成為數位簽章。
- 傳送郵件。
下圖顯示驗證作業搭配數位憑證的流程。
- 接收郵件。
- 從郵件中擷取含有加密雜湊值的數位簽章。
- 擷取郵件。
- 計算郵件的雜湊值。
- 從寄件者的數位憑證中,擷取寄件者的公開金鑰。
- 使用寄件者的公開金鑰,對已加密的雜湊值進行解密。
- 將解密完成的雜湊值與接收時所產生的雜湊值進行比較。
- 若兩個值相符,即為有效郵件。
如此流程所示,數位憑證可提供公開金鑰的存取權限,供數位簽章驗證之用。
數位憑證可讓公開金鑰供驗證程序使用,藉以支援數位簽章。同樣地,數位憑證也讓公開金鑰能夠用於加密程序中,從而支援郵件的加密。如<瞭解公開金鑰加密>的<公開金鑰加密與郵件加密>所討論,寄件者可存取收件者的公開金鑰,用以進行郵件加密,並確定只有收件者能將該郵件解密。此時,加密作業所仰賴的是收件者的數位憑證。有了數位簽章,來自數位憑證的公開金鑰可讓作業得以執行。下圖顯示加密作業搭配數位憑證的流程。
- 擷取郵件。
- 從收件者的數位憑證中,擷取公開金鑰。
- 產生執行一次的對稱式工作階段金鑰。
- 使用工作階段金鑰,對郵件進行加密。
- 使用收件者的公開金鑰,對工作階段金鑰進行加密。
- 將已加密的工作階段金鑰附加於加密的郵件中。
- 傳送郵件。
下圖顯示解密作業搭配數位憑證的流程。
- 接收郵件。
- 從郵件中擷取加密的郵件與加密的工作階段金鑰。
- 從收件者的數位憑證中,擷取收件者的私密金鑰。
- 使用來自於收件者數位憑證的收件者私密金鑰,對工作階段金鑰進行解密。
- 使用已解密的工作階段金鑰,對郵件進行解密。
- 將未加密的郵件傳回給收件者。
數位簽章與郵件加密是互補性的服務。下圖顯示簽章與加密作業搭配數位簽章的流程。
- 擷取郵件。
- 計算郵件的雜湊值。
- 從寄件者的數位憑證中,擷取寄件者的私密金鑰。
- 從收件者的數位憑證中,擷取收件者的公開金鑰。
- 使用寄件者的私密金鑰,對雜湊值進行加密。
- 將加密的雜湊值附加到郵件上,成為數位簽章。
- 產生執行一次的對稱式工作階段金鑰。
- 使用工作階段金鑰,對郵件進行加密。
- 使用收件者的公開金鑰,對工作階段金鑰進行加密。
- 將已加密的工作階段金鑰附加於加密的郵件中。
- 傳送郵件。
下圖顯示解密作業與數位簽章驗證作業搭配公開金鑰加密的流程。
- 接收郵件。
- 從郵件中擷取加密的郵件與加密的工作階段金鑰。
- 從收件者的數位憑證中,擷取收件者的私密金鑰。
- 使用來自於收件者數位憑證的收件者私密金鑰,對工作階段金鑰進行解密。
- 使用已解密的工作階段金鑰,對郵件進行解密。
- 從郵件中擷取含有加密雜湊值的數位簽章。
- 計算郵件的雜湊值。
- 從寄件者的數位憑證中,擷取寄件者的公開金鑰。
- 使用寄件者的公開金鑰,對已加密的雜湊值進行解密。
- 將解密完成的雜湊值與接收時所產生的雜湊值進行比較。
- 若兩個值相符,即為有效郵件。
- 將未加密的郵件傳回給收件者。
透過瞭解數位憑證如何啟用公開金鑰加密,以及公開金鑰加密如何為數位簽章與郵件加密提供基本的安全性服務,您已對 S/MIME 郵件安全性的運作方式有所認識。這些概念都是郵件安全性的基本核心。