Logjam: TLS 脆弱性 (CVE-2015-4000)

Red Hat Product セキュリティーチームは、Diffie-Hellman (DH) 鍵交換プロトコルを使用した TLS 接続の各種の問題を認識しています。

背景情報

Diffie-Hellman 鍵交換プロトコルを使用した TLS 接続に脆弱性が確認されました。攻撃者はこの脆弱性を悪用して中間者攻撃 (MITM 攻撃) を仕掛け、TLS 接続を 512 ビットの輸出グレード暗号にダウングレードする可能性があります。DHE_EXPORT 暗号をサポートするすべてのサーバーがこの攻撃の影響を受けます。この攻撃は一般的な 2 つのセットである Apache の httpd バージョン 2.1.5 から 2.4.7 バージョンと OpenSSL のすべてのバージョンに指定される脆弱な Diffie-Hellman パラメーターの事前計算による 512 ビット素数によって引き起こされます。

Logjam research paper (Logjam 研究報告書) は脆弱な DH 鍵に関連する以下の問題点を論じています。

  1. TLS プロトコルでの DHE_EXPORT 暗号スイート、または暗号強度の低い輸出グレード暗号の DHE 鍵の使用: これらの鍵サイズは 512 ビットであり、十分な計算能力と時間があれば暗号を解読することができます。攻撃者はトラフィックを記録し、後でそれを解読できるため、この使用はとくに PFS (perfect-forward secrecy) に関連して問題になります。

  2. 特定バージョンの Apache httpd および sshd など、一般に使用されている一部のパッケージで提供される計算済み素数の使用: この脆弱性を悪用する攻撃者は、素数を事前に計算した後に、それらの素数を使用して TLS 接続を確立するためにこれらの素数を使用するすべてのトラフィックを解読することができます。

  3. DHE の DHE_EXPORT へのダウングレードを引き起こす可能性のある TLS プロトコルの不具合: この問題は CVE-2015-4000 で対応しています。

影響

上記の問題を悪用する以下の攻撃シナリオが想定されます。

  1. 脆弱な DHE 接続のオフライン解読
    この攻撃の条件として、サーバーに Diffie-Hellman (DH) 鍵交換に 512 ビットのパラメーターを使用することがデフォルト設定されている必要があります。これにより、クライアントとサーバー間の通信を記録できる攻撃者による通信内容を解読する受け身の攻撃が可能になります。

  2. DHE_EXPORT ダウングレードおよび TLS False Start 拡張のオフライン解読
    この攻撃の条件として、サーバーが DHE_EXPORT 暗号スイートをサポートしているか、または非輸出の DHE 暗号に 512 ビットのパラメーターを使用している必要があります。クライアントは TLS False Start 拡張を使用している必要があります。これらの状況では、攻撃者がクライアントとサーバー間の通信を記録してから、その通信内容を解読できる可能性があります。

  3. DHE_EXPORTダウングレードおよび中間者によるサーバーのなりすまし
    これは上記 2 番目の攻撃と似ていますが、TLS False Start 拡張を有効にする必要はありません。その代わりに、攻撃者はクライアントに依存し、ハンドシェイクが完了するまでしばらくの期間待機しなければなりません。攻撃者がハンドシェイクプロセスで接続鍵を計算する必要があり、この計算には数分の時間がかかるためです。

解決策

SSL/TLS サーバー

MITM 攻撃では、攻撃者はクライアントの代わりに DHE_EXPORT 暗号スイートを使用してサーバーへの接続を試行します。攻撃は、TLS プロトコルの DHE および DHE_EXPORT 暗号スイートの構成方法に見られる不具合によって仕掛けられます。このプロトコルの不具合が利用されると、サーバーが DHE_EXPORT 暗号スイートをサポートする場合に能動的な MITM 攻撃が引き起こされます。

この問題は、Red Hat Enterprise Linux 6 および 7 に同梱されている現行バージョンの openssl パッケージには影響を与えません。それらの「デフォルト」暗号一覧には DHE_EXPORT 暗号スイートまたはその他の輸出グレードの暗号スイートが含まれていないためです。(「デフォルト」暗号設定を使用するアプリケーションは輸出グレード暗号スイートを使用しません。ただし、アプリケーション固有の設定により、輸出暗号の使用が再有効化される可能性はあります。) これは openssl がネットワークサーバーによって使用される場合についてであることに注意してください。クライアント関連の問題についての詳細は、以下を参照してください。

Red Hat Enterprise Linux 7 では初期リリース以降、サーバーとして使用される openssl パッケージには、輸出グレード暗号スイートが「デフォルト」に含まれていません。Red Hat Enterprise Linux 6 では、Red Hat Enterprise Linux 6.6 の一部としてリリースされた RHBA-2014:1525 アドバイザリーで該当する変更が加えられました。

Red Hat Enterprise Linux 5 はデフォルトの暗号一覧で輸出グレード暗号スイートをサポートしています。Red Hat は、この CVE の評価が中程度の影響になっているため、Red Hat Enterprise Linux 5 のデフォルト暗号一覧を変更する予定はありません。運用フェーズ 3 で提供されるセキュリティーアドバイザリーについての詳細は、Red Hat Enterprise Linux のライフサイクル ページを参照してください。

SSL/TLS クライアント

クライアントは SSL/TLS サーバーで制御される暗号スイートを制御しないため、DHE ハンドシェイクでの小さな素数を受け入れないようにすることが唯一の防御策になります。大きな素数を要求することで、上記のダウングレード攻撃を回避することができます。

OpenSSL アップストリームは、クライアントが受け入れることのできる DH パラメーターの最小サイズを 768 ビットに拡大することにより、残りの 2 つの問題に対応しています。これにより、MITM 攻撃者が接続をダウングレードした場合でも、容易に解読可能と見なされる 768 ビットを下回る値が使用される場合は、クライアントはそれを拒否します。

現在、Red Hat Enterprise Linux に同梱される NSS パッケージのすべてのバージョンは 512 ビットの DHE パラメーターを受け入れます。以下は、アップストリームバグと、この問題の修正と 1023 ビットに上限を引き上げるという主旨の関連するコミット要求についての参照情報です。

上記の変更点については、Red Hat セキュリティーチームが現在調査中であり、Red Hat Enterprise Linux の関連する NSS パッケージへのバックポートが行われる可能性があります。

Openswan/Libreswan

TLS に対する Logjam ダウングレード攻撃は Openswan および Libreswan の IKE には適用されません。Logjam 攻撃は TLS をターゲットとするのに対し、openswan および libreswan パッケージによって提供される pluto デーモンは IPsec VPN トンネルを設定するために使用される IKEv1 および IKEv2 プロトコルを提供します。さらに、Openswan および Libreswan は共に MODP1024 よりも大きな値のデフォルト DH グループを持ち、MODP768 以下はサポートしません。

JBoss 製品

Logjam 脆弱性の影響を受ける JBoss 製品における軽減策については、Logjam: TLS vulnerabilities (CVE-2015-4000) for JBoss products を参照してください。