ユーザーの秘密キーの回復を可能にする PuTTY の脆弱性

このプラットフォームで人気のSSHプロトコル用クライアントであるPuTTYでは WindowsNIST P-521楕円曲線ECDSAアルゴリズム(ecdsa-sha2-nistp521)を使用して生成されたユーザーの秘密鍵を復元できる危険な脆弱性(CVE-2024-31497)が確認されました。秘密鍵を解読するには、影響を受ける鍵によって生成された約60個のデジタル署名を分析するだけで十分です。

この脆弱性はPuTTY 0.68以降で発生し、FileZilla (3.24.1 - 3.66.5)、WinSCP (5.9.5 - 6.3.2)、TortoiseGit (2.4.0.2 - 2.15.0)、TortoiseSVN (1.10.0 - 1.14.6)など、脆弱性のあるバージョンのPuTTYを含む製品にも影響を及ぼします。この問題は、PuTTY 0.81、FileZilla 3.67.0、WinSCP 6.3.3、TortoiseGit 2.15.0.1のアップデートで修正されています。アップデートをインストール後、ユーザーは新しい鍵を生成し、authorized_keysファイルから古い公開鍵を削除することをお勧めします。

この脆弱性は、開発者の不注意によって引き起こされました。開発者は、521ビットのランダムシーケンスに基づく初期化ベクトル(ノンス)を使用して512ビットの鍵を生成しました。おそらく、512ビットのエントロピーで十分であり、残りの9ビットは本質的に重要ではないと考えたのでしょう。その結果、PuTTYでecdsa-sha2-nistp521アルゴリズムを使用して作成されたすべての秘密鍵において、初期化ベクトルの最初の9ビットが常にゼロ値になっていました。

ECDSAおよびDSAでは、擬似乱数生成器の品質と、ランダムデータによる係数の計算に使用されるパラメータの完全なカバレッジが根本的に重要です。初期化ベクトルに関する情報を含む数ビットを特定するだけでも、秘密鍵全体の順次復元に対する攻撃を実行するのに十分だからです。鍵の復元に成功するには、公開鍵を入手し、問題のある鍵を使用して攻撃者が知っているデータに対して生成された数十個のデジタル署名を分析するだけで十分です。攻撃はHNP(Hidden Number Problem)を解くことに帰着します。

必要なデジタル署名は、例えば、ユーザーが攻撃者のSSHサーバーやSSHをトランスポートとしてGitサーバーに接続する際に取得できます。また、Pageant SSHエージェントを使用して開発者ホストにトラフィックをリダイレクトする際に、gitコミットなどの任意のデータの認証に鍵が使用された場合、攻撃に必要な署名が判明する可能性もあります。SSHの署名は平文で送信されないため、中間者攻撃(MITM)攻撃中に鍵を復元するために必要なデータを取得することは不可能です。

PuTTY では、他の種類の楕円曲線に対しても同様の不完全な初期化ベクトルが使用されていますが、ECDSA P-521 以外のアルゴリズムでは、結果として生じる情報漏洩は、実用的なキー回復攻撃を実装するには不十分です。他のサイズの ECDSA キーおよび Ed25519 キーは攻撃を受けません。

出所: オープンネット.ru

DDoS 保護機能を備えた信頼性の高いサイト用ホスティング、VPS VDS サーバーを購入する 🔥 DDoS攻撃対策付きの信頼性の高いウェブサイトホスティング、VPS/VDSサーバーを購入しましょう | ProHoster