怎么才能知道網絡中的郵件信息是否可信呢?在開發和安全人員的圈子里,他們可能會選擇使用PGP密鑰做驗證。然而,xkcdPGP的締造者Randall Munroe指出,PGP在實際使用中,可能沒有理論上那么安全。
FreeBuf百科
WOT信任網絡結構(Web Of Trust):簡單地說就是,在信任網中,沒有大家都信任的中心權威機構,用戶以各自為中心,相互認證公鑰,相互簽名公鑰證書。這些簽名使得用戶的公鑰彼此相連,形成自然的網狀結構,也就是所謂的信任網。
PGP(Pretty Good Privacy),是一個基于RSA公鑰加密體系的郵件加密軟件。可以用它對郵件保密以防止非授權者閱讀,它還能對郵件加上數字簽名從而使收信人可以確認郵件的發送者,并能確信郵件沒有被篡改。
脆弱的32位短密鑰
如果有人采用PGP數字簽名對其代碼和郵件進行加密,或許你可以認為他們是真實可信的。但是如果他們使用的是短密鑰(32位或者更短的),可能就不會有那么安全。在這種情況下,黑客可以輕松偽造出一個PGP簽名。比如Linus Torvalds、Greg Kroah-Hartman等幾位核心Linux內核開發人員,就碰到了這種事。
據悉在Linux內核郵件列表(LKML)中,自6月中旬后的兩個月里,某些開發人員在外部網絡和公共密鑰服務器中,發現了與自己使用的同名的偽造密鑰。
這并不是一種新的攻擊,Linux程序員們在2011年12月后就開始了解,短PGP密鑰本質上是不安全的,只是此前一直沒有人去攻破它。
PGP的安全現狀
在今年的6月,黑客Richard Klafter和Eric Swanson曾表示,雖然GPG(開源版本的PGP)的使用量在持續增長,人們仍然習慣于使用短密鑰。
在Evil 32網站上他們作出了聲明:
“15年前出現的32位的密鑰,到現在其實已經過時了。我們使用現代的GPU,可以撞出WOT(信任網絡結構)里每個32位密鑰ID。雖然這并沒有徹底打破GPG加密,但這確實減弱了GPG的可用性,大家使用時出問題的可能性也大大增加。”
真實情況有多糟呢?研究人員花了4秒的時間借助scallion程序,使用了普通的GPU(Nvidia GeForce GTX)進行碰撞,很輕松就生成了一個32位的密鑰ID。這其實并不是針對Linux的攻擊,事實上現在也似乎沒有造成什么實際危害。但是Linux的內核分支的核心維護人員Kroah-Hartman解釋道:
“這不僅僅危及到了Linux內核開發人員,而且還影響了PGP信任閉環里的2.4萬密鑰。這種情況已經持續了很長一段時間,而GPG在這里很難得到正確使用。”
然而,Linux開發人員們是首先注意到PGP簽名代碼發布時出現了一些奇怪的東西的。當時Swanson向Ycomhinator News解釋道:
“我們想要讓人們意識到使用短密鑰ID帶來了很大的威脅,在21世紀密鑰ID是很容易偽造的。密鑰內容里面的有一大部分是沒有被簽名所關聯的,所以這部分內容是可以進行更改的。同時,我們認為密鑰被上傳到公共的密鑰服務器上,對PGP生態系統是弊大于利的。
我們不能因為這還沒有產生危害,就隨意放心使用PGP。我們必須認識到,任何人都可以很容易地復制密鑰。我們使用團隊內部的腳本去克隆WOT,只花費了不到一個星期。如果有人熟悉GPG,他克隆一個密鑰可能也只需要幾分鐘。所以,GPG生態系統需要做出更好的防御機制。”
安全專家建議使用GPG時都帶上長密鑰,而且最好不要通過公共密鑰服務器進行自動更新。
*參考來源:zdnet,FB小編dawner編譯,轉載請注明來自FreeBuf(FreeBuf.COM)