共用方式為


瞭解 S/MIME

 

上次修改主題的時間: 2006-08-16

S/MIME 問世之前,系統管理員不是使用廣被接受但一向不甚安全的電子郵件通訊協定「簡易郵件傳送通訊協定 (SMTP)」,就是使用較安全但專屬的解決方案。系統管理員在選擇解決方案時,必須在安全性與連線性之間作抉擇。如今有了 S/MIME,系統管理員便可擁有兼顧安全性與通用性電子郵件功能。S/MIME 是一種和 SMTP 同等重要的標準,因為它將 SMTP 帶領至更高的領域:讓電子郵件能廣泛並快速的傳送,同時又能兼顧其安全性。

S/MIME 的歷史

想了解 S/MIME,應先從其歷史著手。S/MIME 第一版是由一群安全性廠商於 1995 年所研發的。這是當時數種郵件安全性規格的其中之一。其他不同的郵件安全性規格還有 Pretty Good Privacy (PGP) 等。在 S/MIME 第一版問世時,郵件安全性並沒有公認而單一的標準,而是多個標準同時競爭的狀態。

到了 1998 年 S/MIME 第 2 版問世後,情況開始有所轉變。與第一版不同,S/MIME 第 2 版被送到網際網路工程任務推動小組 (IETF),要求考慮將其列為網際網路標準。於是,S/MIME 從眾多標準中脫穎而出,成為郵件安全性標準競爭中的領先者。S/MIME 第 2 版包含兩項 IETF 要求建議 (RFC):建立郵件標準的 RFC 2311 (http://www.ietf.org/rfc/rfc2311.txt),以及建立憑證處理標準的 RFC 2312 (http://www.ietf.org/rfc/rfc2312.txt)。這兩項 RFC 提供了網際網路標準最初的架構。各廠商便依此設計彼此通用的郵件安全性解決方案。在 S/MIME 第 2 版之後,S/MIME 即成為郵件安全性的標準。

1999 年,IETF 提出了 S/MIME 第 3 版,以加強 S/MIME 的功能。RFC 2632 (http://www.ietf.org/rfc/rfc2632.txt) 承襲 RFC 2311 的內容,指定 S/MIME 郵件的標準,而 RFC 2633 (http://www.ietf.org/rfc/rfc2633.txt) 則根據 RFC 2312,加強了對憑證規格的要求。此外,RFC 2634 (http://www.ietf.org/rfc/rfc2634.txt) 加入了若干 S/MIME 新增服務 (如安全回條、三重包裝及安全性標籤),以擴充整體的功能。

S/MIME 第 3 版獲得廣泛接受,成為郵件安全性的標準。下列 Microsoft 產品皆可支援 S/MIME 第 3 版:

  • Microsoft Outlook® 2000 (套用 SR-1) 及其更新版本
  • Microsoft Outlook Express 5.01 及其更新版本
  • Microsoft Exchange 5.5 及其更新版本

了解 S/MIME 的功能

S/MIME 可提供下列兩項安全性服務:

  • 數位簽章
  • 郵件加密

這兩項服務是 S/MIME 郵件安全性的核心。所有其他與郵件安全性有關的概念皆支援這兩項服務。郵件安全性這個領域乍看之下雖有些複雜,卻是以這兩項服務為基礎。等您對數位簽章與郵件加密有基本的了解後,便可接著學習其他概念是如何支援這些服務的。

我們將先個別檢視每項服務,然後再說明這兩項服務如何同時運作。

了解數位簽章

數位簽章是 S/MIME 中較常用的服務。顧名思義,數位簽章乃相對於傳統的紙上作業正式簽章,是一種數位的簽章方式。如同正式簽章般,數位簽章具有下列的安全性功能:

  • 驗證   簽章可用來確認身分。數位簽章可以驗證「您是誰」,方法是在眾多個體間進行辨別,並證明某個體的唯一性。由於 SMTP 電子郵件不會進行驗證,因此無法得知誰是寄件者。數位簽章的驗證功能可解決這個問題,因為它能讓收件者知道,寄件者即為宣稱寄送郵件的個人或單位。
  • 不可否認性   簽章的唯一性可防止簽署者對自己的簽章予以否認。這項功能稱為不可否認性。簽章所提供的驗證具有不可否認性。不可否認性的概念與紙上契約內容的概念很相似。一份已簽章的契約即為具法律效力的文件,且簽章一旦經過驗證,就不能予以否認。數位簽章也具有相同的功能。數位簽章目前在許多領域中,已逐漸被視為與紙上簽章同樣具法律效力。由於 SMTP 電子郵件本身沒有驗證工具,因此無法提供不可否認性。寄件者若要否認 SMTP 電子郵件的擁有權,可說是輕而易舉。
  • 資料完整性   數位簽章所提供的另一項安全性服務是資料完整性。經由特定的作業完成數位簽章後,資料完整性也隨之產生。有了資料完整性服務,在收件者確認過數位簽章電子郵件的數位簽章後,即可確定自己所收到的電子郵件便是寄件者當初簽章傳送的同一封郵件,而並未在轉送過程中遭到竄改。郵件一經簽章後,若在轉送的過程中有任何修改,都會使簽章失效。透過這種方式,數位簽章比紙上簽章更為安全,因為紙上文件經過簽章後仍有可能遭到修改。
important重要事項:
數位簽章雖可提供資料完整性,但無法確保其機密性。與 SMTP 郵件類似,僅具數位簽章的郵件將會以純文字的方式傳送,還是可能遭到他人閱讀。在不透明簽章郵件的狀況中,雖然郵件是 base64 編碼,會產生某種程度的亂碼,但郵件仍然是純文字。若要保護電子郵件的內容,您必須使用郵件加密。

驗證、不可否認性與資料完整性,為數位簽章的核心功能。這三者可確保收件者所收到郵件是來自寄件者,且所收到的郵件就是當初寄件者所傳送的郵件。

簡言之,數位簽章運作的方式,就是在郵件傳送前在電子郵件的內文上執行簽章作業,然後在閱讀郵件時再進行驗證作業,如下圖所示。

7eb8a3ca-35c8-4101-9dd6-421a6bc7cc79

執行郵件傳送前的簽章作業時,必須要由寄件者提供特殊的資訊。(如需這項簽章作業的相關資訊,請參閱瞭解公開金鑰加密中的<公開金鑰加密與數位簽章>。)此特殊資訊適用於簽章作業中,它可擷取電子郵件,然後在郵件上執行簽章作業。這項作業將產生實際的數位簽章。接著此簽章便會附加到電子郵件上,並隨著郵件傳送出去。下圖顯示郵件進行簽章的流程。

b310b679-91bf-40f7-be7f-abbc24515204

  1. 擷取郵件。
  2. 擷取可識別寄件者的特殊資訊。
  3. 利用寄件者的特殊資訊,在郵件上執行簽章作業,產生數位簽章。
  4. 將數位簽章附加在郵件上。
  5. 傳送郵件。

由於這項作業必須使用寄件者的特殊資訊,因此數位簽章能夠提供驗證與不可否認性。寄件者的特殊資訊可以證明郵件確實來自該寄件者。

note附註:
沒有任何安全性機制是完美的。未經授權的使用者仍有可能取得數位簽章所使用的特殊資訊,而設法模擬寄件者。但 S/MIME 標準可以處理這種狀況,讓未經授權的簽章顯示為無效。如需相關資訊,請參閱瞭解數位憑證

當收件者開啟經數位簽章的電子郵件時,就會對數位簽章進行驗證程序。隨附於郵件的數位簽章會被擷取。此時亦會擷取原始的郵件。接著則會進行簽章作業,產生另一個數位簽章。隨附於郵件的數位簽章,會被拿來與收件者所產生的數位簽章進行比較。兩個簽章如果相符,郵件便可通過驗證,證明其確實來自於寄件者。若兩簽章不相符,則該郵件將被標示為無效。下圖顯示郵件驗證郵件的流程。

1dc0bde0-fcc9-4c15-9697-a8925781649a

  1. 接收郵件。
  2. 從郵件中擷取數位簽章。
  3. 擷取郵件。
  4. 擷取可識別寄件者的資訊。
  5. 在郵件上執行簽章作業。
  6. 比較郵件隨附的數位簽章與收件時所產生的數位簽章。
  7. 若兩個數位簽章相符,即為有效郵件。
important重要事項:
用來驗證簽章的寄件者資訊,與郵件簽章時寄件者所提供的資訊並不相同。收件者所使用的資訊,能夠讓收件者順利地驗證寄件者的特殊資訊,但無法實際得知該資訊,以保護寄件者的資訊。如需寄件者與收件者如何共用資訊的相關資訊,請參閱瞭解公開金鑰加密中的<公開金鑰加密與數位簽章>。

數位簽章的程序與數位簽章的驗證,可以驗證電子郵件的寄件者,並判定已簽章郵件之資料的完整性。驗證寄件者的另一項功能為不可否認性,即防止已驗證的寄件者否認傳送該郵件。標準的 SMTP 網際網路電子郵件可能出現仿造與資料竄改,而數位簽章正是解決的良方。

了解郵件加密

郵件加密可解決資訊外洩的問題。SMTP 網際網路電子郵件並未對郵件加以保護。SMTP 網際網路電子郵件在其傳送過程或儲存之處都可能被任何人看見。S/MIME 可透過加密來處理這些問題。

所謂加密,就是將資訊變更為無法閱讀或無法了解的資訊,直到將其還原成可讀與可了解的形式為止。

郵件加密雖不如數位簽章來得普遍,但它確實可以解決許多人認為是網際網路電子郵件最大弊病的問題。郵件加密具有下列兩項特定的安全性服務:

  • 機密性   郵件加密可保護電子郵件的內容。只有真正的收件者才能檢視郵件內容。其他人若收到或嘗試檢視該郵件,將無從得知其內容,因而確保郵件的機密性。不論在轉送或儲存的過程中,加密都能提供機密保護。
  • 資料完整性   跟數位簽章一樣,經由特定的作業完成加密後,郵件加密便可提供資料完整性服務。
important重要事項:
郵件加密可以提供機密保護,但完全無法驗證郵件寄件者。未簽章的加密郵件,與未加密的郵件一樣容易被人仿造寄件者。由於不可否認性是驗證後的直接產物,因此郵件加密也無法提供不可否認性。雖說加密可提供資料完整性,但加密郵件也只是表示該郵件在傳送後並未遭到修改。有關郵件寄件者的資訊,則無從得知。若要證明寄件者的身分,郵件必須使用數位簽章。

機密保護與資料完整性是郵件加密的核心功能。這兩者可確保只有真正的收件者才能檢視郵件,並確保所收到的確實就是原本寄出的郵件。

郵件加密可在郵件傳送時執行加密作業,使郵件的內文無法被閱讀。收到的郵件會在被閱讀前執行解密作業,使內文回復為可讀狀態,如下圖所示。

70d97fee-7c86-4ab9-b104-56558a5a4102

郵件傳送時所執行的加密作業會擷取電子郵件,並使用專屬於真正收件者的特定資訊予以加密。經過加密的郵件會取代原始郵件,然後傳送給收件者。下圖顯示電子郵件加密的流程。

7320c72f-dfc4-45c2-b56c-13433dc4360e

  1. 擷取郵件。
  2. 擷取可識別收件者的特殊資訊。
  3. 使用收件者的資訊,對郵件執行加密作業,產生加密郵件。
  4. 已加密的郵件會取代原本的郵件內文。
  5. 傳送郵件。

由於這項作業必須使用收件者的特殊資訊,因此郵件加密能夠提供機密保護。只有真正的收件者才具備執行解密作業所需的資訊。如此可確保真正的收件者將是唯一可檢視郵件的人,因為若要檢視未加密的郵件,必須先提供收件者的特殊資訊。

important重要事項:
用來進行郵件加密的收件者資訊,與郵件解密時收件者所提供的資訊並不相同。寄件者所使用的資訊,能夠讓寄件者順利地使用收件者的特殊資訊,但無法實際得知該資訊,以保護收件者的資訊。如需寄件者與收件者如何共用資訊的相關資訊,請參閱瞭解公開金鑰加密中的<公開金鑰加密與郵件加密>。

當收件者打開加密郵件時,就會對該加密郵件執行解密作業。加密郵件與收件者的特殊資訊都會被擷取。接著,則會使用收件者的特殊資訊,對加密郵件執行解密作業。這項作業將傳回未加密的郵件,供收件者閱讀。若郵件在轉送的過程中遭到修改,解密作業便會失敗。下圖顯示電子郵件解密的流程。

5b1ee7e9-35fb-4c55-bd0f-63a2b52a6604

  1. 接收郵件。
  2. 擷取加密的郵件。
  3. 擷取可識別收件者的特殊資訊。
  4. 使用收件者的特殊資訊,對加密郵件執行解密作業,產生解密的郵件。
  5. 將未加密的郵件傳回給收件者。
note附註:
沒有任何安全性機制是完美的。未經驗證的使用者仍有可能取得收件者的特殊資訊,而使用該資訊來閱讀加密的郵件。但 S/MIME 標準可處理這些狀況。如需相關資訊,請參閱瞭解數位憑證

郵件的加密與解密程序為電子郵件提供了機密保護。這項程序解決了網際網路電子郵件的一項嚴重弊病:就是大家都能互相檢視彼此的郵件。

了解數位簽章與郵件加密如何搭配運作

數位簽章與郵件加密這兩項服務是可以搭配運作的服務。每個服務可處理特定的安全性問題。數位簽章處理驗證與否認性問題,而郵件加密處理機密性的問題。由於其各自處理不同的問題,所以郵件安全性策略往往需要同時使用兩者的功能。根據設計,這兩項服務可以搭配使用,因為它們是各自負責處理寄件者與收件者其中一端的問題。數位簽章處理與寄件者有關的安全性問題,而加密大多處理與收件者有關的安全性問題。

數位簽章與郵件加密服務並用時,使用者將可一舉獲得兩者的好處。在郵件中使用這兩種服務並不會變更任一種服務的處理過程:也就是本文件前面各節中討論的每一項工作。下圖顯示郵件數位簽章與郵件加密的流程,以說明簽章與加密如何搭配運作。

3d9893ab-cffa-4783-95d9-fd9d997c1533

  1. 擷取郵件。
  2. 擷取可識別寄件者的特殊資訊。
  3. 擷取可識別收件者的特殊資訊。
  4. 利用寄件者的特殊資訊,在郵件上執行簽章作業,產生數位簽章。
  5. 將數位簽章附加在郵件上。
  6. 使用收件者的資訊,對郵件執行加密作業,產生加密郵件。
  7. 由加密郵件取代原始的郵件。
  8. 傳送郵件。

下圖顯示解密與驗證數位簽章的流程。

deab38d5-da66-4c23-add3-a78722c41cb1

  1. 接收郵件。
  2. 擷取加密的郵件。
  3. 擷取可識別收件者的特殊資訊。
  4. 使用收件者的特殊資訊,對加密郵件執行解密作業,產生解密的郵件。
  5. 傳回未加密的郵件。
  6. 將未加密的郵件傳回給收件者。
  7. 從未加密的郵件中擷取數位簽章。
  8. 擷取可識別寄件者的資訊。
  9. 利用寄件者的資訊,在未加密的郵件上執行簽章作業,產生數位簽章。
  10. 比較郵件隨附的數位簽章與收件時所產生的數位簽章。
  11. 若兩個數位簽章相符,即為有效郵件。

三重包裝郵件

S/MIME 第 3 版加強功能中,值得重視的是「三重包裝」。三重包裝的 S/MIME 郵件會先簽章、加密,然後再次簽章。多一層加密提供額外的安全性層級。當使用者使用 Outlook Web Access S/MIME 控制項,對郵件簽章及加密時,便會自動對郵件執行三重包裝。Outlook 和 Outlook Express 不會對郵件執行三重包裝,不過可讀取這類郵件。

數位簽章與郵件加密可以互補有無,解決許多影響 SMTP 電子郵件的安全性問題。

數位憑證與郵件加密是 S/MIME 的核心功能。郵件安全性最重要的基礎概念是公開金鑰加密。公開金鑰加密讓數位簽章與郵件加密得以在 S/MIME 中執行。在瞭解公開金鑰加密中,將說明何謂公開金鑰加密,及其與 S/MIME 有何關聯。