web-dev-qa-db-ja.com

Apache(httpd)の「logjam」脆弱性を修正する方法

最近、非公式に「logjam」と呼ばれるDiffie-Hellmanの新しい脆弱性が公開されました。その脆弱性に対抗する方法を示唆する このページ がまとめられています。

TLS用のDiffie-Hellmanを正しく展開するための3つの推奨事項があります。

  1. エクスポート暗号スイートの無効化最近のブラウザーはエクスポートスイートをサポートしていませんが、FREAKおよびLogjam攻撃により、中間者攻撃者がブラウザーをだましてエクスポートグレードの暗号化を使用させることができます。 TLS接続を復号化できます。輸出暗号は、強力な暗号プロトコルが米国から輸出されることを妨げた1990年代のポリシーの残骸です。最新のクライアントはエクスポートスイートに依存しておらず、それらを無効にすることの欠点はほとんどありません。
  2. Deploy(Ephemeral)Elliptic-Curve Diffie-Hellman(ECDHE) Elliptic-Curve Diffie-Hellman(ECDH)鍵交換により、既知の実行可能なすべての暗号解読攻撃が回避され、最新のWebブラウザーはオリジナルよりもECDHEを優先します。有限体、Diffie-Hellman。標準のDiffie-Hellmanグループを攻撃するために使用した離散ログアルゴリズムは、事前計算から得られる利点ほど強くはなく、個々のサーバーが一意の楕円曲線を生成する必要はありません。
  3. 強力でユニークなDiffie Hellmanグループを生成する。数百のサーバーがいくつかの固定グループを使用しているため、事前計算や盗聴の可能性のある最適なターゲットになります。管理者は、各Webサイトまたはサーバーに「安全な」プライムを使用して、2048ビット以上の強力なDiffie-Hellmanグループを生成する必要があります。

上記の推奨事項に従ってサーバーを保護するために実行する必要があるベストプラクティスの手順は何ですか?

56

リンクした 記事 から、この脆弱性から身を守るための3つの推奨手順があります。原則として、これらの手順はSSL/TLSで使用できるすべてのソフトウェアに適用されますが、ここでは問題のソフトウェアであるため、Apache(httpd)に適用するための特定の手順について説明します。

  1. エクスポート暗号スイートを無効にする

以下の2で行う構成変更で対処します(!EXPORTSSLCipherSuite行の終わり近くは、エクスポート暗号スイートを無効にする方法です)

  1. 展開(エフェメラル)楕円曲線Diffie-Hellman(ECDHE)

これを行うには、Apache構成ファイルのいくつかの設定を編集する必要があります。つまり、「ベストプラクティス」の設定を行うには、SSLProtocolSSLCipherSuiteSSLHonorCipherOrderです。次のようなもので十分です:

SSLProtocol             all -SSLv2 -SSLv3

SSLCipherSuite          ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA

SSLHonorCipherOrder     on

注:どのSSLCipherSuite設定を使用するかについては、これは常に変更されます。 このリソース などのリソースを参照して最新のものを確認することをお勧めします推奨構成。

。強力でユニークなDiffie Hellmanグループを生成する

そうするために、あなたは走ることができます

openssl dhparam -out dhparams.pem 2048

これは、パラメーターが生成されている間、サーバーに大きな負荷をかけることに注意してください。別のマシンでパラメーターを生成し、scpまたは同様のものを使用して問題のサーバーに転送することで、この潜在的な問題を常に回避できます。使用する。

これらの新しく生成されたdhparamsをApacheで使用するには、 Apache Documentation から:

カスタムDHパラメータを生成するには、openssl dhparamコマンドを使用します。または、次を追加 RFC 2409、セクション6.2の標準の1024ビットDHパラメータそれぞれのSSLCertificateFileファイルに

(強調鉱山)

次に、標準の1024ビットDHパラメータが続きます。このことから、カスタム生成されたDHパラメータは、問題の関連するSSLCertificateFileに単に追加されるだけであると推測できます。

そのためには、次のようなものを実行します。

cat /path/to/custom/dhparam >> /path/to/sslcertfile

または、最初にリンクした記事の Apacheサブセクション に従って、証明書ファイル自体を変更しない場合は、作成したカスタムdhparamsファイルを指定することもできます。

SSLOpenSSLConfCmd DHParameters "/path/to/dhparams.pem"

特定のSSL/TLS実装に関連するApache構成(通常はconf.d/ssl.confまたはconf.d/vhosts.confですが、これはApacheの設定方法によって異なります。

このリンク に従って、それは注目に値します、

Apache 2.4.7以前では、DHパラメータは常に1024ビットに設定されており、ユーザーが構成することはできません。これはmod_ssl 2.4.7で修正され、Red Hatはhttpd-2.2.15-32.el6を使用してRHEL 6 Apache 2.2ディストリビューションにバックポートしました。

Debian Wheezyでは、Apache2を2.2.22-13 + deb7u4以降にアップグレードし、opensslを1.0.1e-2 + deb7u17にアップグレードします。上記のSSLCipherSuiteは完全には機能しません。代わりに このブログ に従って以下を使用します。

SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-DSS-AES128-SHA256:DHE-DSS-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!DHE-RSA-AES128-GCM-SHA256:!DHE-RSA-AES256-GCM-SHA384:!DHE-RSA-AES128-SHA256:!DHE-RSA-AES256-SHA:!DHE-RSA-AES128-SHA:!DHE-RSA-AES256-SHA256:!DHE-RSA-CAMELLIA128-SHA:!DHE-RSA-CAMELLIA256-SHA

ディストリビューションに応じて、Apacheのバージョンがこれらのバージョン番号よりも新しいかどうかを確認し、そうでない場合は、可能な限り更新してください。

上記の手順を実行して構成を更新し、Apacheサービスを再起動して変更を適用したら、 SSLLabs でテストを実行して、構成が適切であることを確認する必要がありますそして、 この特定の脆弱性に関連する記事 に。

82
BE77Y

Winni Neessenのパッチに基づいて、Apache/2.2.22の修正を公開しました(Debian Wheezy、おそらくUbuntuでも使用可能): https://flo.sh/debian-wheezy-Apache2-logjam- fix / -thx。あなたのフィードバックのために。

1
Flo