現代信息社會里,當電子郵件廣受歡迎的同時,其安全性問題也很突出。實際上,電子郵件的傳遞過程是郵件在網絡上反復復制的過程,其網絡傳輸路徑不確定,很容易遭到不明身份者的竊取、篡改、冒用甚至惡意破壞,給收發雙方帶來麻煩。進行信息加密,保障電子郵件的傳輸安全已經成為廣大E-mail用戶的迫切要求。PGP的出現與應用很好地解決了電子郵件的安全傳輸問題。將傳統的對稱性加密與公開密鑰方法結合起來,兼備了兩者的優點。PGP提供了一種機密性和鑒別的服務,支持1024位的公開密鑰與128位的傳統加密算法,可以用于軍事目的,完全能夠滿足電子郵件對于安全性能的要求。
1 操作描述
PGP的實際操作由五種服務組成:鑒別、機密性、電子郵件的兼容性、壓縮、分段和重裝。
1.1 鑒別
如圖1。步驟如下:
(1)發送者創建報文;
(2)發送者使用SHA-1生成報文的160bit散列代碼(郵件文摘);
(3)發送者使用自己的私有密鑰,采用RSA算法對散列代碼進行加密,串接在報文的前面;
(4)接收者使用發送者的公開密鑰,采用RSA解密和恢復散列代碼;
(5)接收者為報文生成新的散列代碼,并與被解密的散列代碼相比較。如果兩者匹配,則報文作為已鑒別的報文而接收。
另外,簽名是可以分離的。例如法律合同,需要多方簽名,每個人的簽名是獨立的,因而可以僅應用到文檔上。否則,簽名將只能遞歸使用,第二個簽名對文檔的第一個簽名進行簽名,依此類推。
1.2 機密性
在PGP中,每個常規密鑰只使用一次,即對每個報文生成新的128bit的隨機數。為了保護密鑰,使用接收者的公開密鑰對它進行加密。圖2顯示了這一步驟,描述如下:
(1)發送者生成報文和用作該報文會話密鑰的128bit隨機數;
(2)發送者采用CAST-128加密算法,使用會話密鑰對報文進行加密。也可使用IDEA或3DES;
(3)發送者采用RSA算法,使用接收者的公開密鑰對會話密鑰進行加密,并附加到報文前面;
(4)接收者采用RSA算法,使用自己的私有密鑰解密和恢復會話密鑰;
(5)接收者使用會話密鑰解密報文。
除了使用RSA算法加密外,PGP還提供了DiffieHellman的變體EIGamal算法。
1.3 常規加密和公開密鑰結合的好處
(1)常規加密和公開密鑰加密相結合使用比直接使用RSA或E1Gamal要快得多。
(2)使用公開密鑰算法解決了會話密鑰分配問題。
(3)由于電子郵件的存儲轉發特性,使用握手協議來保證雙方具有相同會話密鑰的方法是不現實的,而使用一次性的常規密鑰加強了已經是很強的常規加密方法。
1.4 機密性與鑒別
如圖3所示,對報文可以同時使用兩個服務。首先為明文生成簽名并附加到報文首部;然后使用CAST-128(或IDEA、3DES)對明文報文和簽名進行加密,再使用RSA(或E1Gamal)對會話密鑰進行加密。在這里要注意次序,如果先加密再簽名的話,別人可以將簽名去掉后簽上自己的簽名,從而篡改簽名。
1.5 電子郵件的兼容性
當使用PGP時,至少傳輸報文的一部分需要加密,因此部分或全部的結果報文由任意8bit字節流組成。但由于很多的電子郵件系統只允許使用由ASCII正文組成的塊,所以PGP提供了radix-64(就是MIME的BASE 64格式)轉換方案,將原始二進制流轉化為可打印的ASCII字符。
1.6 壓縮
PGP在加密前進行預壓縮處理,PGP內核使用PKZIP算法壓縮加密前的明文。一方面對電子郵件而言,壓縮后再經過radix-64編碼有可能比明文更短,這就節省了網絡傳輸的時間和存儲空間;另一方面,明文經過壓縮,實際上相當于經過一次變換,對明文攻擊的抵御能力更強。
1.7 分段和重裝
電子郵件設施經常受限于最大報文長度(50000個)八位組的限制。分段是在所有其他的處理(包括radix-64轉換)完成后才進行的,因此,會話密鑰部分和簽名部分只在第一個報文段的開始位置出現一次。在接收端,PGP必須剝掉所在的電子郵件首部,并且重新裝配成原來的完整的分組。
2 加密密鑰和密鑰環
2.1 會話密鑰的生成
PGP的會話密鑰是個隨機數,它是基于ANSI X.917的算法由隨機數生成器產生的。隨機數生成器從用戶敲鍵盤的時間間隔上取得隨機數種子。對于磁盤上的randseed.bin文件是采用和郵件同樣強度的加密。這有效地防止了他人從randseed.bin文件中分析出實際加密密鑰的規律。
2.2 密鑰標志符
允許用戶擁有多個公開/私有密鑰對:(1)不時改變密鑰對;(2)同一時刻,多個密鑰對在不同的通信組交互。所以用戶和他們的密鑰對之間不存在一一對應關系。假設A給B發信,B就不知道用哪個私鑰和哪個公鑰認證。因此,PGP給每個用戶公鑰指定一個密鑰ID,這在用戶ID中可能是唯一的。它由公鑰的最低64bit組成(Kua mod 2 64),這個長度足以使密鑰ID重復概率非常小。
2.3 密鑰環
密鑰需要以一種系統化的方法來存儲和組織,以便有效和高效地使用。PGP在每個結點提供一對數據結構,一個是存儲該結點年月的公開/私有密鑰對(私有密鑰環);另一個是存儲該結點知道的其他所有用戶的公開密鑰。相應地,這些數據結構被稱為私有密鑰環和公開密鑰環。
3 公開密鑰管理
3.1 公開密鑰管理機制
一個成熟的加密體系必然要有一個成熟的密鑰管理機制配磁。公鑰體制的提出就是為了解決傳統加密體系的密鑰分配過程不安全、不方便的缺點。例如網絡黑客們常用的手段之一就是“監聽”,通過網絡傳送的密鑰很容易被截獲。對PGP來說,公鑰本來就是要公開,就沒有防監聽的問題。但公鑰的發布仍然可能存在安全性問題,例如公鑰被篡改(public key tampering),使得使用公鑰與公鑰持有人的公鑰不一致。這在公鑰密碼體系中是很嚴重的安全問題。因此必須幫助用戶確信使用的公鑰是與他通信的對方的公鑰。 共2頁: 1 [2] 下一頁