JVNVU#95668716
OpenSSL の DH プロトコルにおける脆弱性
OpenSSL には、Diffie-Hellman (DH) プロトコルに「安全素数」でない素数を使用することで、暗号化に使用する鍵を特定される脆弱性が存在します。
- OpenSSL 1.0.2f より前のバージョン
- OpenSSL 1.0.1r より前のバージョン
暗号化処理の不備 (CWE-325) - CVE-2016-0701
OpenSSL 1.0.2 では、RFC 5114 で指定されているパラメータを X9.42 形式で生成する機能が実装されています。この機能で生成される素数は、「安全素数」になるとは限りません。「安全素数」でない場合に攻撃可能な手法が知られており、暗号化に使用する鍵を取得される可能性があります。
さらに OpenSSL のデフォルト設定では、プロセスが終了するまで、生成された素数を再利用します。これにより、TLS のように Diffie-Hellman (DH) プロトコルを使用するアプリケーションは、攻撃者に秘密情報を特定され、すべての通信内容を復号される可能性があります。
ただし発見者はブログ投稿で、攻撃の成立条件について次のように述べています。
アルゴリズムのダウングレード (CWE-757) - CVE-2015-3197"requires that the attacker complete multiple handshakes in which the peer (OpenSSL in this case) uses the same private DH exponent.
同一のパラメータを使用し続けているピア (ここでは OpenSSL) に対し、ハンドシェイクを複数回行う必要がある"
開発者は次のように述べています。
さらに詳しい情報は、OpenSSL のセキュリティアドバイザリをご確認ください。"A malicious client can negotiate SSLv2 ciphers that have been disabled on the server and complete SSLv2 handshakes even if all SSLv2 ciphers have been disabled, provided that the SSLv2 protocol was not also disabled via SSL_OP_NO_SSLv2.
SSLv2 で使用されるすべての暗号化方式を無効に設定していても、SSL_OP_NO_SSLv2 によって SSLv2 自体の使用を無効化していなければ、悪意のあるクライアントは SSLv2 の暗号化方式でハンドシェイクを完了することができる。"
遠隔の第三者に復号のための鍵を入手され、機微な情報を取得される可能性があります。また、無効化しているはずの SSLv2 の暗号化方式で通信が行われ、既知の脆弱性の影響を受ける可能性があります。
アップデートする
開発者が提供する情報をもとに、最新版へアップデートしてください。
開発者は本脆弱性の対策版として、OpenSSL 1.0.2f および OpenSSL 1.0.1r をリリースしています。
ワークアラウンドを実施する
次のワークアラウンドを実施することで、本脆弱性の影響を軽減することが可能です。
- SSL_OP_SINGLE_DH_USE オプションを有効にすることで、DH プロトコルにおけるパラメータの再利用を防ぐ
-
CERT/CC Vulnerability Note VU#257823
OpenSSL re-uses unsafe prime numbers in Diffie-Hellman protocol -
Into the symmetry
OpenSSL Key Recovery Attack on DH small subgroups (CVE-2016-0701)
攻撃元区分(AV) | 物理 (P) | ローカル (L) | 隣接 (A) | ネットワーク (N) |
---|---|---|---|---|
攻撃条件の複雑さ(AC) | 高 (H) | 低 (L) | ||
必要な特権レベル(PR) | 高 (H) | 低 (L) | 不要 (N) | |
ユーザ関与レベル(UI) | 要 (R) | 不要 (N) | ||
スコープ(S) | 変更なし (U) | 変更あり (C) | ||
機密性への影響(C) | なし (N) | 低 (L) | 高 (H) | |
完全性への影響(I) | なし (N) | 低 (L) | 高 (H) | |
可用性への影響(A) | なし (N) | 低 (L) | 高 (H) |
攻撃元区分(AV) | ローカル (L) | 隣接 (A) | ネットワーク (N) |
---|---|---|---|
攻撃条件の複雑さ(AC) | 高 (H) | 中 (M) | 低 (L) |
攻撃前の認証要否(Au) | 複数 (M) | 単一 (S) | 不要 (N) |
機密性への影響(C) | なし (N) | 部分的 (P) | 全面的 (C) |
完全性への影響(I) | なし (N) | 部分的 (P) | 全面的 (C) |
可用性への影響(A) | なし (N) | 部分的 (P) | 全面的 (C) |
分析結果のコメント
この CVSS は CVE-2016-0701 を評価したものです。
JPCERT 緊急報告 |
|
JPCERT REPORT |
|
CERT Advisory |
|
CPNI Advisory |
|
TRnotes |
|
CVE |
CVE-2016-0701 |
CVE-2015-3197 |
|
JVN iPedia |
- 2016/02/01
- 詳細情報と関連文書の CVE 番号を修正しました
- 2016/02/22
- ジェイティ エンジニアリング株式会社のベンダステータスが更新されました
- 2020/11/17
- 日本電気株式会社のベンダステータスが更新されました