The Hacker Newsはこのほど、「Experts Uncover Passive Method to Extract Private RSA Keys from SSH Connections」において、攻撃者が署名の計算中に自然に発生する障害を経験したSSHサーバから好機を得てRSAホスト鍵の秘密鍵を取得できることが実証されたと伝えた。これはカリフォルニア大学のKeegan Ryan氏、Kaiwen He氏、George Arnold Sullivan氏、Nadia Heninger氏が共同で発表した論文「Passive SSH Key Compromise via Lattices」の内容を伝えたもの。

SSH(Secure Shell)は暗号や認証技術を使用して遠隔のコンピュータと安全に通信するためのプロトコル。ホスト鍵はSSHでホストを認証するための公開鍵暗号の鍵ペアで、今回はRSA方式のものが対象となっている。

The Hacker Newsによると、CRT-RSAを使用した署名の計算中に障害が発生した場合、この署名を観察した攻撃者が署名者の秘密鍵を計算できる可能性があるという。このため、中間者攻撃(MITM: Man-in-the-middle attack)を仕掛ける攻撃者が、秘密鍵を計算できる欠陥のある署名を観察するまで通信を中継することで、気づかれることなくホストの秘密鍵を入手できる可能性がある。攻撃者が秘密鍵を入手した場合、それ以降の通信でホストになりすませるため、通信を傍受することが可能となる。

論文では過去7年間分のSSH、IPSec通信の約52億件のスキャンデータを分析し、欠陥のある署名にラティス攻撃を使用して最終的に189個のRSA秘密鍵を取得したとしている。さらにその後の調査で、Cisco、Hillstone Networks、Mocana、Zyxelのデバイスがこの攻撃を受けやすいことを特定したという。

論文では、この攻撃の対策として、署名を送信する前に署名に欠陥がないか検証することを推奨している。一般的なSSH実装であるOpenSSHでは署名の生成にOpenSSLを使用しており、OpenSSLは2001年の時点ですでにこの攻撃に対する対策を組み込んでいるため、OpenSSHはこの攻撃の影響を受けないとみられている。