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