解密NSA真正的竊聽技術
2013年,多虧前國家安全局員工愛德華·斯諾登(Edward Snowden)曝光了「稜鏡」項目,讓我們知道了美國國家安全局(NSA)能夠破解互聯網上使用的一些強加密演算法,攔截基於VPN、SSH和HTTPS的數萬億通信連接,閱讀數全球數百萬計的私人電子郵件。
2015年,亞歷克斯·哈德曼(Alex Halderman)和納蒂亞·赫寧格(Nadia Heninger)領導的研究小組在ACM計算機和通信安全學術會議上發表了名為《不完美的前向安全:迪菲-赫爾曼演算法的失敗》的論文。文中稱,NSA已經破解了迪菲-赫爾曼密鑰交換(DH)演算法的通用實現,並得以竊聽大量的HHTPS、SSH、VPN連接。
DH演算法通常用於在非可信通道中交換秘鑰,由於完全破解該演算法所需要的時間可能長達數百甚至上千年,它被公眾認為是防止NSA和其它國家機構進行竊聽的一種技術手段。舉例而言,破解1024位DH演算法中使用的秘鑰大概需要一年時間和數百萬美金的花費。
然而,研究者們在論文中稱,DH演算法中常用的素數只有少數幾個。Alexa排名前100萬的HTTPS域名中大約有92%一致使用了DH演算法中的兩個素數,這可能會促使NSA預先破解這兩個大素數,並通過這些伺服器竊聽全球幾乎所有的互聯網流量。考慮到NSA高達110美金的年度預算,這可能會讓NSA能夠承受破解的成本,實現所謂「突破性的分析能力」。
而且,由於只有幾個廣泛使用的素數,解密它們得到的收益將非常巨大。只破解一個1024位素數就可以讓NSA方便地訪問全球三分之二的VPN和四分之一的SSH伺服器。若破解第二個1024位素數,NSA的竊聽範圍就可以覆蓋Alexa HTTPS網站排名前一百萬的20%。換句話說,NSA只要對大規模計算項目投資一次,就可以竊聽到數以萬億計的加密連接。
如今,來自賓夕法尼亞大學,法國國家信息與自動化研究所(INRIA),法國國家科學研究所(INRIA)以及洛林大學的研究人員已經從實際上證實了美國國家安全局破解加密連接的方法。
Diffie-Hellman密鑰交換協議/演算法(Diffie-Hellman KeyExchange/Agreement Algorithm)是一種確保共享KEY安全穿越不安全網路的方法,允許協議(如HTTPS,SSH,VPN, SMTPS 和IPsec)協商一個密鑰並創建一個安全連接。
因為應用程序依賴diffie - hellman密鑰交換演算法生成臨時密鑰使用了大量素數,完全破解該演算法所需要的時間可能長達數百甚至上千年,所以想要解密安全通信所需的花費也是無法想像的。例如,破解1024位DH演算法中使用的秘鑰大概需要一年時間和數百萬美金的花費。
然而,現在安全研究人員只花費了2個月時間和3000個cpu就成功破解了一個1024位的密鑰,這可能幫助他們破解數萬億的基於 HTTPS的通信協議及其他安全傳輸層協議渠道。
你可能會想,這些安全研究人員是如何使用如今的計算硬體完成實際需要數百年才能完成的事情。本周二,研究人員發表一份研究論文中解釋道,雖然diffie - hellman演算法本身不包含任何後門,但是通過植入「陷阱門素數」就能被動解密加密通信,陷阱門是加密學中的後門,構建陷阱門可以讓因式分解變得更簡單。
此外,diffie - hellman演算法選擇運用的密鑰大小(即小於或等於1024位)也是至關重要的。
研究人員創建了一個弱1024位diffie -hellman陷門函數,即從預定義組中隨機選取大素數,事實表明,解決加固其安全性的離散對數問題要容易10000倍。
研究人員在研究報告中寫道:「目前總體上對1024位離散對數的估計表明,這種運算的可能範圍是那些能夠承擔數億美元專用硬體的群體。」
所以,高級黑客或是資源充足的機構知道素數是如何生成陷門函數的事實,想要解密1024位安全通信從而解讀離散對數以實現破解數億Diffie-Hellman加密通信的終極目標。NSA或類似機構如果能讓主流加密規格採用一個或多個陷阱門素數,那麼它們就能夠輕鬆的監視數以百萬計的加密通信。
研究人員還估計,對2048位密鑰進行類似的計算,即使是有陷阱門素數可能也需要花費比破解1024位密鑰多1600萬倍的努力,可能在未來今年內仍將是不可行的。
其實,美國國家標準與技術研究院(NIST)早在2010年就推薦將密鑰長度從1024位增加到2048位,但1024位密鑰仍然被廣泛使用,調查發現,Top 200,000 HTTPS網站中有22%使用1024位密鑰去執行密鑰交換。Java 8不支持長度超過1024位的密鑰。
因此,想要立竿見影地解決此問題的方法就是將2048位密鑰切換為4096位,但是,根據研究人員介紹,所有標準化素數應該與其種子一同發布。
用於diffie - hellman密鑰交換演算法的陷阱門素數(backdooring primes )與在雙橢圓曲線確定性隨機比特生成器中發現的名為「Dual_EC_DRBG」幾乎相同,它也被認為是由美國國家安全局提出的。
2006年,美國NIST發布一項關於隨機數生成方法的標準建議SP800-90A,其標題為《使用確定性隨機比特生成器的隨機數生成方法建議》,建議中包含了4種隨機數生成方法,其中一種就是Dual_EC_DRBG。
2007年,來自微軟的Dan Shumow和Niels Ferguson 在一個密碼學國際會議上質疑Dual_EC_DRBG存在後門,他們表示在給定的點參數下隨機數輸出是可以預測的。2007年11月,著名安全專家Bruce Schneier在http://Wired.com網站發表文章懷疑後門是由美國情報機構NSA故意引入的。此後,Dual_EC_DRBG演算法被微軟公司應用於Windows Vista 、Windows7、 Windows8等操作系統。在此階段,Dual_EC_DRBG演算法的後門問題僅為專業人士關注,對其安全性的質疑並沒有影響Dual_EC_DRBG演算法的推廣和應用。
2013年6月,美國國家安全局爆發「稜鏡門」事件,9月The New York Times(《紐約時報》)發表文章稱根據斯諾登提供的資料,NSA在Dual_EC_DRBG演算法中植入了後門,路透社則發表文章稱NSA秘密向知名安全技術公司RSA支付費用,以支持將Dual_EC_DRBG演算法作為BSAFE產品的默認隨機數源。Dual_EC_DRBG演算法的安全性問題才廣為關注。
所以,如果美國國家安全局在數億加密密鑰中使用這些無法察覺的「陷阱門」來解密加密通信就一點也不奇怪了。畢竟有一就有二,只是不知道此次事件又會激發怎樣的輿論浪潮,NSA的霸行還能持續多久...
註:本文參考來源於thehackernews
推薦閱讀:
※Ubuntu Linux下通過TPM保護SSH私鑰的安全
※如何儲存比特幣最安全?
※國內真的有規定說密碼必須明文儲存嗎?