DROWN攻撃を象徴する壊れた鍵のロゴ | |
| CVE 識別子 | 脆弱性 |
|---|---|
| 発見日 | 2016年3月 |
| 発見者 | ニムロッド・アヴィラム、セバスチャン・シンゼル |
| 影響を受けるソフトウェア | SSL(v2) |
| Webサイト | drownattack.com |
DROWN ( Decrypting RSA with Obsolete and Weakened eNcryption ) 攻撃は、クロスプロトコルのセキュリティバグであり、最新の SSLv3/ TLSプロトコルスイートをサポートするサーバーを攻撃します。これは、古い安全でないSSL v2プロトコルのサポートを利用して、本来は安全な最新のプロトコルを使用した接続を攻撃するものです。[1] [2] DROWN は、SSLv3/TLS で暗号化されたサービスを提供しながら SSLv2 もサポートしているすべての種類のサーバーに影響を与える可能性があります。ただし、2 つのプロトコル間で同じ公開鍵資格情報を共有している必要があります。[3] さらに、SSLv2 をサポートする別のサーバーで同じ公開鍵証明書が使用されている場合、SSLv2 サーバーが TLS サーバーに対して使用できる鍵情報を漏洩するため、TLS サーバーも脆弱になります。[3]
DROWN の詳細は、OpenSSL で SSLv2 を無効にするパッチとともに 2016 年 3 月に発表されました。この脆弱性には ID CVE - 2016-0800 が割り当てられました。[4]証明書が別の SSLv2 ホストで見つかった場合、パッチだけでは攻撃を軽減するのに十分ではありません。唯一の実行可能な対策は、すべてのサーバーで SSLv2 を無効にすることです。
研究者らは、2016年3月1日時点ですべてのHTTPSサイトの33%がこの脆弱性の影響を受けていると推定した。[5]
詳細
DROWN は「Decrypting RSA with Obsolete and Weakened eNcryption」の頭字語です。[6] これは、特定の実装エラーではなく、使用されるプロトコルとサーバーの構成の組み合わせの脆弱性を悪用します。発見者によると、この脆弱性は、Web ブラウザーなどのクライアント ソフトウェアに変更を加えても修正できません。[3]
このエクスプロイトには、 SSLv2 サーバーをBleichenbacher オラクルとして使用する選択暗号文攻撃が含まれています。SSLv2 は、マスター シークレットを RSA を使用して直接暗号化することで機能し、40 ビットのエクスポート暗号スイートは、マスター シークレットの 40 ビットのみを暗号化し、残りの 88 ビットをプレーンテキストとして公開することで機能しました。48 バイトの SSLv3/TLS で暗号化された RSA 暗号文は、40 ビットの部分に「トリミング」され、SSLv2 ClientMasterKey メッセージで使用されます。サーバーは、これを SSLv2 マスター シークレットの 40 ビット部分として扱います (残りの 88 ビットは、クライアントからプレーンテキストとして送信された任意の値になります)。40 ビットの暗号化をブルート フォースすることで、ServerVerify メッセージをオラクルとして使用できます。この概念実証攻撃では、マルチ GPU 構成と商用クラウド コンピューティングの両方で暗号解読計算の一部を実行できることが実証されました。GPU セットアップのコストは約 18,000 ドル、クラウドのコストは攻撃ごとに 400 ドルです。攻撃が成功すると、キャプチャされた TLS ハンドシェイクのセッション キーが提供されます。
上記の攻撃を一般的な DROWN 攻撃と表現した調査員らは、SSLv2 の OpenSSL 実装に、いわゆる特殊な DROWN攻撃を許す特定の脆弱性も発見しました。これにより、暗号を破るのに必要な労力が大幅に削減され、適度なコンピューティング リソースのみを必要とするリアルタイムの中間者攻撃が可能になりました。2015 年までの SSLv2 の OpenSSL 実装では、クリア キーと暗号化キーの長さが正しいかどうかが確認されなかったため、たとえばマスター シークレットの 8 ビットしか暗号化できませんでした。2015 年まで、OpenSSL は、Bleichenbacher 対抗策の試行中に、SSLv2 マスター シークレットの間違ったバイトを上書きしていました。2016 年まで、OpenSSL は、無効な SSLv2 暗号スイートを問題なくネゴシエートしていました。SSLv3 以降とは異なり、SSLv2 ではクライアントはサーバーが提供する暗号スイートのリストから選択することになっていましたが、OpenSSL はリストにない暗号スイートの使用を許可していました。
このバグを最初に報告したのは、セキュリティ研究者のニムロッド・アヴィラムとセバスチャン・シンゼルでした。[7]
緩和
DROWNから保護するために、サーバー運営者は、SSLv2接続を許可するサーバーソフトウェアで秘密鍵が使用されないようにする必要があります。これには、Webサーバー、SMTPサーバー、IMAPサーバー、POPサーバー、およびSSL/TLSをサポートするその他のソフトウェアが含まれます。[8]
OpenSSLグループは、セキュリティアドバイザリと、古いプロトコルと暗号のサポートを削除することで脆弱性を軽減することを目的とした一連のパッチをリリースしました。[9] ただし、サーバーの証明書がSSLv2をサポートする他のサーバーで使用されている場合、そのサーバーは依然として脆弱であり、パッチを適用したサーバーも同様です。
多くの情報源は、サイト運営者がこの脆弱性をできるだけ早く修正することを推奨しています。
参考文献
- ^ Leyden, John (2016 年 3 月 1 日)。「HTTPS ウェブサイトの 3 分の 1 が DROWN 攻撃にさらされている」The Register。2016年 3 月 2 日閲覧。
- ^ Goodin, Dan (2016 年 3 月 1 日)。「新たな復号化攻撃により 1,100 万以上の HTTPS ウェブサイトが危険にさらされる」。Ars Technica。2016年 3 月 2 日閲覧。
- ^ abc Nimrod Aviram、Sebastian Schinzel、Juraj Somorovsky、Nadia Heninger、Maik Dankel、Jens Steube、Luke Valenta、David Adrian、J. Alex Halderman、Viktor Dukhovni、Emilia Käsper、Shaanan Cohney、Susanne Engels、Christof Paar、および Yuval Shavitt。DROWN: SSLv2 を使用した TLS の突破、2016 年
- ^ 「CVE-2016-0800 に関する National Cyber Awareness System の脆弱性の概要」。web.nvd.nist.gov。2016年 3 月 2 日閲覧。
- ^ 「DROWN Attack」. drownattack.com . 2016年3月24日閲覧。
- ^ 「新しい TLS 復号化攻撃は、レガシー SSLv2 サポートが原因で 3 台に 1 台のサーバーに影響します」。PCWorld。2016年 3 月 2 日閲覧。
- ^ 「DROWN - SSLv2 を使用した TLS に対するクロスプロトコル攻撃 - CVE-2016-0800 - Red Hat カスタマーポータル」。access.redhat.com。2016年3 月 2 日閲覧。
- ^ 「DROWN Attack」. 2016年3月1日.
- ^ 「SSLv2 を使用した TLS に対するクロスプロトコル攻撃 (DROWN) (CVE-2016-0800)」。OpenSSL。2016 年 3 月 1 日。
外部リンク
- 公式サイト
- 技術論文
- セキュリティ通知のリスト 2018-07-19 にWayback Machineにアーカイブされました
