真的,宇宙射線會(huì)導(dǎo)致部分 SSH 服務(wù)器的私鑰泄露
最近一項(xiàng)學(xué)術(shù)研究展示了如下情況:對(duì)于某些特定設(shè)備,他人可以監(jiān)聽其 SSH 連接,然后借助一些運(yùn)氣在無(wú)聲無(wú)息中破譯出主機(jī)的私有 RSA 密鑰,從而冒充該設(shè)備。
冒充這些設(shè)備后,通過(guò)使用推斷出的主機(jī)密鑰私鑰實(shí)施的中間人攻擊,間諜可以安靜地記錄用戶的登錄信息,同時(shí),通過(guò)將這些連接轉(zhuǎn)發(fā)給真正的設(shè)備,他們還可以監(jiān)控用戶在遠(yuǎn)程 SSH 服務(wù)器上的活動(dòng)。盡管 SSH 還有其他功能,但其主要應(yīng)用場(chǎng)景仍然是用戶登錄到設(shè)備并通過(guò)命令行接口進(jìn)行控制。
據(jù)悉,可以通過(guò)被動(dòng)監(jiān)視從客戶端到易受攻擊設(shè)備的 SSH 服務(wù)器的連接,獲得主機(jī)的 RSA 密鑰私鑰:無(wú)論是在簽名生成過(guò)程中的偶發(fā)運(yùn)算錯(cuò)誤,還是因宇宙射線等微小故障產(chǎn)生的自然錯(cuò)誤,都可以被觀察和利用來(lái)推算 SSH 服務(wù)器的主機(jī)密鑰私鑰,這本應(yīng)是保密的。
雖然可能認(rèn)為自然錯(cuò)誤發(fā)生的概率很小,偶發(fā)錯(cuò)誤可能已為眾所周知,但實(shí)際上只要你連續(xù)觀察足夠多的到有漏洞的 SSH 服務(wù)器的 SSH 連接,你就有可能發(fā)現(xiàn)一個(gè)你可以利用的。
重要的一點(diǎn)是,軟件庫(kù) OpenSSL 和 LibreSSL,以及 OpenSSH,都未發(fā)現(xiàn)存在上述密鑰推導(dǎo)問(wèn)題的漏洞。由此,我們認(rèn)為,網(wǎng)上的大部分設(shè)備、服務(wù)器和其他設(shè)備都不會(huì)受到影響,只有特定的物聯(lián)網(wǎng)設(shè)備和類似的嵌入式設(shè)備可能會(huì)對(duì)此種攻擊敏感。此外,這種問(wèn)題也僅影響 RSA 密鑰。
細(xì)節(jié)
由加利福尼亞大學(xué)圣地亞哥分校的 Keegan Ryan、Kaiwen He(他同時(shí)也在麻省理工學(xué)院任職)、George Arnold Sullivan 以及 Nadia Heninger 基于早期的一些研究,完成并撰寫了這項(xiàng)研究。他們采用的技術(shù),旨在揭示 RSA 密鑰私鑰,該技術(shù)源于 Florian Weimer 在 2015 年對(duì) TLS 的突破性研究,以及 2022 年圣地亞哥論文的幾位作者以及其他研究者的一些工作,這些工作可追溯到 1990 年代。
信息安全專家 Thomas Ptacek 曾高度贊揚(yáng)了 2023 年研究的合著者 Nadia Heninger,并在此分享了 RSA 密鑰分析論文的摘要,以便于理解這個(gè)問(wèn)題。我們同時(shí)也要感謝曾在 Register vulture 工作的 Dan Goodin,他在周一通過(guò) Ars Technica 向我們報(bào)告了 UC 圣地亞哥論文的消息。
基本上,當(dāng)客戶端嘗試連接到一個(gè)容易受到攻擊的 SSH 服務(wù)器時(shí),它們?cè)趨f(xié)商建立全面安全加密通信的過(guò)程中,服務(wù)器將會(huì)生成一個(gè)數(shù)字簽名以供客戶端檢查,以確保其正在與預(yù)期的服務(wù)器通信。
如我們之前所述,這個(gè)簽名的計(jì)算過(guò)程可能會(huì)隨機(jī)或意外地產(chǎn)生錯(cuò)誤,聰明的算法可以從錯(cuò)誤的簽名中推導(dǎo)出服務(wù)器的私有 RSA 密鑰,此密鑰用于簽名生成。對(duì)此的一種防范措施是在將簽名發(fā)送給客戶端前確保其計(jì)算正確;OpenSSL 和 LibreSSL 已經(jīng)在實(shí)施這種防范。
正如論文作者在他們的摘要中提到的:
“我們證明了一種可能性:若 SSH 服務(wù)器在進(jìn)行簽名計(jì)算過(guò)程中出現(xiàn)自然故障,一名被動(dòng)的網(wǎng)絡(luò)攻擊者便有機(jī)會(huì)獲得其私有 RSA 主機(jī)密鑰。
在之前的研究中,我們通常認(rèn)為這對(duì)于 SSH 協(xié)議是不可行的,因?yàn)楹灻邪艘恍┬畔?,比?Diffie-Hellman 共享密鑰,這些信息對(duì)于被動(dòng)的網(wǎng)絡(luò)觀察者來(lái)說(shuō)無(wú)法獲得。
然而,我們證明了,在 SSH 中經(jīng)常使用的簽名參數(shù)下,如果出現(xiàn)了簽名錯(cuò)誤,我們便能有效地使用 格攻擊lattice attack
我們對(duì) SSH、IKEv1、IKEv2 協(xié)議進(jìn)行了安全分析,在此場(chǎng)景下,我們利用我們的攻擊方法在現(xiàn)實(shí)環(huán)境中挖掘出幾個(gè)存在漏洞的獨(dú)立實(shí)現(xiàn)中的數(shù)百個(gè)被攻破的密鑰。
“一個(gè)被動(dòng)的對(duì)手可以安靜地監(jiān)控合法的連接,不用冒被檢測(cè)的風(fēng)險(xiǎn),直到他們觀察到一個(gè)包含私鑰的錯(cuò)誤簽名?!毖芯繄F(tuán)隊(duì)做出了這樣的結(jié)論:“然后,攻擊者可以主動(dòng)且不會(huì)被檢測(cè)地冒充被攻破的主機(jī),從而截取敏感數(shù)據(jù)?!?/p>
研究人員表示,他們已經(jīng)掃描了整個(gè)互聯(lián)網(wǎng),并翻查了以前收集的 SSH 掃描數(shù)據(jù),以測(cè)量易受攻擊的簽名的流行程度。他們聲稱,他們的數(shù)據(jù)集涵蓋了 52 億條 SSH 記錄和超過(guò)七年的觀察,其中包含了超過(guò) 59 萬(wàn)個(gè)無(wú)效的 RSA 簽名。
通過(guò)他們的格密鑰恢復(fù)技術(shù),學(xué)者們表示,其中超過(guò) 4900 個(gè)錯(cuò)誤的簽名揭示了對(duì)應(yīng) RSA 公鑰的因子分解。他們利用這些信息,推導(dǎo)出了 189 個(gè)公鑰的私有 RSA 密鑰。
在他們的研究中,作者們發(fā)現(xiàn),思科、Zyxel、山石網(wǎng)科和 Mocana 這四個(gè)制造商的產(chǎn)品都可能受到這種密鑰偵測(cè)攻擊。研究者已經(jīng)向思科和 Zyxel 報(bào)告了這個(gè)問(wèn)題,觀察到兩家供應(yīng)商都迅速進(jìn)行了調(diào)查行動(dòng)。
思科判定其 ASA 和 FTD 軟件在 2022 年已經(jīng)解決了此問(wèn)題,且在這篇論文發(fā)布之前,公司正在對(duì)其 IOS 和 IOS XE 軟件進(jìn)行調(diào)查,看看如何應(yīng)對(duì)此問(wèn)題。
同一時(shí)間,Zyxel 發(fā)現(xiàn)這個(gè)缺陷只影響到了它那些已停止服務(wù)的固件,并且它已經(jīng)開始使用不受此問(wèn)題影響的 OpenSSL。研究人員表示,他們沒(méi)有成功地與山石網(wǎng)科和 Mocana 取得聯(lián)系,所以決定把這個(gè)問(wèn)題提交給了 CERT 協(xié)調(diào)中心。
據(jù)稱,自詡為 “SSH-2.0-SSHD” 的 SSH 服務(wù)器實(shí)現(xiàn)也可能受到攻擊,這可能會(huì)影響到一些企業(yè)級(jí)的 Java 應(yīng)用。有鑒于這個(gè)密鑰推導(dǎo)技術(shù)的關(guān)鍵在于 PKCSv1.5,使用 PKCSv1.5-RSA 簽名的 DNSSEC 可能也在風(fēng)險(xiǎn)之中。
他們還指出,他們?cè)?IPsec 連接中收集到的簽名數(shù)據(jù)集不大,所以無(wú)法確定此協(xié)議是否也可能受到類似的密鑰泄漏攻擊。他們表示:“鑒于易受攻擊的簽名故障很罕見(jiàn),根據(jù)我們的數(shù)據(jù),我們無(wú)法對(duì) IPsec 實(shí)現(xiàn)得出多少結(jié)論,我們認(rèn)為這個(gè)問(wèn)題值得進(jìn)一步研究?!?/p>