SSH 接続から RSA 秘密鍵を抽出:研究者たちが実証した方法とは?

Experts Uncover Passive Method to Extract Private RSA Keys from SSH Connections

2023/11/27 TheHackerNews — ネットワークを介したパッシブ攻撃において、接続の確立中に自然に発生する計算障害を悪用することで、脆弱な SSH サーバから RSA ホスト・キーの入手が可能になることが、新しい研究により実証された。Secure Shell (SSH) プロトコルは、安全でないネットワーク上で安全にコマンドを送信し、コンピュータにログインするための方法である。SSH は、クライアント・サーバー・アーキテクチャーに基づいて、暗号を使用してデバイス間の接続を認証/暗号化するものだ。


ホスト・キーとは、SSH プロトコルでコンピュータの認証に使われる暗号鍵であり、一般的には RSA のような公開鍵暗号方式で生成される鍵のペアである。

University of California/San Diego と Massachusetts Institute of Technology の研究グループは、11月に発表した論文の中で、「CRT-RSA を使用した署名実装に署名計算中に障害が発生した場合に、この署名を観測した攻撃者は、その秘密鍵を計算できるという可能性を持つ」と述べている。

言い換えれば、パッシブ攻撃を仕掛ける攻撃者は、秘密鍵を暴露するような脆弱性のある署名を観測するまで、発見される危険を冒すことなく、合法的な接続を静かに追跡できるということだ。そして彼らは、侵害したホストになりすまして、機密データを傍受し、敵対的中間者 (AitM) 攻撃を仕掛けることが可能になる。

研究者たちは、この方法を格子ベースの鍵回復フォールト攻撃と説明し、Cisco/Hillstone Networks/Mocana/Zyxel などを含む、189 のユニークな RSA 公開鍵に対応する秘密鍵の抽出に成功した。

注目に値するのは、2018年にリリースされた TLS 1.3 では、接続を確立するハンドシェイクを暗号化し、パッシブ攻撃者による署名へのアクセスを防いでいる点だ。

研究者たちは、「これらの攻撃は、メタデータを保護するためにセッション・キーがネゴシエートされると同時に、プロトコルのハンドシェイクを暗号化すること/認証をセッションにバインドすること/認証を暗号化キーから切り離すことなどの、暗号化におけるいくつかの設計原則の価値を具体的に示している」と述べている。

この調査結果は、ROBOT (Return Of Bleichenbacher’s Oracle Threat) 攻撃の亜種である、Marvin Attack の公開から2ヶ月後に発表された。