真的,宇宙射線會導致部分 SSH 伺服器的私鑰泄露
如果你是 OpenSSL、LibreSSL、OpenSSH 的用戶,你可以坐下來看看了,因為這不會影響你。
最近一項學術研究展示了如下情況:對於某些特定設備,他人可以監聽其 SSH 連接,然後藉助一些運氣在無聲無息中破譯出主機的私有 RSA 密鑰,從而冒充該設備。
冒充這些設備後,通過使用推斷出的主機密鑰私鑰實施的中間人攻擊,間諜可以安靜地記錄用戶的登錄信息,同時,通過將這些連接轉發給真正的設備,他們還可以監控用戶在遠程 SSH 伺服器上的活動。儘管 SSH 還有其他功能,但其主要應用場景仍然是用戶登錄到設備並通過命令行介面進行控制。
據悉,可以通過被動監視從客戶端到易受攻擊設備的 SSH 伺服器的連接,獲得主機的 RSA 密鑰私鑰:無論是在簽名生成過程中的偶發運算錯誤,還是因宇宙射線等微小故障產生的自然錯誤,都可以被觀察和利用來推算 SSH 伺服器的主機密鑰私鑰,這本應是保密的。
雖然可能認為自然錯誤發生的概率很小,偶發錯誤可能已為眾所周知,但實際上只要你連續觀察足夠多的到有漏洞的 SSH 伺服器的 SSH 連接,你就有可能發現一個你可以利用的。
重要的一點是,軟體庫 OpenSSL 和 LibreSSL,以及 OpenSSH,都未發現存在上述密鑰推導問題的漏洞。由此,我們認為,網上的大部分設備、伺服器和其他設備都不會受到影響,只有特定的物聯網設備和類似的嵌入式設備可能會對此種攻擊敏感。此外,這種問題也僅影響 RSA 密鑰。
細節
由加利福尼亞大學聖地亞哥分校的 Keegan Ryan、Kaiwen He(他同時也在麻省理工學院任職)、George Arnold Sullivan 以及 Nadia Heninger 基於早期的一些研究,完成並撰寫了這項研究。他們採用的技術,旨在揭示 RSA 密鑰私鑰,該技術源於 Florian Weimer 在 2015 年對 TLS 的突破性研究,以及 2022 年聖地亞哥論文的幾位作者以及其他研究者的一些工作,這些工作可追溯到 1990 年代。
信息安全專家 Thomas Ptacek 曾高度讚揚了 2023 年研究的合著者 Nadia Heninger,並在此分享了 RSA 密鑰分析論文的摘要,以便於理解這個問題。我們同時也要感謝曾在 Register vulture 工作的 Dan Goodin,他在周一通過 Ars Technica 向我們報告了 UC 聖地亞哥論文的消息。
基本上,當客戶端嘗試連接到一個容易受到攻擊的 SSH 伺服器時,它們在協商建立全面安全加密通信的過程中,伺服器將會生成一個數字簽名以供客戶端檢查,以確保其正在與預期的伺服器通信。
如我們之前所述,這個簽名的計算過程可能會隨機或意外地產生錯誤,聰明的演算法可以從錯誤的簽名中推導出伺服器的私有 RSA 密鑰,此密鑰用於簽名生成。對此的一種防範措施是在將簽名發送給客戶端前確保其計算正確;OpenSSL 和 LibreSSL 已經在實施這種防範。
正如論文作者在他們的摘要中提到的:
「我們證明了一種可能性:若 SSH 伺服器在進行簽名計算過程中出現自然故障,一名被動的網路攻擊者便有機會獲得其私有 RSA 主機密鑰。
在之前的研究中,我們通常認為這對於 SSH 協議是不可行的,因為簽名中包含了一些信息,比如 Diffie-Hellman 共享密鑰,這些信息對於被動的網路觀察者來說無法獲得。
然而,我們證明了,在 SSH 中經常使用的簽名參數下,如果出現了簽名錯誤,我們便能有效地使用 格攻擊 來恢復私鑰。
我們對 SSH、IKEv1、IKEv2 協議進行了安全分析,在此場景下,我們利用我們的攻擊方法在現實環境中挖掘出幾個存在漏洞的獨立實現中的數百個被攻破的密鑰。
「一個被動的對手可以安靜地監控合法的連接,不用冒被檢測的風險,直到他們觀察到一個包含私鑰的錯誤簽名。」研究團隊做出了這樣的結論:「然後,攻擊者可以主動且不會被檢測地冒充被攻破的主機,從而截取敏感數據。」
研究人員表示,他們已經掃描了整個互聯網,並翻查了以前收集的 SSH 掃描數據,以測量易受攻擊的簽名的流行程度。他們聲稱,他們的數據集涵蓋了 52 億條 SSH 記錄和超過七年的觀察,其中包含了超過 59 萬個無效的 RSA 簽名。
通過他們的格密鑰恢復技術,學者們表示,其中超過 4900 個錯誤的簽名揭示了對應 RSA 公鑰的因子分解。他們利用這些信息,推導出了 189 個公鑰的私有 RSA 密鑰。
在他們的研究中,作者們發現,思科、Zyxel、山石網科和 Mocana 這四個製造商的產品都可能受到這種密鑰偵測攻擊。研究者已經向思科和 Zyxel 報告了這個問題,觀察到兩家供應商都迅速進行了調查行動。
思科判定其 ASA 和 FTD 軟體在 2022 年已經解決了此問題,且在這篇論文發布之前,公司正在對其 IOS 和 IOS XE 軟體進行調查,看看如何應對此問題。
同一時間,Zyxel 發現這個缺陷隻影響到了它那些已停止服務的固件,並且它已經開始使用不受此問題影響的 OpenSSL。研究人員表示,他們沒有成功地與山石網科和 Mocana 取得聯繫,所以決定把這個問題提交給了 CERT 協調中心。
據稱,自詡為 「SSH-2.0-SSHD」 的 SSH 伺服器實現也可能受到攻擊,這可能會影響到一些企業級的 Java 應用。有鑒於這個密鑰推導技術的關鍵在於 PKCSv1.5,使用 PKCSv1.5-RSA 簽名的 DNSSEC 可能也在風險之中。
他們還指出,他們在 IPsec 連接中收集到的簽名數據集不大,所以無法確定此協議是否也可能受到類似的密鑰泄漏攻擊。他們表示:「鑒於易受攻擊的簽名故障很罕見,根據我們的數據,我們無法對 IPsec 實現得出多少結論,我們認為這個問題值得進一步研究。」
更新:已經與山石網科取得聯繫,官方確認該問題已在 2015 年發布的相關版本中修復,之後的版本也不存在相關問題。
具體詳情可以諮詢山石網科客服或查看如下鏈接:
https://www.hillstonenet.com.cn/security-notification/2015/07/28/dsfyj/
(題圖:MJ/f94093f0-9ffe-4cf1-82fb-cdac1427e923)
via: https://www.theregister.com/2023/11/14/passive_ssh_key_compromise/
作者:Jessica Lyons Hardcastle 譯者:ChatGPT 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive