1-3 訊息的安全性
一般來講,我們針對傳輸訊息(或稱資訊)的安全性有下列四個層次:
上述四種功能係利用雜湊函數、秘密鑰匙系統、以及公開鑰匙系統之間演變而來,以下分別介紹之。 1-3-1 訊息加密 訊息加密的主要目的是要達成資料隱密性功能。發送者將訊息加密後再傳送給接收者,接收者再依照雙方協議的方法及鑰匙,將訊息恢復成原來的格式。圖 1-4 有兩種訊息加密的方法,圖 1-4 (a) 為採用秘密鑰匙的加密演算法,雙方共享一把秘密鑰匙來通訊,不但可以達到資料隱密性的功能,也可完成確認性功能。可達到確認性功能的原因在於假設秘密鑰匙只有通訊雙方擁有,如果收到一份訊息而能夠以此鑰匙解密的話,則表示該訊息一定來自可信任的另一方。 圖 1-4 (b) 是利用公開鑰匙加密的方法,發送者利用接收者的公開鑰匙(KUb)對訊息加密,接收者再利用自己的私有鑰匙(KRb)解密;他人沒有接收端的私有鑰匙也無法看到訊息內容,如此便能達到隱密性功能。
圖 1-4 訊息加密達到隱密性功能 1-3-2 訊息完整性檢查 圖 1-5 為訊息完整性檢查的運作程序,通訊雙方必須事先協議好使用何種雜湊函數(如 MD4、MD5);發送者將訊息經過雜湊函數計算出雜湊碼,再將它附加於訊息之後傳送給接收者;接收者也利用相同的雜湊函數計算出另一個雜湊碼,如果兩個雜湊碼相同的話,表示訊息沒有發生錯誤,也沒有經過他人竄改。雜湊碼又稱為『完整性檢查值』(Integrity Check Value, ICV),至於檢查能力如何,與雜湊函數的強度有關,本書第五章有詳細的說明。
圖 1-5 訊息的完整性檢查 1-3-3 訊息確認 『訊息確認』(Message Authentication)是為了達到資料的確認性與完整性功能。也就是說,它能確定訊息的來源,是出自通訊的對方,而不是經由他人偽造的(確認性);另一方面,它也能確定訊息在傳輸當中,沒有發生錯誤也未經他人竄改(完整性)。圖 1-6 為訊息確認的運作程序,事先通訊雙方都持有一把相同的祕密鑰匙(採用祕密鑰匙系統)。說明如下:首先傳送者將訊息經過雜湊函數計算出雜湊碼之後,再經過加密演算法加密(使用秘密鑰匙),得到一個稱之為『訊息確認碼』(Message Authentication Code, MAC),發送時將 MAC 附加在訊息之後傳送給接收者;接收者將 MAC 解密(同一把秘密鑰匙)回原來的雜湊碼,也利用相同的雜湊函數計算所收到訊息的雜湊碼;如果兩者相同的話,便能確定訊息未被竄改過,更能確定來源無誤(相同的秘密鑰匙)。本書於第六章會詳細說明有關訊息確認的技巧。
圖 1-6 訊息確認達到完整性與確認性功能 1-3-4 數位簽章 『數位簽章』(Digital Signature, DS)屬於確認訊息來源的合法性與真實性,除了確認性與完整性的功能之外,還增加了不可否認性功能。看起來,數位簽章與訊息確認的功能很相同,但它們之間所採用密碼系統差異很大。訊息確認是採用秘密鑰匙系統,大多使用於安全連線下的傳輸(如:IPSec);然而,數位簽章是採用公開鑰匙系統,多半使用於沒有安全保護的連線上,主要從事於發送者身份的確認。圖 1-7 為數位簽章的運作程序,並假設接收者持有傳送者的公開鑰匙,說明如下:首先傳送者將訊息經由雜湊函數計算之後,再利用自己的私有鑰匙(KRa)加密(簽署動作),得到一個簽章碼(DS),再將簽章碼附加在訊息之後,發送給接收端;接收者則利用發送者的公開鑰匙(KUa)解開簽章碼的加密,得到原來的雜湊碼。也同時將所收到的訊息經由相同的雜湊函數計算出雜湊碼,如果兩者相同的話,表示訊息是正確的(確認性功能)。另一方面,簽章碼若可以順利使用發送者的公開鑰匙(KUa)解密的話,表示此加密鑰匙一定是發送者的私有鑰匙(KRa),接收者可以保留簽章碼,作為對方『不可否認』的依據。
圖 1-7 數位簽章達成確認性與不可否認性功能
|
翻轉工作室:粘添壽
資訊與網路安全技術
翻轉電子書系列:
|