9-2 Secure E-mail 安全性郵件
9-2-1 Secure E-mail 郵件結構 在網路通訊上,S/E-Mail 最能表現出資訊安全技術的特性,因為一般電子郵件就安全性的考量包含有:
由上述可以看出,S/E-Mail 幾乎包含所有資訊安全的基本技術。其實建構安全性郵件並非想像中那麼很複雜,其基本概念是將處理後的訊息與安全機制資料一併植入於郵件內,植入的方法如圖 9-1 所示。圖 9-1 為一般安全郵件的典型格式,它將郵件劃分若干個區段,每個區段承載著各種安全訊息,且每一區段都有一個區段『標頭』,記載著該區段內所攜帶訊息的特性,稱為『內文型態』(Content Type)。至於將郵件分割為若干個區段是 MIME 郵件的主要功能,因此,安全郵件多半都建立在 MIME 郵件上。接下來,我們就依照圖 9-1 的模式,來討論建構 S/E-Mail 安全性功能的方法,之後再來探討如何將這些安全功能嵌入於 MIME 郵件上。
圖 9-1 安全性郵件之典型格式 9-2-2 Secure E-mal 隱密性功能 一封被發送的郵件,通常經過多個 SMTP 伺服器轉送才能到達收信人的郵件伺服器內,且需經由收信人下載或開啟信件後,才算真正完成郵件的傳送。在傳送過程當中,郵件每經過一個轉送器,多半以『儲存後再前送』(Store-and-Forward)的方式處理,因此,有心人士欲窺視郵件內容並不困難;甚至,郵件到達收件人的郵件伺服器之後,在收件者還未開啟或下載之前,也很容易被他人盜取或窺視,有此可見,隱密性功能對安全郵件而言是很重要的。簡單的方法是訊息經過加密後再傳輸,收件者再利用鑰匙解密,只要能解決鑰匙分配的問題,即能達到隱密性功能;但鑰匙分配方法牽涉到加密系統的機制,基本上,S/E-Mail 有公開鑰匙與秘密鑰匙兩種加密方法,如下所述。 【(A)公開鑰匙加密】 如果收信者有公開鑰匙配對的話,則發信者可利用收信者的公開鑰匙對郵件加密,收信者再利用自己的私有鑰匙解密,如此便能達到隱密性的功能。譬如,Bob 傳送一封信件給 Alice,假設 Alice 的公開鑰匙配對是 {KUa, KRa},其中前者為公開鑰匙、後者為私有鑰匙,則 Bob 的運作程序如下: 傳送訊息:M 加密系統:E(如 3DES) 訊息加密:EKUa [M] 最後Bob 所建構的郵件內容為:
收件者由『內文型態』欄位中了解所傳送的訊息是經過公開鑰匙加密,因此,只要使用自己的私有鑰匙就可以解開該加密訊息。 【(B)會議鑰匙加密】 因為公開鑰匙加密的傳輸效益遠比秘密鑰匙來得低,尤其對大量傳輸訊息更為明顯。就整體而言,並不鼓勵常常使用公開鑰匙配對處理訊息加密,過度增加鑰匙的曝光率,易導致遭破解的危機。最好還是利用會議鑰匙加密較妥當,只要發信者選擇一個亂數作為加密鑰匙,先對訊息加密後,再利用對方的公開鑰匙對會議鑰匙加密,一併傳送給對方。譬如,Bob 傳送一封信件給 Alice({KUa, KRa}),其運作程序如下: 傳送訊息:M 會議鑰匙:K(發信者選取亂數) 加密系統:E(如 3DES 演算法) 訊息加密:EK [M] 會議鑰匙加密:EKUa [K] 則信件的內容為:
對方收到信件後,首先利用自己的私有鑰匙解開會議鑰匙的加密,再利用會議鑰匙解開訊息的加密,如此一來,除了可以達成隱密性功能,又可降低公開鑰匙系統低效率的加/解密處理。 【(C)主密鑰加密】 一般辦公室自動化系統裡,大多利用 Kerberos 系統來發給傳送者通往對方的『通行票』,發信者便可以利用通行票內的主密鑰向訊息加密,收信者亦同樣由通行票中取出主密鑰來解密,這是一般公文交換的基本運作模式。另外,其他安全性公文交換也大多採用此模式,以下的介紹不再另述。 9-2-3 Secure E-mal 完整性功能 完整性功能是要檢視資料是否遭受竄改,看起來似乎沒有其他安全功能重要,但許多地方仍會使用到它。譬如,利用網路公佈訊息或公告公文,基本上這些訊息無需隱密,並且希望所有人都能觀看其訊息內容。如不幸遭攻擊者竄改公佈的訊息,其傷害不容忽視,因此,公佈訊息者必須將該訊息作完整性的處理,任何人都可以在不受任何限制之下,隨意檢視該訊息的完整性。最簡單的做法只要將訊息經過雜湊函數計算出一個雜湊值,再將訊息與雜湊值一併放置在信件內傳送,通常郵件系統都會指定使用一種雜湊函數(如 SHA-1 演算法)。譬如,Bob 發送一封具有完整性功能的信件給 Alice,其運作程序如下: 傳送訊息:M 雜湊函數:H(如 SHA-1 演算法) 雜湊值:H [M] 則信件的內容為:
其中MIC(Message Integrity Code)表示該內文所儲存的訊息完整碼。 9-2-4 Secure E-mal確認性功能 確認性是確定信件並非他人偽造與訊息內容未遭受竄改;簡單的說,即是發信者向該郵件簽署保證該信件是自己所發送的,並保證信件內容是自己所寫的。確認性功能大多採用數位簽章技術來達成,它的做法是首先發信者將訊息經過雜湊演算法,計算出一個雜湊值,再利用發信者的私有鑰匙向該雜湊值簽署得到一個簽署碼,之後簽署碼連同訊息一併傳送給收信者,收信者收到信件之後,利用對方的公開鑰匙向簽署碼解密,得到發信者的雜湊值,再使用同樣湊演算法計算所收到的訊息,得到另一個雜湊值;如果兩個雜湊值相同的話,則能確定信件內容與發信者身份無誤;否則不是訊息有誤,就是該信件是他人偽造的。一般確認性含兩個層次:僅確認性功能與確認性功能附加隱密性功能,以下說明之。 【(A)僅確認性功能】 僅確認性功能是以明文方式傳送訊息,但有附加簽署碼。假設 Bob({KUb, KRb})傳送一封自己所簽署的信件給 Alice,其中 KUb 為 Bob 的公開鑰匙、KRb 為私有鑰匙。運作程序如下: 傳送訊息:M 雜湊函數:H 雜湊值:H[M] 簽章函數:SIG(如 DSS 演算法) 簽章碼:SIGKRb [H[M]];利用 Bob 私有鑰匙簽署雜湊值。 則信件的內容為:
【(B)確認性附加隱密性功能】 兼具確認性與隱密性功能的郵件有兩種做法,一者為訊息加密後從事簽署處理;另一者為訊息簽署後,簽署碼再連同訊息一併加密的處理。目前一般安全性郵件較傾向於後者的做法。假設 Bob({KUb, KRb})傳送一封自己所簽署並加密的信件給 Alice({KUa, KRa}),運作程序如下: 傳送訊息:M 雜湊函數:H(如 SHA-1 演算法) 雜湊值:H[M](訊息經過雜湊函數計算所得) 簽章函數:SIG(如 DSS 演算法) 簽章碼:SIGKRb [H[M]](利用 Bob 私有鑰匙簽署雜湊值) 加密系統:E(如 3DES 演算法) 會議鑰匙:K(Bob 選取亂數而成) 密文:EK [M || SIGKRb [H[M]]](利用會議鑰匙向訊息及簽章碼加密) 會議鑰匙加密:EKUa [K](利用 Alice 公開鑰匙向會議鑰匙加密) 則信件的內容為:
Alice 收到信件之後,首先利用私有鑰匙(KRa)解開會議鑰匙的加密,再利用會議鑰匙向密文解密,便可得到訊息的明文與簽章值,最後再利用 Bob 的公開鑰匙(KRb)解開簽章值,並得到原訊息的雜湊碼。Alice 以同樣的雜湊演算法計算所收到的訊息,亦得到另一個雜湊碼,如果兩個雜湊碼相同的話,則表示訊息內容與發信者(Bob)身份都是正確的;否則可能訊息已遭受竄改,或是該信件是冒名發送的。 9-2-5 Secure E-mal不可否認性功能 如果某一信件經由發送者以它的私有鑰匙簽署的話,則此信件除了具有確認性功能之外,還具有不可否認性功能。收信者可以持有原來信件(經過簽署過的)向公正單位(如法院),提出發信者發出此信件的證明。 |
翻轉工作室:粘添壽
資訊與網路安全技術
翻轉電子書系列:
|