亚洲成精品动漫久久精久,九九在线精品视频播放,黄色成人免费观看,三级成人影院,久碰久,四虎成人欧美精品在永久在线

掃一掃
關注微信公眾號

PGP密鑰
2005-12-19   

密鑰可能是PGP中最重要的概念。PGP密鑰是用戶為特定目標創建的公鑰對。一般說來,用戶創建一個密鑰對同其他人進行一般性的聯系。所有出境的消息都用這個密鑰簽署,所在入境的消息都用這個密鑰解密。開始的時候密鑰管理可能有一些混亂。下面的部分將說明密鑰的目標和使用。
1.名字中是什么
前面的例子說明產生一個密鑰是多么容易,同時說明把任何一個名字放到密鑰中多么容易。
這個例子說明使用名字 “Ruth Thomas”產生的密鑰。它就像使用名字“William Clinton”產生密鑰一樣容易。這不是一個笑話,有一個密鑰實際上真是用這個名字產生的。當然,它并不歸總統所有,但是其他人在網絡上看到時可能不知道真相。
PGP為你提供了許多命名密鑰的方法。你要知道每一個不同的名字應當如何使用。你可以用任何一個名字產生密鑰,這個名字在密鑰中稱為userid。
一個密鑰可以有多個userid。一般說來,userid的形式是Real Name,即把用戶的實際名字和電子郵件地址組成一個單一的、壓縮的字符串。例如,Ruth Thomas 用他的Internet地址在free.net上為他自己創建了一個密鑰對。如前所示,他在1995年11月14日創建了一個1024位的密鑰。
因為可以把同一個密鑰用于多個地址,你可能要在同一個密鑰中放進多個名字,表示它可以用于多個站點。你可以使用PGP把userid添加到你自己的密鑰中,以編輯密鑰環。
如果Ruth 想要在他的另一個電子郵件地址中使用同一個密鑰,她可以把這個地址添加到他的密鑰中的第二個userid中。
PGP的每一個密鑰都有另一個你無法控制的名字:keyid。密鑰的keyid是一個數字串,這個數字串通過密鑰參數獲得,由PGP內部使用以便訪問處理中的密鑰。根據設計,想要讓keyid一定程度上模仿實際的鑰匙,但是實際上每個密角的keyid都不同。
keyid是一個64位量,但是只給用戶用十六進制格式打印出32位。無論PGP什么時候需要userid,keyid都可以用在它的位置上。要向PGP標識一個串是keyid,必須在它的前面放字符串“0x”,表示這是一個十六進制串。Ruth的密鑰也可以稱為0xD0C6326D.
keyid的問題是它現在是公鑰模數最低的64位。有一種很有名的攻擊,有人可以產生另一個不同長度的密鑰對,但是keyid和userid卻和你的一樣。如果檢查不細致,很難辨別你使用的是哪一個密鑰,而且無法告訴PGP你想要哪一個密鑰,因為PGP只能牽引userid和keyid。
不幸的是,現在對這種攻擊還沒有一種防范措施。將來的PGP版本可能要處理這種情況。
因為使用同樣的密鑰ID創建新密鑰相對容易,從而引起了密鑰安全指紋的需要。這個密鑰安全指紋是唯一的、不能很容易地偽造。這個值可用來作為密鑰驗證串;如果userid、keyid密鑰大小和指紋都符合的話,那么用戶就能確信他有正確的密鑰了。密鑰指紋是可信任的,因為密鑰指紋是使用同一個散列算法得到的。這個算法就是MD5,PGP用它來保證消息的完整性。
然而,匹配一個密鑰數字值并不足以相信這處密鑰。檢查密鑰中的名字也很重要。任何人都可以創建一個密鑰,并且說它屬于總統;然而,任何這樣的密鑰屬于總指揮部都是極不可能的。因此,你作為用戶,必須使用其他方式證實密鑰中的名字。在“Web的受托性”部分將介紹如何驗證一個密鑰。
2.PGP密鑰環
PGP要求用戶保持一個密鑰的本地緩存。這個緩存被稱為用戶的密鑰環。每個用戶至少有兩個密鑰環:公鑰環和私鑰環。每個密鑰環都用來存放用于特定目標的一套密鑰。然而保持這兩個密鑰環的安全性很重要;如果有人竄改公鑰環,就會使你錯誤地驗證簽名或者給錯誤的接收者加密消息。
(1)公鑰環
公鑰環為所有與你通信的各方存放公鑰、useris、簽名和信任參數。無論PGP什么時候要查找密鑰來驗證簽名或加密消息,它都會到你的公鑰環中去查找。這意味著你要讓公鑰環保持最新,即可以通過頻繁地公報來完成,也可以通過訪問PGP公鑰服務器來實現。
信任參數存放在公鑰環中,因此人與人之間不可能共享密鑰環。而且,PGP不能正確處理多個密鑰環,因此使用當前的版本創建一個站點范圍(site-wide)的密鑰環并不容易。
這是PGP中一個很有名的故障。等到在將來的版本中支持了多個密鑰環,他布密鑰最好的辦法是使用密鑰服務器。有關公鑰環的一個安全性問題是一個被損壞的公鑰環可能會導致錯誤的簽名驗證,更糟糕的是,還可能把消息發送給錯誤的對象。攻擊者可以改變存放在公鑰環的信任參數,或者改變存放在那里的實際密鑰資料。這些攻擊在“公鑰環的攻擊”部分將詳細描述。
在設計密鑰環的時候,只是想用它保存一些比較親密的朋友和同事的密鑰。很不幸,從當前的使用來看這種設計的假設有很大的局限性。許多人把他從來沒見過甚至從來沒聯系過的人的密鑰都放到密鑰環國。這樣就帶來許多問題,主要是由于信息和復制和訪問密鑰環所需要的時間造成的。推薦的辦法是保持密鑰環盡可能小,當必要時從密鑰服務器或站點級密鑰環中取得密鑰。
(2)私鑰環
私鑰環是PGP中存放個人私密的地方。當你產生一個密鑰時,不能泄露的部分就存放在私鑰環中。需要私下保存的數據被加密,因此對私鑰環的訪問不會自動允許對其秘密的使用。
然而,如果一個攻擊者能夠訪問私鑰環,那么他偽造簽名解密消息的障礙就小多了。
因為私鑰不在人們中間傳送,用戶的鑰環中唯一可能的密鑰就是他自己和私鑰。因為私鑰環受到通過短語的保護,簡單的密鑰環內容傳送不允許對密鑰資料的訪問。
我們不推薦各方共享一個私鑰,盡管有時可能有這種需要。尤其,當你擁有屬于一個組織的私鑰時,可能有必要讓這個組織的多個成員都能訪問這個私鑰。這意味著任何個人都可以完全代表那個組織行動。
有時,擁有一個不帶通過短語的私鑰可能會有用。例如,建立一個帶有私鑰的服務器代表一群人。尤其,你可以運行一個經過加密的郵件列表,這個郵件列表的郵件服務器有它自己的密鑰,而且有所有列表成員的公鑰。列表成員用郵件服務器的密鑰加密消息并把它發送給列表。列表處理解密消息,然后用相應列表成員加密的公鑰重新消息。此時列表服務器可以和列表密鑰簽署消息,但這不是必須的。在這種情況下服務器進程需要訪問一個私鑰,這就需要密鑰沒有通過短語。
因為一個私鑰環中可能有多個私鑰,PGP有一個選項可以指定你想要使用的私鑰的userid。
無論何時PGP需要選擇一個私鑰時,它都會選擇密鑰環的第一個密鑰,這個密鑰通常是最近創建的。你可以使用-u選項向PGP提供userid來修改它,這樣PGP就會使用相應userid的密鑰。
3.Web的受托性
據說,通過相應的媒介,在全球范圍內一個人只要經過6次握手就能同另一個聯系上。
這是一個介紹人的網絡,每個人在鏈中都作為到另一個人的介紹人。PGP使用類似的方法介紹新的密鑰,把密鑰簽名作為一種介紹形式。當某個人簽署了一個密鑰時,他就成為那個密鑰的潛在介紹人。例如,假設Alice簽署了Bob的密鑰,而Bob簽署了Charlie的密鑰。
Alice現在就有了一個到Chrlie的證明路徑。Alice現在有一種方式知道Charlie的密鑰確實是Charlie的,因為上面有Bob的簽名,而且Alice知道Bob的密鑰確實是Bob的。這是一種在密鑰中提供可傳遞的信任。
這個設計中有一個明顯的問題。如果有人作為介紹人,但是并不真正知道他所介紹的人會怎么樣呢?例如,如果Bob非常粗心,雖然簽署了Doug的密鑰,卻宣稱是Charlie的。不僅Bob認為這處密鑰屬于Charlie(盡管是Doug但卻宣稱它屬于Charlie),而且因為對受托性沒有一種度量,Alice也會相信。
這就是PGP信任網中所發生的。通過信任網(Web of Trust),用戶定義了對一個密鑰的信任量,作為介紹人。在前面的例子中,Alice給予Bob的密鑰盡可能多的信任,而且如果他相信Bob正確地簽署了其他人的密鑰,他也會相信這個密鑰。如果Alice知道Bob對于密鑰驗證很松懈,他就不會再信任Bob作介紹人了。其結果是,Alice不會再相信Bob為Doug簽署的但宣稱為Charlie的密鑰。
當然,信任網也不是絕對安全。如果有人被欺騙簽署了一個錯誤的密鑰,它就會使得其他人錯誤地相信它。PGP信任網被認為是一個聲譽系統,受到尊敬的人給出好的簽名,其他人則給出不好的簽名。當存在錯誤的聲譽時,系統就可能失效。
4.信任程度
信任網開始于一個用戶自己的密鑰時。PGP假設如果你有密鑰對中的一個私鑰,你就可能相信它。這是因為你可以在任何時候通過創建并驗證簽名來論證密鑰。這種情況稱為終極信任(Ultimate Trust)。被一個終極信任密鑰簽名的任何密鑰都被認為是有效密鑰。
對于每一個有效的密鑰,要求用戶為這個密鑰賦予一個信任級別。這個信任級值定義用戶作為介紹人對這個密鑰的信任程度。這樣會引起混淆,因為PGP使用同一個術語定義對密鑰有效性的信任和作為介紹人的信任量。一共有四種信任級別:
.完全信任(somplete trust)
.邊緣信任(marginal trust)
.不信任(no trust)
.未知信任(unknown trust)
除了可以在密鑰作為介紹人定義信任以外,用戶可以在密鑰中定義信任有效性需要的“完全”和“邊緣”數量。在缺省的情況下,PGP需要一個完全簽名或兩個邊緣簽名。這里一個完全簽名是使用一個介紹人完全信任的密鑰的簽名,邊緣簽名是使用一個介紹人邊緣信任的密鑰的簽名。用戶可以設置這些值,來定義需要多少完全和邊緣簽名才能信任一個密鑰的有效性。
這個過程不斷繼續,直到達到用戶定義的級別。在密鑰環的搜索中,缺省值是循環或嵌套的4個級別。如果Alice為Bob簽名,Bob為Charlie簽名,Charlie為Dave簽名,Dave這Elena簽名,而Elena又為Frank簽名,Alice距離Elena太遠了,根本就不能信任Frank,困為中間隔的步數太多了。而且,這些都依賴于Alice對這根線上所有簽名者的信任。一般說來,不推薦把信任放到你不認識的用戶的密鑰中。

熱詞搜索:

上一篇:PGP for Windows介紹簡介
下一篇:不容忽視 利用PGP加密技術保護電子郵件安全(1)

分享到: 收藏