Ars Technicaは11月13日、「In a first, cryptographic keys protecting SSH connections stolen in new attack」において、SSHの秘密鍵が盗まれる可能性がある新たな脆弱性が発見されたと伝えた。この脆弱性は、クライアントとサーバが接続を確立する際に行われるRSA署名の計算エラーによって発生するもので、攻撃者は欠陥のあるRSA署名を使用して元の鍵ペアの秘密鍵を復元できる可能性があるという。

この問題はカリフォルニア大学の研究チームによって発見され、「Passive SSH Key Compromise via Lattices」という論文に詳細がまとめられている。

  • Passive SSH Key Compromise via Lattics

    Passive SSH Key Compromise via Lattics

研究チームは、過去7年間のインターネットスキャンで観察された32億件の署名を調査した結果、およそ3分の1にあたる約10億件でRSA暗号アルゴリズムが使用されていることを発見し、そのうちの約100万件に1件で秘密鍵が復元できることが判明したという。原理的には、SSH接続だけでなくIPSec接続でも同様の攻撃が可能だとされている。

計算エラーによって生じた欠陥のあるRSA署名から秘密鍵が復元できる可能性は、1996年および1997年の研究ですでに指摘されていたとのこと。攻撃者は、欠陥のある署名を正常な署名と比較し、GCD(最大公約数)による数学的演算を使用することで、秘密鍵のセキュリティの元になる1つの素数を特定可能。2015年には、この手法がTLSセッション中に使用されるキーに対しても適用できる可能性が示されている。

ただしその時点では、SSHやIPsecに対してこの攻撃手法の悪用は実現困難とみなされていた。これらのプロトコルでは署名の暗号化ハッシュにDiffie-Hellman鍵交換で生成される共有鍵か含まれることから、秘密鍵を復元する十分な情報が得られないためである。今回、研究チームは格子暗号に使用される数学的手法を用いた暗号解読技術によって、欠陥のあるRSA署名の不完全な情報から秘密鍵を復元できることを実証したという。

さらに研究チームは、対策が施されていないSSH実装を使用するデバイスを調査し、実際に欠陥を含むRSA署名が生成されていることを確認したことを明らかにしている。研究チームは、この研究成果はSSHやIPSecなどの暗号化通信技術において、計算エラーに対するより堅牢なプロトコル設計の必要性を示唆していると指摘している。