研究人員發(fā)明了一種新辦法,可以在使用加密體系保護的網(wǎng)站、VPN和互聯(lián)網(wǎng)服務(wù)器中放入不被檢測的后門,這一壯舉使得黑客可以輕松解密數(shù)以億計的加密通信和密鑰。
這一技術(shù)最引人注目的地方就是它將一個后門程序(也可以說是“陷阱”)放在了Diffie-hellman 密鑰交換所使用的1024位密鑰中。Diffie-hellman的存在大大增加了竊聽者的負擔,因為它會定期更改加密密鑰來保護正在進行的通信。按照以往經(jīng)驗來說,只要攻擊者知道了“陷阱門”的存在,那么破解受Diffie-hellman保護的通信就只是時間問題了。知識完備的攻擊者也可以基于廣泛使用的數(shù)字簽名算法創(chuàng)建自己的加密簽名。
隨著所有公共密鑰的加密,Diffie-hellman的安全協(xié)議是建立在數(shù)據(jù)理論計算之上的,其中包含的數(shù)量巨大,攻擊者想要解決它難于登天。各方都能夠保守計算結(jié)果中所包含的秘密。然而研究人員設(shè)計的一個特殊質(zhì)數(shù)包含了能夠使得秘密參數(shù)難以被發(fā)現(xiàn)的無形屬性。研究人員使用一個2,000 到 3,000 CPU 的學術(shù)計算群集可以在兩個月左右的時間里攻破這些1024位質(zhì)數(shù)中的一個。
后門加密標準——“完全可行”
對于密鑰擁有者來說,帶有“陷阱門”的密鑰和其他任何1024位密鑰沒有任何區(qū)別。但是對于了解密鑰漏洞的攻擊者來說,鞏固安全性能的離散對數(shù)問題根本就是小意思。這種效率使得“陷阱門”對于國家安全局承包商Edward Snowden 來說十分理想,他在2013年說過他的目的就是要解碼大量的加密網(wǎng)絡(luò)。
參與此項目的賓夕法尼亞大學研究人員Nadia Heninger告訴Ars,“Snowden文件已經(jīng)引起了關(guān)于公鑰加密標準中后門程序的一些嚴重問題。我們展示的那個“陷阱門”可以讓攻擊者們快速打破1024位秘密鑰。”
國家標準與技術(shù)研究所(NIST)從2010年就開始建議使用2048位作為密鑰的最小尺寸,但是1024位密鑰仍舊大量出現(xiàn)在網(wǎng)絡(luò)當中。上個月SSL Pulse開展的一項調(diào)查表明,HTTPS保護的前兩千家網(wǎng)站當中有22%使用1024位密鑰執(zhí)行密鑰交換。這種廣泛使用的背后是大家普遍相信只有國家資助的竊聽組織才會花費巨大代價來破解1024位密鑰。其他原因還包括2048位密鑰存在執(zhí)行和兼容方面的困難。比如說,2014年發(fā)布的JAVA 8就不支持Diffie-hellman 或 DSA 密鑰大于 1024 位。并且直到目前為止,DNSSEC規(guī)范為了確?;ヂ?lián)網(wǎng)的域名系統(tǒng)安全,限制數(shù)字簽名算法密鑰最高為1024位。
侵入源頭
在Diffie-Hellman中,解決關(guān)鍵的離散對數(shù)問題非常重要。原因就是大量的應(yīng)用程序都要頻繁標準化和使用一組質(zhì)數(shù)。
如果美國國家安全局或其他組織成功將一個或多個“陷阱門”變成主流做法,該機構(gòu)就能夠成功竊聽到數(shù)以百萬計,甚至數(shù)不盡的終端用戶的加密通信。到目前為止,研究者們還沒有在廣泛使用的應(yīng)用程序中發(fā)現(xiàn)“陷阱門”的存在,但是這并不意味著它們不存在。
2008年,互聯(lián)網(wǎng)工程任務(wù)組發(fā)表了一系列可用于高度敏感應(yīng)用中的推薦質(zhì)數(shù),其中包括包括保護網(wǎng)站和電子郵件服務(wù)器的安全協(xié)議傳承層、用于遠程管理服務(wù)器的安全外殼協(xié)議、保護鏈接的互聯(lián)網(wǎng)密鑰交換,以及電子郵件的安全/多用途互聯(lián)網(wǎng)郵件擴展標準。這些質(zhì)數(shù)當中已經(jīng)帶有了研究者們創(chuàng)建的陷阱程序,外人幾乎沒有辦法知道真相,解決這一數(shù)學問題需要處理器運轉(zhuǎn)幾個世紀。
同樣的,Heninger說,世人無法知道Apache Web 服務(wù)器所使用的關(guān)鍵 1024 位質(zhì)數(shù)是否也被安裝了后門程序。她在郵件中寫到:
“我們自己永遠也沒有辦法檢測出安裝了陷阱程序的質(zhì)數(shù)。但是我們知道“陷阱門”的工作原理,并且能夠量化攻擊者所獲得的收益。所以人們開始提出一些尖銳問題,在某些不透明的執(zhí)行和標準中,質(zhì)數(shù)到底是如何生成的?為什么在沒有證據(jù)的情況下要求我們信任RFC 5114 的質(zhì)數(shù)?為什么在沒有證據(jù)證明它們是隨機生成的情況下,VPN就標準化并廣泛執(zhí)行這些質(zhì)數(shù)?”
不同于RSA密鑰中的質(zhì)數(shù),特定的Diffie-Hellman 質(zhì)數(shù)非常常見。如果NSA或其他組織成功將一個“陷阱門”廣泛應(yīng)用,將會引發(fā)一場暴亂。從那時起,敵對勢力將會在Diffie-Hellman的加密通信中竊取彼此機密。
還記得Dual_EC_DRBG?
假設(shè)這樣的場景已經(jīng)發(fā)生,這也不是NSA第一次故意削弱標準,以方便自己破解加密了。例如,2007年NIST支持NSA開發(fā)代碼生成隨機數(shù)生成器。幾乎從一開始,所謂的 Dual_EC_DRBG就被懷疑含有一個精心設(shè)計的弱點,允許機構(gòu)能夠迅速破解以來關(guān)鍵隨機性算法的加密密鑰。六年后,也就是2013年,Snowden泄露文件證實了這一懷疑。
RSA安全公司,當時屬公開上市交易的EMC所有,回應(yīng)中警告用戶停止使用Dual_EC_DRBG。當時,Dual_EC_DRBG是RSA的BSAFE中的默認隨機數(shù)生成器,以及數(shù)據(jù)保護管理器程序。
今年年初,研究人員確定該生成器就是兩個后門程序之一,允許攻擊者可以解密VPN通信,在那之后,Juniper網(wǎng)絡(luò)也刪除了自己防火墻NetScreen中由NSA開發(fā)的數(shù)字生成器。
相比于1024位密鑰,破解一個帶有“陷阱門”程序的2048位密鑰所需時間增加了16萬倍。盡管對于賓夕法尼亞大學、法國國家研究所和洛林大學的計算機科學和控制專家來說這一時間還是很不保險,他們還是建議應(yīng)該盡快淘汰1024位密鑰。
他們在上周發(fā)表的一篇論文中寫道,“對后門程序的離散對數(shù)計算只對1024位密鑰可行,抵制后門程序攻擊最有效的辦法就是使用任何計算都不可行的密鑰。NIST在2010年就推薦將1024位密鑰從DSA、RSA和 Diffie-Hellman 中移除。但不幸的是,這種密鑰至今仍在廣泛使用。”
研究者說,除了使用2048位或更大的密鑰,還必須使用可以驗證的基本質(zhì)數(shù)隨機生成的方式來說生成密鑰。其中一種做法中大多數(shù)字節(jié)都來自密碼學家成為“不在我的袖子里”。另一種方法是標準化質(zhì)數(shù),包括用于確保隨機性的種子質(zhì)數(shù)。可惜的是,由于1024位密鑰的廣泛使用,這種做法漸漸消失了。雖然聯(lián)邦信息處理標準強加給美國政府機構(gòu)和其承包商一個生成質(zhì)數(shù)的種子,但是這個選項不是必選。
研究人員已經(jīng)發(fā)現(xiàn)的唯一廣泛使用的質(zhì)數(shù)就是使用Oakley 密鑰確定協(xié)議生成的,該協(xié)議是為TLS1.3版本和JAVA開發(fā)工具包準備的有限領(lǐng)域 Diffie-hellman 短暫參數(shù)。
破解加密密鑰最近常使用的方法被稱為數(shù)域篩算法,根據(jù)密鑰類型(離散對數(shù)或是因子分解)解決問題。到目前為止,已知的離散對數(shù)的最大質(zhì)數(shù)問題是去年解決的,長度達到768位。相比之下,解決含有陷阱程序的1024位密鑰問題只需要其十分之一的計算量。
“更麻煩的事”
從上世紀90年代早期開始,研究人員就已經(jīng)知道某些復合整數(shù)會被NFS優(yōu)先考慮。他們還知道帶有某些屬性的質(zhì)數(shù)更便于離散對數(shù)的計算。這組特殊的質(zhì)數(shù)會比普通質(zhì)數(shù)更容易被NFS破解。在這25年左右的時間里,研究人員相信“陷阱門”的質(zhì)數(shù)不是威脅,因為它們很容易解決,但現(xiàn)在新的研究通過特殊的數(shù)域篩法發(fā)現(xiàn),長久以來的這種觀點是錯誤的。
Heninger表示:
“能夠使用更快形式算法的條件是該質(zhì)數(shù)必須要有一種特定的屬性。對于常見的一些質(zhì)數(shù),比如一個質(zhì)數(shù)非常接近2的冪,我們使用這種質(zhì)數(shù)來執(zhí)行一些操作是很容易出問題的。
但是也存在一些無法檢測的質(zhì)數(shù)(或者更準確地說,是需要大量的計算才能檢測出)。這是更麻煩的事實,因為用戶無法知道給定的質(zhì)數(shù)是否有某種特定屬性,畢竟它們看起來都一樣。我們在本文中討論了應(yīng)該如何構(gòu)建著中具有特殊屬性的質(zhì)數(shù),但是不知道這個秘密的人是無法檢測出該屬性的。
保證一個質(zhì)數(shù)不存在這種“陷阱門”是可能的。一種方法就是通過“不在我袖子里”來生成質(zhì)數(shù)。有一些標準采用這種方法,另一種方法就是為隨機生成算法指定種子。”
隨著1024位質(zhì)數(shù)漸漸退出歷史舞臺,2048甚至4096位質(zhì)數(shù)會逐漸變成主流。那些無法確認安全的1024位密鑰應(yīng)該被視為可疑密鑰,并盡快清除。