官术网_书友最值得收藏!

2.5 密鑰管理技術

網絡加密是保護網絡中信息安全的重要手段,所有加密技術都依賴于密鑰,網絡環境下的密鑰管理是一種復雜而重要的技術。

最早的密碼體制沒有密鑰的概念,那時對密碼算法和密鑰還沒有明顯的區分。隨著信息加密需求量的迅速增加,不斷開發大量的新的密碼算法需要耗費大量的人力、物力,于是人們逐漸轉而采用將密碼中的一部分加密算法或加密參數固定不變(這是保密的基本因素),而另一部分可經常更換的加密形式。這種可經常變化的部分就是通常意義下的密鑰。所以,從本質講,密鑰和密碼算法可以看作一回事:密鑰可理解為可以經常更換的那部分算法,算法也可理解為不便于經常變化的那部分密鑰。

密鑰同密碼算法的分離大大促進了密碼技術的發展,使數據加密的保密性和安全性大大提高。這不僅使大量本來必須按照密級進行管理的加密設備可以取消密級,而且使加密設備里的核心部分——密鑰,可以經常更換,從而使密碼算法完全公開成為可能。如果一個密碼系統的算法經不起公開,那么按照現在的標準看,這種密碼系統的安全性是很弱的,其理由如下。

1)對于沒有獨立設計密碼能力的用戶,只能使用商品密碼,而一個商用密碼機的軟硬件原理是無法加以保密的,特別是對于國家級的破譯能力來說,解剖一個加密設備的代價與破譯一種密碼的代價相比是可以忽略不計的。密碼算法不可能一泄密就更換,必須準備依靠密鑰的變化來保密。

2)保密問題不僅是一個理論問題,而且與密碼的使用有密切關系。如果必須把算法和加密裝置當作絕密件管理,往往難以保證使用中的安全。

3)在數據加密等技術中,往往要求密碼設計者本人在不掌握密鑰的情況下也無法讀到保密信息,所以算法必須經受公開的分析。

如果考慮到在研制過程中所花費的巨大經濟代價,對密碼算法還是應該進行保護的,但這種保護的意義應只相當于對軟件產品的技術保護,也就是說,信息的保密不能建立在這種保護的基礎上。

密鑰管理歷來是一個很棘手的問題,是一項復雜細致的長期工作。一個計算機系統的密鑰管理方案必須注意每一個細小環節,否則就會帶來意想不到的損失。每個具體系統的密鑰設計必須與具體的使用環境和保密要求相結合,萬能的密鑰管理體制是不存在的。

從密碼技術的發展看,現在已經可以設計出高強度的密碼算法,使之能夠承受國家級的破譯力量的攻擊,在這個意義上講,密碼算法問題已經解決,密碼系統的安全性只取決于密鑰的安全性。因此,在考慮計算機系統的密碼設計時,需要解決的核心問題是密鑰管理問題,而不是密碼算法問題。當然,這并不是說密碼算法問題無足輕重,而是說一個密碼算法的抗破譯能力可以通過一定的客觀檢驗方法進行分析和論證,因而完全可以做到對所使用的算法強度有充分的把握。對算法的選擇必須很慎重,但這個問題再困難,也僅僅與密碼算法本身的純技術性能有關,而且已經出現了一大批成熟的密碼算法可供選擇和借鑒,即使沒有這方面的設計能力,抄一個現成的算法或請有關部門編一個新的算法也不困難。而密鑰管理的問題則要復雜得多,不僅與技術有關,還與人的因素有關。技術上做得再完善,通過人員這個口子仍然可以把核心機密泄露出去。特別是當密鑰管理存在一些漏洞時,從密鑰管理的途徑竊取秘密要比單純從破譯的途徑竊取秘密的代價小得多。

一個好的密鑰管理系統應當盡量不依賴于人的因素,這不僅是為了提高密鑰管理的自動化水平,根本目的還是為了提高系統的安全程度。為此有以下具體要求:

1)密鑰難以被非法竊取。

2)在一定條件下竊取了密鑰也沒有用。

3)密鑰的分配和更換過程在用戶看來是透明的,用戶不一定要親自掌握密鑰。

在下面的介紹中,通常把達到上述要求的程度作為評價一個密鑰管理系統的性能好壞的標準。

2.5.1 密鑰管理

密鑰管理是處理密鑰自產生到銷毀整個過程中的有關問題:系統的初始化、密鑰的產生、存儲、備份/恢復、裝入、分配、保護、更新、控制、丟失、吊銷和銷毀等。設計安全的密碼算法和協議并不容易,而密鑰管理則更加困難,密鑰是保密系統中更為脆弱的環節,其中分配和存儲可能是最棘手的。密鑰管理不僅影響系統的安全性,而且涉及系統的可靠性、有效性和經濟性。密鑰管理要從物理、人事、規程和技術四個方面考慮。密鑰管理技術要使用加密、認證、簽字、協議、公證等幾方面。電子商務的密鑰管理系統中必須依靠可信賴的第三方公證機構。公證系統是電子商務中保證安全的一個必需的、重要的工具,它不僅可以協助密鑰的分配和證實,而且可以作為證書機構、時戳代理、密鑰托管代理和公證代理等;不僅可以斷定文件簽署時間,而且還可以對本系統提供的信息進行仲裁。公證機構還可采用審計追蹤技術,對密鑰的注冊、證書的制作、密鑰更新、吊銷進行記錄審計。本節主要介紹密鑰的管理內容、密鑰的分配技術、對稱密鑰管理、公開密鑰管理、混合密鑰管理方案和密鑰托管技術等。

1.密鑰的管理內容

(1)密鑰設置協議

目前流行的密鑰管理方案中一般采用分層次的密鑰設置,目的在于減少單個密鑰的使用周期,增加系統的安全性。總體上密鑰分兩大類:數據加密密鑰(DK)和密鑰加密密鑰(KK)。前者直接對數據進行操作,后者用于保護密鑰,使之通過加密而安全傳遞。

(2)密鑰生成

算法的安全性依賴于密鑰,密鑰的產生首先必須考慮具體密碼系統的公認的限制,如果用一個弱的密鑰生成方法,那么整個體制是弱的。因為能破譯密鑰生成算法,所以就不需要破譯加密算法了。減少的密鑰空間,易受到窮舉攻擊。如果采用姓名等的弱密鑰選擇也易受到窮舉的字典攻擊。因此,好的密鑰應該是隨機密鑰,但為了便于記憶,密鑰不能選得過長,不能選完全隨機的數串,要選自己易記而別人難以猜中的密鑰,要做到這些可采用密鑰揉搓或碾碎技術。可見密鑰的生成是困難的,特別對公鑰密碼體制來說,生成密鑰更加困難,因為密鑰必須滿足某些數學特征(必須是素數的,是二次剩余的,等等)。

(3)密鑰的分配

要研究密碼系統中密鑰的發送、驗證等傳送中的問題,在以后的內容中進一步介紹。

(4)密鑰的保護

密鑰從產生到終結的整個生存期中,都需要加強安全保護。密鑰決不能以明文的形式出現,所有密鑰的完整性也需要保護,因為一個攻擊者可能修改或替代密鑰,從而危及機密服務。另外,除了公鑰密碼系統中的公鑰外,所有的密鑰需要保密。在實際中,存儲密鑰的最安全的方法是將其放在物理上安全的地方。當一個密鑰無法用物理的辦法進行安全保護時,密鑰必須用其他的方法來保護,可通過機密性(例如,用另一個密鑰加密)或完整性服務來保護。在網絡安全中,用最后一種方法可導致密鑰的層次分級保護。

(5)密鑰的存儲

密鑰存儲時必須保證密鑰的機密性、認證性、完整性、防止泄露和修改。

最簡單的密鑰存儲問題是單用戶的密鑰存儲,用戶加密文件以備以后使用。因為只涉及他一個人,且只有他一人對密鑰負責。一些系統采用簡單方法:密鑰存放在用戶的腦子中,而決不放在系統中,用戶只需要記住密鑰,并在需要對文件加密或解密時輸入。在某些系統中用戶可直接輸入64bit密鑰,或輸入一個更長的字符串,系統自動通過密鑰碾碎技術從這個字符串生成64bit密鑰。

還可以將密鑰儲存在磁卡、ROM密鑰卡或智能卡中,用戶先將物理標記插入加密箱上或連在計算機終端上的特殊讀入裝置中,然后把密鑰輸入系統中。當用戶使用這個密鑰時,他并不知道它,也不能泄露它。把密鑰平分成兩部分,一半存入終端,一半存入ROM密鑰,使得這項技術更加安全。美國政府的STU-Ⅲ保密電話就用的是這種方法。丟失了ROM密鑰并不能使加密密鑰受到損害——換掉它一切就正常如初,丟失終端密鑰情況也如此,這樣,兩者之一被損害都不能損害整個密鑰。

可采用類似于密鑰加密密鑰的方法對難以記憶的密鑰進行加密保存。例如,一個RSA私鑰可用DES(數據加密標準)密鑰加密后存在磁盤上,要恢復密鑰時,用戶只需把DES密鑰輸入解密程序中即可。如果密鑰是確定性地產生的(使用密碼上安全的偽隨機序列發生器),每次需要時從一個容易記住的口令產生出密鑰會更加簡單。

(6)密鑰的備份/恢復

密鑰的備份是非常有意義的,在密鑰主管發生意外的情況下,以便恢復加密的信息,否則加密的信息就會永遠地丟失了。

有幾種方法可避免這種事情發生。最簡單的方法稱密鑰托管方案,它要求所有雇員將自己的密鑰寫下來交給公司的安全官,由安全官將文件鎖在某個地方的保險柜里(或用主密鑰對它們進行加密)。當發生意外情況時,可向安全官索取密鑰。

一個更好的方法是采用一種秘密共享協議,即將密鑰分成若干片,然后,每個有關的人員各保管一部分,單獨的任何一部分都不是密鑰,只有將所有的密鑰片搜集全,才能重新把密鑰恢復出來。

(7)密鑰的泄露與撤銷

密鑰的安全是所有的協議、技術、算法安全的基本條件,如果密鑰丟失、被盜、在媒體上公開或以其他方式泄露,則所有的保密性就都失去了,唯一補救的辦法是及時更換新密鑰。

(8)密鑰的有效期

沒有哪個加密密鑰能無限期使用,其原因如下。

1)密鑰使用時間越長,它泄露的機會就越大。人們會寫下密鑰,也會將其丟失,偶然事件也會發生的。

2)如果密鑰已泄露,那么密鑰使用越久,損失就越大。如果密鑰僅用于加密一個文件服務器上的單個預算文件,它的丟失僅意味著該文件的泄密。如果密鑰用來加密文件服務器上所有預算信息,那么損失就大得多。

3)密鑰使用越久,人們花費精力破譯它的誘惑力就越大——甚至不惜采用窮舉攻擊法。破譯了兩個軍事單位使用一天的共享密鑰,就會使某人能閱讀當天兩個單位之間的通信信息。破譯所有軍事機構使用一年的共享密鑰,就會使同樣的人獲取和偽造通行該機構一年的信息。

4)對用同一密鑰加密的多個密文進行密碼分析一般比較容易。

對任何密碼應用,必須有一個密鑰的有效期。不同密鑰應有不同的有效期,如電話就是把通話時間作為密鑰有效期,當再次通話時就啟用新的密鑰。專用通信信道就不這么明顯了,密鑰應當有相對較短的有效期,這主要依賴數據的價值和給定時間里加密數據的數量。

密鑰加密密鑰無須頻繁更換,因為它們只是偶爾用作密鑰交換,只是給密鑰破譯者提供了很少的密文分析,且相應的明文也沒有特殊的形式。然而如果密鑰加密密鑰泄露,那么其潛在損失將是巨大的,因為所有的通信密鑰都經其加密。在某些應用中,密鑰加密密鑰一般是一月或一年更換一次。

用來加密保存數據文件的加密密鑰不能經常變換。在人們重新使用文件前,文件可以加密儲藏在磁盤上數月或數年,每天將它們解密,再用新的密鑰進行加密,這無論如何都不能加強其安全性,這只是給破譯者帶來了更多的方便。一種解決方法是每個文件用唯一的密鑰加密、然后再用密鑰加密密鑰把所有密鑰加密,密鑰加密密鑰要么記憶下來,要么保存在一個安全地點,或在某個地方的保險柜中。當然,丟失該密鑰意味著丟失了所有的文件加密密鑰。

公開密鑰密碼應用中的私鑰的有效期是根據應用的不同而變化的。用作數字簽名和身份識別的私鑰必須持續數年(甚至終身),用于類似于拋擲硬幣協議的簡單應用的私鑰在協議完成之后就應該立即銷毀。即使期望密鑰的安全性持續終身,兩年更換一次密鑰也是要考慮的。許多網絡中的私鑰僅使用兩年,此后用戶必須采用新的私鑰。舊密鑰仍需保密,以防用戶需要驗證以前的簽名,但是新密鑰將用作新文件簽名,以減少密碼分析者所能攻擊的簽名文件數目。

(9)控制密鑰使用

控制密鑰使用是為了保證密鑰按預定的方式使用,在一些應用中控制怎樣使用密鑰是有意義的,有的用戶需要控制密鑰或許僅僅是為了加密,有的或許是為了解密。可以賦予密鑰的控制信息的有:密鑰的主權人、密鑰合法使用期限、密鑰識別符、密鑰預定的用途、密鑰限定的算法、密鑰預定使用的系統、密鑰授權用戶以及與密鑰生成、注冊、證書有關的實體名字等。

運用這些限制的一個方案是在密鑰后面附加一個控制向量(Control Vector,CV),用它來標定密鑰的使用和限制。對CV取單向哈希運算,然后與主密鑰異或,把得到的結果作為密鑰對密鑰進行加密,再把合成的加密了的密鑰與CV存在一起。恢復密鑰時,對CV取哈希運算再與主密鑰異或,最后用結果進行解密。

(10)密鑰的銷毀

如果密鑰必須定期替換,舊密鑰就必須銷毀。舊密鑰是有價值的,即使不再使用,有了它們,攻擊者就能讀到由它加密的一些舊消息。

密鑰必須安全地銷毀。如果密鑰是寫在紙上的,那么必須切碎或燒掉;如果密鑰存在EEPROM硬件中,密鑰就應進行多次重寫;如果密鑰存在EPROM或PROM硬件中,芯片就應被打碎成小碎片;如果密鑰保存在計算機磁盤里,就應多次重寫覆蓋磁盤存儲的實際位置或將磁盤切碎。

一個潛在的問題是,在計算機中的密鑰易于被多次復制并存儲在計算機硬盤的多個地方。采用防竄器件,能自動銷毀存儲在其中的密鑰。

2.密鑰的分配技術

密鑰分配技術主要研究密鑰的分發和傳送中的問題。密鑰分配實質上是使用一串數字或密鑰,依次進行加密、解密等操作,從而實現保密通信和認證等。

(1)密鑰分配實現的基本方法

安全的密鑰分配是通過建立安全信道來實現的,當前主流的安全信道算法如下。

1)基于對稱加密算法建立安全信道。

通信雙方的保密通信,需要兩個用戶A和B共享密碼,一般有以下幾種方式:①密鑰由A選取并通過物理手段發送給B;②密鑰由第三方選取并通過物理手段發送給A和B;③如果A、B事先已有一密鑰,則其中一方選取新密鑰后,用已有的密鑰加密新密鑰并發送給另一方;④如果A和B與第三方C有一保密信道,則C為A、B選取密鑰后,分別在兩個保密信道上發送給A、B。

前兩種方法稱為人工發送。在通信網中,若只有個別用戶想進行保密通信,密鑰的人工發送還是可行的,然而如果所有用戶都要求支持加密服務,則任意一對希望通信的用戶都必須有一共享密鑰。如果有n個用戶,則密鑰的數量為nn-1)/2,因此當n很大時,密鑰分配的代價非常大,密鑰的人工發送是不可行的。

第三種方法,攻擊者一旦獲得一個密鑰就可以獲取以后所有的密鑰;而且用這種方法對所有用戶分配初始密鑰時,代價仍然很大。

第四種方法比較常用,其中第三方通常是一個負責為用戶分配密鑰的密鑰分配中心。這時,每一用戶必須和密鑰分配中心有一個共享密鑰,稱為主密鑰。如果用戶數為n,主密鑰數為n,可以通過物理手段發送。

2)基于雙鑰體制利用數學上求逆的困難建立安全信道。

雙鑰體制適用于進行密鑰管理,特別是對于大型網絡中的密鑰管理。假設通信雙方為A和B。使用雙鑰體制交換對稱密鑰的過程是這樣的:首先A通過一定的途徑獲得B的公鑰;然后A隨機產生一個對稱密鑰K,并用B的公鑰加密對稱密鑰K發送給B;B接收到加密的密鑰后,用自己的私鑰解密得到密鑰K。在這個對稱密鑰的分配過程中,不再需要在線的密鑰分配中心,也節省了大量的通信開銷。目前,主要有兩種基于雙鑰體制建立安全信道的模式,一種為采用公鑰證書的方式,另一種是分布式密鑰管理模式。

3)基于量子密碼建立安全信道。

量子力學一百多年的發展,卻給人類帶來另一種可能。量子密碼學是量子力學與密碼學結合的產物,而量子密碼學的核心就是量子密碼安全分配。量子密鑰分發的安全性由量子力學的測不準原理和量子不可克隆定理等物理學原理做保證。

量子密碼學便是基于量子的不確定性,采用量子態作為信息載體,經由量子通道在合法的用戶之間傳送密鑰,構造一個安全的通信通道,使任何在信道上的竊聽行為不可能對通信本身產生影響,從而達到竊聽失敗的目的,以保證信道的安全。量子密鑰分配技術的基礎是物理而不是數學。

所謂密鑰分發實驗,要以量子力學一些“原理”的成立為前提。比如,“量子不可克隆定理、量子不可分割”,使得“存在竊聽必然被發現”,而量子的“一次一密,完全隨機”,又讓“加密內容不可破譯”成為現實。“不可克隆定理”(No-Cloning Theorem)是“海森堡測不準原理”的推論,它是指量子力學中對任意一個未知的量子態進行完全相同的復制的過程是不可實現的,因為復制的前提是測量,而測量一般會改變該量子的狀態。

2013年10月10日,巴特爾公司(Battelle)建立了第一條商用量子密鑰分配網絡,一條全長110km的專用光纖線路連接了俄亥俄州哥倫布市的公司總部和在都柏林的分部辦公室,使用的是瑞士ID Quantique量子研究公司提供的硬件設備,用來保護公司的財務資料、知識產權、圖紙和設計數據。

英國劍橋的一個研究小組開發成功一種新技術,使得量子密鑰分配過程能在普通光纖通信線路上進行。這種技術有些像“時分復用”通信,通常的高強度數據激光與微弱的光量子流傳送在同一根光纖上按時間分隔高速切換。該技術有相當的難度,通信中的收發兩端對兩種訊號必須保持精準的同步,而且感應器必須正確適應強度差異十分巨大的兩種光信號,猶如一會兒面對太陽,一會兒感應微弱的星光。這種技術使得通信雙方可以在同一條光纖上交換密鑰,然后用他人無法截獲的密鑰對數據加密后按通常方式傳送,再也不必擔心泄密。

(2)密鑰分配實現的基本工具

認證技術和協議技術是分配密鑰的基本工具,認證技術是安全分配密鑰的保障,協議技術是實現認證必須遵守的流程。

(3)密鑰分配系統實現的基本模式

密鑰分配系統實現的基本模式有兩種,一種是對小型網絡,由于用戶人數較少,每對用戶之間可采用共享一個密鑰的方法,如圖2-24所示。

圖2-24 對小型網絡的密鑰分配系統模式

圖中k表示A和B之間共享的密鑰。

另一種是在一個大型網絡中,如由n個用戶組成的系統中,希望相互之間保密通信,則需要生成nn-1)/2個密鑰進行分配和存儲,這樣密鑰的分配問題就變得復雜,因此為了解決這一問題,常采用密鑰中心管理方式。在這種結構中,每個用戶和密鑰中心共享一個密鑰,保密通信的雙方之間無共享密鑰。

密鑰中心機構有兩種形式:密鑰分配中心(KDC)和密鑰傳送中心(KTC)。在KDC中,當A向KDC請求發放與B通信的密鑰時,KDC生成一個密鑰k傳給A,并通過A傳給B,如圖2-25a所示。或者利用A和B與KDC共享密鑰,由KDC直接傳送給B,如圖2-25b所示。

圖2-25 密鑰分配中心

a)間接分配 b)直接分配

密鑰傳送中心(KTC)和密鑰分配中心(KDC)十分相似,主要區別在于由通信方的一方產生需求的密鑰,而不是由密鑰中心來產生。當A希望和B通信時,它產生密鑰k并將密鑰發送給KTC,KTC再通過A轉送給B,如圖2-26a所示,或直接送給B,如圖2-26b所示,利用A與B和KTC的共享密鑰來實現。

圖2-26 密鑰傳送中心

a)間接傳送 b)直接傳送

由于KDC和KTC參與,各用戶只需保存一個和KDC或KTC共享的較長期的密鑰即可,其安全性依賴于對密鑰中心的信任,中心節點一旦出問題將威脅整個系統的安全。

(4)密鑰的驗證

在密鑰分配過程中,需要對密鑰進行驗證,以確保準確無誤地傳送給指定的用戶,防止偽裝信使用假密鑰套取信息,并防止密鑰分配中的錯誤。當你收到密鑰時,如何知道這是對方傳送的而不是其他人傳送的呢?如果是對方親自傳遞給你的,那自然簡單;如果通過可靠的信使傳送密鑰,必須相信信使,并需要對密鑰進行確認,例如采用指紋法。而讓信使傳送加密密鑰可能更安全。如果密鑰由密鑰加密,必須相信只有對方才擁有那個加密密鑰;如果運用數字簽名協議來給密鑰簽名,那么當驗證簽名時就必須相信公開密鑰數據庫;如果某個密鑰分配中心(KDC)在對方的公鑰上簽名,則必須相信KDC的公開密鑰副本不曾被篡改過。這些都需要對公開密鑰認證。如果被篡改,任何一個人都可以偽裝成對方傳送一個加密和簽名的消息。利用該缺陷的一些人聲稱公鑰密碼體制是無用的,公鑰體制對提高安全性一點用處也沒有,但實際情況復雜得多。采用數字簽名和可信賴KDC的公鑰體制,使得一個密鑰代替另一個密鑰變得非常困難。你可以通過電話核實對方的密鑰,這樣他可以聽到你的聲音。聲音識別是一個真正的好的鑒別方案。如果是一個秘密密鑰,他就用一個單向哈希函數來核實密鑰,AT&T、TSD就是用這種方法對密鑰進行驗證的。有時,核實一個公開密鑰到底屬于誰并不重要,核實它是否屬于去年的同一個人或許是有必要的:如果某人送了一個簽名提款的信息到銀行,銀行并不關心到底誰來提款,它僅關心是否與第一次來存款的人是同一個人。

3.對稱密鑰管理

對稱加密是基于共同保守秘密來實現的。采用對稱加密技術的雙方必須保證采用的是相同的密鑰,保證彼此密鑰的交換是安全可靠的,同時還要設定防止密鑰泄密和更改密鑰的程序,從而對稱密鑰的管理和分發工作將變成一個具有潛在危險的和煩瑣的過程。但通過公開密鑰加密技術實現對稱密鑰的管理,使相應的管理變得更加簡單和安全,同時還解決了純對稱密鑰模式中存在的可靠性問題和鑒別問題。

一種建立對稱加密密鑰的常用方法是RSA密鑰傳輸法。對稱密鑰能夠由一個系統生成,然后散發給一個或多個系統,其采用的是RSA的加密模式來進行加密。

通信雙方中的一方可以為每次交換的信息生成唯一一把對稱密鑰,并用公開密鑰對該密鑰進行加密,然后將加密后的密鑰和用該密鑰加密的信息一起發送給相應的通信方。由于對每次信息交換都對應生成了唯一一把密鑰,因此通信雙方就不再需要對密鑰進行維護和擔心密鑰的泄露或過期。這種方式的另一優點是即使泄露了一把密鑰也只將影響一筆交易,而不會影響通信雙方之間所有其他交易關系。這種方式提供了貿易伙伴間發布對稱密鑰的一種安全途徑。

另一種建立對稱加密密鑰的方法,是通信雙方通過某個值來形成對稱加密密鑰的方法,它是由Diffie和Hellrnan提出的。這一創造性的技術被稱為Diffie-Hellman密鑰協議,其運作方式如下:系統A和B各自生成一個隨機的秘密值xy,每個系統用自己的秘密值計算出相應的公開值XY,兩個系統交換彼此的公開值,然后每個系統可以從自己的秘密值和另一個系統的公開值來計算出同一個密鑰,也就是說A可以用xY計算出密鑰,B則可以用yX計算出同一個密鑰。只知道公開值但不知道秘密值的竊聽者是不可能計算出密鑰的。

4.公開密鑰管理

公開密鑰加密系統對密鑰管理的要求與對稱加密系統本質上是完全不同的。在對稱加密系統中,對彼此間進行通信的信息進行保護的雙方必須持有同一把密鑰,該密鑰對他們之外的其他方是保密的。而在公開密鑰加密系統中,一方必須持有一把對其他任何方都是保密的密鑰(私人密鑰),同時,還要讓想要與私人密鑰的持有者進行安全通信的其他方知道另一把相應的密鑰(公開密鑰)。

在分發公開密鑰時并不要求保密,但必須保持公開密鑰的完整性。也就是說,不能給攻擊者任何替換密鑰值的機會,因為這些密鑰是一方所信賴的其他方的公開密鑰,否則就可能遭到攻擊。

從表面來看,公開密鑰密碼算法沒有密鑰分配問題,這正是公開密鑰密碼算法的最大方便之處,網絡越復雜、網絡用戶越多,其優點就越明顯。因為公開密鑰加密使用兩個不同的密鑰,其中有一個是公開的,另一個是保密的。公開密鑰可以保存在系統目錄內、未加密的電子郵件信息中、電話黃頁(商業電話)上或公告牌里,網上的任何用戶都可獲得公開密鑰。而私有密鑰是用戶專用的,由用戶本身持有,它可以對由公開密鑰加密的信息進行解密。

但是在具體應用中,公開密鑰的分發并不像在電話簿中公布電話號碼那么簡單,除非所有的用戶對這樣的目錄及相應的訪問具有高度的信任感,但事實證明這類信任是很難實現的。由此引出了以證書形式來進行公開密鑰的管理。通常意義上,所謂證書其實是一種數據結構,是證書使用者所信任的一方進行數字簽名的電子信息。公開密鑰證書是一種將某方的身份(證書的主體)與某個公開密鑰值安全地連接在一起的數據結構。圍繞證書的簽發與管理而構建的技術和法律框架結構被稱為公開密鑰基礎設施(PKI)。

下面介紹四類典型的公開密鑰分配方案:公開宣布;公開可以得到的目錄;公開密鑰管理機構;公開密鑰證書。

(1)公開密鑰的公開宣布

公開密鑰的公開宣布方法最為簡單,只需將公開密鑰附加在發送給公開論壇的報告中,這些論壇包括USENET新聞組和Internet郵件組。這是一個不受控制的公開密鑰分配方案,如圖2-27所示。但是這個方法有一個致命的弱點:任何人都可以偽造一個這樣的公開告示。

(2)公開可以得到的目錄

通過維持一個公開可以得到的公開密鑰動態目錄就能夠取得更大程度的安全性。對公開目錄的維護和分配必須由一個受信任的系統和組織來負責,如圖2-28所示。

圖2-27 不受控制的公開密鑰分配

圖2-28 公開密鑰的公布

這種方案包括下列成分:

1)管理機構為每個參與者維護一個目錄項(名字,公開密鑰)。

2)每個參與者在目錄管理機構登記一個公開密鑰。登錄必須面對面進行,或者通過某種安全的經過認證的通信方式進行。

3)參與者可以隨時用新的密鑰更換原來的密鑰,不論是因為希望更換一個已經用于大量的數據的公開密鑰,還是因為對應的私有密鑰已經以某種途徑泄露出去了。

4)管理機構定期發表這個目錄或者對目錄進行更新。例如,可以出版一個很像電話號碼簿的打印版本,或者可以在一份發行量很大的報紙上列出更新的內容。

5)參與者也可能以電子方式訪問目錄。為了這個目的,從管理機構到參與者的通信必須是安全的、經過鑒別的通信。

這個方案明顯比各個參與者單獨進行公開告示更加安全,但是它仍然有弱點。如果一個敵對方成功地得到或者計算出了目錄管理機構的私有密鑰,敵對方就可以散發偽造的公開密鑰,并隨之假裝成任何一個參與者竊聽發送給該參與者的報文。另一個達到同樣目的的方法是,敵對方篡改管理機構維護的目錄。

(3)公開密鑰管理機構

通過更嚴格地控制公開密鑰從目錄中分配出去的過程,就可以使公開密鑰分配更安全。一個典型的情況如圖2-29所示。和以前一樣,在這里假定一個中心管理機構維護一個所有參與者的公開密鑰動態目錄。另外,每個參與者都可靠地知道管理機構的一個公開密鑰,而只有管理機構才知道對應的私有密鑰。

本方案中,開始的4個報文并不經常使用,因為A和B兩者都可以保存另一個公開密鑰以供將來使用,即都可以使用緩存技術。一個用戶應該定期向通信的對方要求當前的公開密鑰,以保證公開密鑰的實效性。

(4)公開密鑰證書

如圖2-29所示的情形固然很好,但是它也有某些缺點。公開密鑰管理機構可能是系統中的一個瓶頸,因為一個用戶對于他所希望聯系的其他用戶都必須借助于管理機構才能得到公開密鑰。像前面一樣,管理機構所維護的名字和公開密鑰目錄也可能被篡改。一個使用數字證書的替代方法如圖2-30所示。

圖2-29 利用公鑰管理機構分發公開密鑰

注:KUa和KUb分別是A和B的公開密鑰。

圖2-30 公開密鑰證書的交換

注:Cert-A、Cert-B和ID-A、ID-B是A和B的數字證書和身份標識。

采用這種方案可以做到如同直接從公開密鑰管理機構得到密鑰一樣可靠。每個證書包含一個公開密鑰以及其他信息,它由一個證書管理機構制作,并發給具有匹配的私有密鑰的參與者。一個參與者通過傳輸它的證書將其密鑰信息傳送給另一個參與者,其他參與者可以驗證證書是不是該管理機構制作的。

這種方案有如下要求:

1)任何參與者都可以閱讀證書以確定證書擁有者的名字和公開密鑰。

2)任何參與者都可以驗證證書是否來自證書管理機構。

3)只有證書管理機構才可以制作和更新證書。

4)任何參與者都可以驗證證書的有效性。

圖2-30給出了一個滿足如上條件的證書交換方案。貿易伙伴間可以使用數字證書(公開密鑰證書)來交換公開密鑰。國際電信聯盟(ITU)制定的標準X.509對數字證書進行了定義,該標準等同于國際標準化組織(ISO)與國際電工委員會(IEC)聯合發布的ISO/IEC9594—8:195標準。數字證書通常包含唯一標識證書所有者(即貿易方)的名稱、唯一標識證書發布者的名稱、證書所有者的公開密鑰、證書發布者的數字簽名、證書的有效期及證書的序列號等。證書發布者一般稱為證書管理機構(CA),它是貿易各方都信賴的機構。數字證書能夠起到標識貿易方的作用,是目前電子商務中廣泛采用的技術之一。微軟公司的Internet Explorer就提供了數字證書的功能來作為身份鑒別的手段。

5.混合密鑰管理方案

直接用公鑰進行通信加密和直接用私鑰對數據進行簽名的做法效率太低,而公鑰體制不需要共享的通用密鑰,而且在身份驗證方面很有優勢,因此出現了公鑰體制和對稱密鑰體制混合起來的密鑰管理方案。這種方案是利用公鑰來協商臨時的會話密鑰,再用會話密鑰來加密會話內容。

假定有兩個用戶a和b想要相互通信,網絡上還有一個可信的第三方CA。a和b均有自己的公鑰和私鑰,其中公鑰公開在CA上,私鑰則自己秘密保存,如圖2-31所示。

圖2-31 混合密鑰管理方案

1)a發起通信,先隨機生成一個會話密鑰key。從CA得到b的公鑰PK2,用PK2加密y,發送給b。

2)b收到后,用自己的私鑰SK2解密得到key。這時雙方都已經擁有會話密鑰。b發送一個確認給a。

協商以后,a和b使用會話密鑰y來通信。如果b要確認a的身份,那么在步驟1)中,a還要加上自己的簽名,也就是用私鑰SK1加密一個能表明自己身份的標記,把加密結果附帶發送給b。此時,在步驟2)中,b就可以用a的公鑰來驗證a的簽名了。

以上只是一個簡單的密鑰管理方法,在實際應用中密鑰管理可能復雜得多,可能要考慮數據完整性、時間戳、密鑰更新等問題。其中所用到的公鑰密碼算法可以是RSA、橢圓曲線等。

6.密鑰托管技術

密鑰托管的前提是,用戶不應具有在他們中間分配秘密密鑰的能力,否則用戶能用這些密鑰替代密鑰托管機構能控制的密鑰,繞過密鑰托管,使密鑰管理失效。

密鑰托管可以簡單地理解為把通信雙方每次的會話密鑰交給合法的第三方,以便讓合法的第三方利用得到的會話密鑰解密雙方通信的內容,從而監視雙方的通信。一般而言合法的第三方通常為政府部門和法律執行部門。

密鑰托管的一個最簡單方法就是由一個(或多個)可信的政府代理機構為個人保管秘密密鑰,這樣經過適當的授權,政府就能檢索存儲的秘密密鑰,進而對竊聽到的通信進行脫密。

(1)密鑰托管的發展

由于密鑰托管技術的使用會將企業和私人用戶的秘密泄露給政府和法律執行部門,這引起了政府和法律執行部門與企業和私有用戶之間的矛盾。官方認為,密鑰托管的研制和使用對于加速發展高級安全技術,保證高速發展的信息網絡系統的安全有重要作用。它為公司保護其專有信息,為私人保護個人秘密,防止未授權信息泄露提供了有效的工具,同時它也為政府和法律執行機構提供了依法監視犯罪分子所進行通信的能力,以維護憲法的尊嚴和保護公民的權力。但企業和私人用戶認為密鑰托管將泄露他們的私人秘密,它將對通信雙方的安全和公民的權力產生破壞性的影響,這樣對用戶來說,將沒有自己私人的秘密可言。由此可見,要進行密鑰托管,需要政府制定相應的法規,并要嚴格控制。

現在比較成熟的密鑰托管技術是美國的密鑰托管標準KES,它基于一個防拆性的CLIP-PER芯片,利用了私鑰密碼體制的分組密碼算法來產生數據恢復域。密鑰托管已經在一些地方使用,它們不僅用來恢復加密后的信息,而且還具有簽名驗證功能。

雖然近年來從大眾媒體到政府高層政策決策者都對密鑰托管體制產生了濃厚的興趣,遺憾的是,就密鑰托管領域本身而言,其基礎不是很完善,以致在安全保密性問題上產生過災難性的事故。

(2)密鑰托管的應用

目前密鑰托管技術的使用還不夠廣泛,但它已在下面幾個方面得到了應用。

當一個用戶存儲了一個加密后的文件或其他重要資料時,由于用戶不小心丟失或損害加密該文件的密鑰,而需要緊急解密文件或資料,此時用戶可向密鑰托管代理者申請,密鑰托管代理者向他們提供所需要的用戶秘密密鑰,從而使用戶能恢復出加密的文件或資料。

使用密鑰托管來加密關鍵文件時,當執行加密的用戶不在,而合法的用戶又想知道該文件內容時,它可把加密后的文件傳送給密鑰托管者,密鑰托管者解密后就可把它送還給合法用戶。

在此介紹利用密鑰托管協議進行文件加密的一種應用:

1)用戶向密鑰托管者發送將要存儲的文件。

2)密鑰托管者利用自己的秘密密鑰K1來加密用于加密該文件的密鑰K2

3)密鑰托管者利用K2來加密該文件,并把加密后的K2和加密后的文件送回給用戶。

因為只有密鑰托管者能解密K2,而其他人沒有能力對其解密,所以文件的安全性得到了保障。

當法律執行部門懷疑某人或組織在采用密碼設備進行犯罪活動時,為了獲得犯罪證據,他們利用密鑰托管來解密截取到的密文,從而將犯罪分子繩之以法。企業內部為了防止某些懷有惡意的雇員利用內部的保密設備泄露本公司的秘密,利用密鑰托管技術對他們的通信進行監視,從而可防止和減少公司的損失。

在電子郵件中,發送者和接收者利用密鑰托管可進行密鑰交換、電子簽名、鑒別等操作。此外,在銀行系統、商業系統、軍方和一些政府部門都可找到它的應用。

(3)密鑰托管的組成

密鑰托管加密分成三個組成部分:用戶安全部分、密鑰托管部分和數據恢復部分。用戶安全部分是用來提供信息加密和解密以及密鑰托管功能的硬件設備或軟件程序,它提供了一個數據恢復域(DRF)到加密后的信息中去,DRF中包含了會話密鑰的信息,它用來實現密鑰托管功能;密鑰托管部分可由密鑰托管代理來操作,它采用一些安全方法從DRF中恢復出會話密鑰;數據恢復部分則利用從密鑰托管部分中得到的會話密鑰對截取到的密文進行明文的恢復。

(4)密鑰托管的可行性分析

由于密鑰托管系統負有法律執行部門及政府智能部門的特殊任務,同非密鑰托管系統相比,它的實行勢必降低加密系統的安全性,增加系統的復雜性以及建立、維護、運行系統的費用。密鑰托管作為一個信息安全基礎設施,在它的推廣使用時必須考慮以下幾點。

1)保證數據的保密性、完整性。

2)世界范圍內的可用性。與國際、國內不同的密碼政策相適應。

3)足夠的強度,能抗擊實際使用中的各種威脅及運行的風險。

4)實施方法的細節應該是公開的,比如SHIJACK算法及LEAF產生方法。

5)必須能為法律執行部門提供方便。

6)濫用應該是困難的和容易發現的。

7)形成一個合法的組織體系。

8)必須考慮憲法賦予公民的合法權利。

9)選擇可信任的托管機構KEA(Key Escrow Agency)時應有很大的靈活性。

10)有足夠的權利使用新開發的算法和標準。

11)對任何人都是容易得到的,而且費用不能太高。

12)為用戶提供可選的安全防范,以減小諸如密鑰丟失或毀壞所造成的損失。

2.5.2 密鑰交換協議

密鑰交換協議是這樣一種機制:系統中的一個成員先選擇一個秘密密鑰,然后將它傳送給別的成員。傳統的方法是通過郵遞或信使護送密鑰,這種方法的安全性完全取決于信使的忠誠和素質,當然很難完全消除信使被收買的可能性。另外,這種方法的傳輸量和存儲量都很大。人們希望能設計出滿足以下兩個條件的密鑰分配協議:傳輸量和存儲量都比較小;每一對用戶U和V都能獨立地計算一個秘密密鑰K。目前已經設計出了大量的滿足上述兩個條件的密鑰分配協議,諸如Diffie-Hellman密鑰交換協議、Oakley密鑰交換協議和互聯網簡單密鑰交換協議(SKIP)。

1.Diffie-Hellman密鑰交換協議

Diffie和Hellman在其具有里程碑意義的文章中,雖然給出了密碼的思想,但是沒有給出真正意義上的公鑰密碼實例,也沒能找出一個真正帶陷門的單向函數。然而,他們給出了單向函數的實例,并且基于此提出了Diffie-Hellman密鑰交換協議法。

Diffie-Hellmen密鑰交換協議擁有美國和加拿大專利。利用Diffie-Hellman密鑰協議,兩個通信系統可以用同一個數值來生成加密的對稱密鑰。

Diffie-Hellman密鑰交換協議有兩個優勢特征。

1)密鑰僅在需要時才被建立,不需要將密鑰存儲很長一段時間,因此不易受到攻擊,降低了密鑰泄露的危險性。

2)協議除要求有預先協商好的全局參數外,不要求有其他預先已存在的基礎設施,實現簡單方便。

但是,Diffie-Hellman協議也存在著如下弱點。

1)協議未提供有關通信雙方身份的任何信息。

2)易受中間人攻擊。即第三方C在和A通信時扮演B;而在和B通信時扮演A。A和B都同C協商了一個密鑰,然后C就可以監聽和修改通信數據流,而A和B毫不知情,都以為是在和對方通信。

3)協議的計算量很大,因此易受到阻塞性攻擊。即攻擊者假冒一個合法用戶的源地址向被攻擊者發送Diffie-Hellman公鑰,請示大量的密鑰,被攻擊者則需要花費大量的計算資源來做無用的模指數運算,嚴重時可導致拒絕服務。

2.Oakley密鑰交換協議

Oakley密鑰交換協議是由安全專家Hilarie Orman開發的一種協議,是在Diffie-Hellman密鑰交換協議基礎上的改進。

Oakley的設計目標是繼承Diffie-Hellman協議的優點,同時克服其缺點。Oakley有以下五個重要的特征。

1)采用了稱為Cookie程序的交換機制來防止阻塞攻擊。

2)通信雙方可以協商Diffie-Hellman密鑰交換所用的群,即協商所需的全局參數。

3)使用一次性隨機數來防止重播攻擊。

4)可使通信雙方交換Diffie-Hellman公開密鑰的值。

5)對Diffie-Hellman密鑰交換加以鑒別,防止中間人攻擊。

此外,在此基礎上,還產生了更為規范的IKE安全交換協議。IKE是Oakley和SKEME密鑰交換方案的綜合體,屬于互聯網安全關聯和密鑰管理協議(Internet Association and Key Management Protocol,ISAKMP)框架的一種實例,并在ISAKMP規定的一個框架內運行。

3.互聯網簡單密鑰交換協議(SKIP)

盡管SKIP協議仍然采用Diffie-Hellman密鑰交換機制,也就是說,兩個實體以證書形式都知道對方的長效Diffie-Hellman公鑰,從而隱含地共享一個主密鑰。該主密鑰可以導出對分組密鑰進行加密的密鑰,而分組密鑰才真正用來對IP包加密。一旦長效Diffie-Hellman密鑰泄露,則任何在該密鑰保護下的密鑰所保護的相應通信都將被破解。此外,SKIP是無狀態的,它不以安全條例為基礎。每個IP包可能是分別進行加密和解密的,歸根到底用的是不同的密鑰。

2.5.3 PGP密鑰管理技術

PGP(Pretty Good Privacy)是Hil Zimmermann于20世紀80年代中期提出的密鑰管理方案,該方案的創造性在于把RSA公鑰體系的便捷性和傳統加密體系的高速性結合起來,公開密鑰采用RSA加密算法,實施對密鑰的管理;分組密鑰采用了IDEA算法,實施對信息的加密,并且在數字簽名和密鑰認證管理機制上有巧妙的設計。因此PGP成為幾乎最流行的公鑰加密軟件包。

PGP應用程序的第一個特點是速度快,效率高,另一個顯著特點就是可移植性出色,它可以在多種操作平臺上運行。PGP主要用于實現文件加密、發送和接收加密的E-mail、數字簽名等功能。它采用了以下技術:審慎的密鑰管理、一種RSA和傳統加密的雜合算法、用于數字簽名的郵件文摘算法和加密的雜合算法、用于數字簽名的郵件往往在加密前壓縮等,還有一個良好的人機會話設計。它功能強大,速度很快,而且其源代碼是免費的。

PGP的主要功能如下。

1)使用PGP對郵件加密,以防止非法閱讀。

2)能給加密的郵件追加上數字簽名,從而使收信人進一步確信郵件的發送者,而事先不需要任何保密的渠道用來傳遞密鑰。

3)可以實現只簽名而不加密,適用于發表公開聲明時證實聲明人身份,也可防止聲明人抵賴,這一點在商業領域有很大的應用前景。

4)能夠加密文件,包括圖形文件、聲音文件以及其他各類文件。

5)利用PGP代替Uuencode生成RADIX64(就是MIME的BASE64格式)的編碼文件。

1.PGP的概念和原理

PGP是目前最流行的一種加密軟件,它是一個基于RSA公鑰加密體系的郵件加密軟件。我們可以用它對郵件加密以防止非授權者閱讀,它還能對用戶的郵件加上數字簽名,從而使收信人可以確信發信人的身份。它讓用戶可以安全地和從未見過的人們通信,事先并不需要任何保密的措施來傳遞密鑰,因為它采用了非對稱的“公鑰”和“私鑰”加密體系。

PGP不是一種完全的非對稱加密體系,它是個混合加密算法,是由一個對稱加密算法(IDEA)、一個非對稱加密算法(RSA)、一個單向散列算法(MD5)以及一個隨機數產生器(從用戶擊鍵頻率產生偽隨機數序列)組成的,每種算法都是PGP不可分割的組成部分。PGP之所以得到流行,得到大家的認可,最主要的一個原因是它集中了幾種加密算法的優點,使它們彼此得到互補。

我們知道采用“公鑰”和“私鑰”加密體系最大的安全性問題就是公開的“公鑰”可能被人篡改,影響文件的解密。雖然PGP也采用這一加密體系,并且所有“公鑰”和“私鑰”都可以由用戶自己產生,不需要專門的認證機構,但它有一個比較完善的密鑰管理體制,所以它的另一半優點就體現在PGP獨特的密鑰管理體制上。

下面我們就從PGP加密機制和密鑰管理的角度來分析PGP加密的優越性。

(1)PGP的安全機制

在現代社會里,電子郵件和網絡上的文件傳輸已經成為生活的一部分。郵件的安全問題也就突出了,大家都知道在互聯網上傳輸的數據是不加密的。如果用戶不保護自己的信息,第三者就會輕易獲得用戶的隱私。還有一個問題就是信息認證,如何讓收信人確信郵件沒有被第三者篡改,就需要使用數字簽名技術(關于數字簽名技術,本書將在下一章作詳細闡述)。

PGP的數字簽名是利用一個叫“郵件文摘”的功能。“郵件文摘”(Message Digest),簡單講就是對一封郵件用某種算法算出一個最能體現這封郵件特征的數來,一旦郵件有任何改變,這個數都會發生變化,那么這個數加上用戶的名字(實際上在用戶的密鑰里)和日期等,就可以作為一個簽名了。確切地說,PGP是用一個128位的二進制數作為“郵件文摘”,用來產生它的算法就是MD5(Message Digest 5)。MD5的提出者是Ron Rivest,PGP中使用的代碼是由Colin Plumb編寫的MD5。

PGP給郵件加密和簽名的過程是這樣的:首先甲用自己的私鑰將上述的128位值加密,附加在郵件后,再用乙的公鑰將整個郵件加密(要注意這里的次序,如果先加密再簽名,別人可以將簽名去掉后簽上自己的簽名,從而篡改了簽名)。這樣這份密文被乙收到以后,乙用自己的私鑰將郵件解密,得到甲的原文和簽名,乙的PGP也從原文計算出一個128位的特征值來和用甲的公鑰解密簽名所得到的數進行比較,如果符合就說明這份郵件確實是甲寄來的。這樣兩個安全性要求都得到了滿足。

PGP還可以只簽名而不加密,這適用于公開發表聲明時,聲明人為了證實自己的身份,可以用自己的私鑰簽名,這樣就可以讓收件人能確認發信人的身份,也可以防止發信人抵賴自己的聲明。這一點在商業領域有很大的應用前途,它可以防止發信人抵賴和信件被途中篡改。

PGP提供的安全服務如表2-16所示。

表2-16 PGP的安全服務

(2)PGP的密鑰管理

一個成熟的加密體系必然要有一個成熟的密鑰管理機制配套。公鑰體制的提出就是為了解決傳統加密體系的密鑰分配難以保密的缺點。比如網絡黑客們常用的手段之一就是“監聽”,如果密鑰是通過網絡傳送就太危險了。對PGP來說公鑰本來就要公開,就沒有防監聽的問題。但公鑰的發布中仍然存在安全性問題,例如公鑰被篡改(Public Key Tampering),這可能是公鑰密碼體系中的最大漏洞。用戶必須確信用戶的公鑰屬于需要收信的那個人。

PGP的每個密鑰有它們自己的標識(key ID)。key ID是一個8位十六進制數,兩個密鑰具有相同key ID的可能性只有十億分之一,而且PGP還提供了一種更可靠的標識密鑰的方法:密鑰指紋(Keys Fingerprint),每個密鑰對應一串數字(16個2位十六進制數),這個指紋重復的可能就更微乎其微了。而且任何人無法指定生成一個具有某個指紋的密鑰,密鑰是隨機生成的,從指紋也無法反推出密鑰來。用戶拿到某人密鑰后就可以與他在電話上核對這個指紋,從而認證他的公鑰。

2.PGP軟件使用簡介

PGP加密軟件是美國Network Associate Inc.開發的免費軟件,目前已經有多種版本,分別有與MS-DOS、UNIX、Macintosh和Windows兼容的版本。PGP的6.5版是免費版,在www.pgp.com上可以下載。

PGP的安裝很簡單,和一般的軟件安裝一樣,按提示一步步完成即可。安裝后,Windows的Exchange或者Outlook就增加了PGP軟件及相應的菜單和按鈕。如果使用的電子郵件軟件沒有PGP的軟件支持,PGP可以通過文件快捷菜單和剪貼板這兩種手段與電子郵件軟件交換加密數據,因此,PGP可以直接或間接地支持所有電子郵件軟件。

安裝后,用戶能夠使用兩個程序:PgpTrays.exe和PgpKeys.exe。PgpTrays.exe是控制中心,提供對所有功能的操作界面,并且執行后在任務欄中供用戶隨時調用,建議將其添加到開始菜單的“啟動”。而PgpKeys.exe可以對密鑰進行生成、散發與廢除、簽名與信任等管理。

PgpKeys管理著一個“鑰匙環”,鑰匙環文件保存著收集到的所有公開密鑰,由此可以進行密鑰維護與管理。

(1)生成新的密鑰對

每一個用戶都必須生成自己的密鑰對,這是使用PGP加密的第一步,通常在安裝過程中完成。在PgpKeys中也可生成新的密鑰,在菜單Key→NewKey彈出的生成密鑰窗口中,填寫用戶名、電子信箱地址;然后要選擇密鑰長度,確定密鑰生存周期,定義保護密鑰的口令。生成密鑰后,可以選擇是否立即將新的公開密鑰發送到互聯網的密鑰服務器上。

(2)散發和獲取公開密鑰

散發和獲取公開密鑰有兩種途徑。

1)通過網上公共的密鑰服務器在PgpKeys的密鑰列表中選擇某個公開密鑰。點擊鼠標右鍵,在Key Server→Send Selected Keys彈出的快捷菜單中選擇發送密鑰至服務器即可上傳公開密鑰。選擇Get Selected Keys(獲取指定人的密鑰)或者主菜單Keys→Key Server→Find New Key(通過電子信箱地址和姓名查找新密鑰),即可在密鑰服務器上查詢和下載密鑰,并安裝到本機鑰匙環上。

2)通過電子郵件在PgpKeys的密鑰列表中選擇某個公開密鑰。點擊鼠標右鍵,在彈出的快捷菜單中選擇Export(導出),將選中的密鑰保存為一個后綴名為ASC的文本文件,作為電子郵件的附件發送給對方;收到密鑰文件后,對方在PgpKeys的菜單中選擇Import(導入),或者在運行PgpKeys后,雙擊該密鑰文件,即可將公開密鑰掛在鑰匙環上。

(3)簽名與信任

獲得他人的公開密鑰并掛到鑰匙環上以后,必須經過驗證,再使用你自己的私人密鑰對其簽名以設定信任等級。驗證的方法有兩種。

1)驗證密鑰的指紋。每一個密鑰在生成時都產生一個唯一對應的數字指紋,這是一串數字,最保險的辦法是要求密鑰所有者在電話里報出密鑰指紋供你驗證。

2)通過可信任的介紹人來驗證密鑰的信任度。任何人都可以用自己的私人密鑰對他人的公開密鑰進行數字簽名,表示相信該密鑰屬于其真正的主人。

驗證一個密鑰的真實性后,可以用私人密鑰對其進行簽名并設定其信任等級。在PgpKeys的密鑰列表中選擇該公開密鑰,點擊鼠標右鍵,在彈出的快捷菜單中選擇Sign(簽名),回答口令后即將該公開密鑰簽名;在右鍵快捷菜單中選擇Key Properties(密鑰屬性)即可修改信任等級。

(4)密鑰的廢除

假如不再信任密鑰對,則可以通過廢除操作來取消它們,在PgpKeys的密鑰列表中選擇該公開密鑰,在右鍵快捷菜單中選擇Revoke(廢除),然后將廢除的密鑰上傳到公開密鑰服務器,或者通過電子郵件發送給相關的通信伙伴。

主站蜘蛛池模板: 米脂县| 绿春县| 武功县| 民县| 韶关市| 洛隆县| 淮阳县| 即墨市| 肃宁县| 宣威市| 佛冈县| 卢湾区| 江西省| 晋城| 临夏县| 桐城市| 乌兰察布市| 吉林省| 双流县| 沙湾县| 上饶市| 凯里市| 杭锦旗| 深圳市| 商南县| 竹溪县| 黄陵县| 山阴县| 岱山县| 淮滨县| 东宁县| 西充县| 米脂县| 墨竹工卡县| 老河口市| 康乐县| 侯马市| 高碑店市| 壶关县| 元谋县| 丹巴县|