web-dev-qa-db-ja.com

TomcatサーバーでLogjamを防止するために推奨される一連のアクションは、弱いDHキーのすべてのリスクを本当に排除しますか?

誰かが この修正 を確認して、Apache Tomcatの Logjam 脆弱性から保護できますか?

Tomcatでユーザー定義の2048ビットDHパラメータファイルを実装する方法については触れられていないため、その有効性については懐疑的ですが、その暗号リストは「DHE」暗号を使用しています。昨日、「SSLDHParametersFile」設定についての言及がありましたが、おそらくこれが原因で削除されました bug 、Tomcatは1024ビットのDHキー長しか処理できないと記載されています。しかし、私はこれの専門家ではないので、おそらくここで物事を混ぜ合わせます。

現時点では、 WeakDHサイト は、この暗号リストをserver.xmlファイル(JSSE用)のConnectorに追加して修正する必要があることを示しています。

ciphers = "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」

9
Casper

だから私はあなたの質問を正しく解釈したと思います。そうでない場合は、コメントで発砲してください。

紛らわしいことに、diffie hellmanにはいくつかの要因があります。楕円曲線上で実行するかどうか、どのサイズグループを取得したか(「強い」と「強くない」と仮定しましょう)、一時的な秘密/公開鍵ペアを生成するかどうかです。

Logjamの問題は次のとおりです。DHEのプレーンな古いグループバリアントがある場合、エクスポート(弱い多様性)レベルの強度にダウングレードするようサーバーを説得できれば、生成されたシークレットを破る前にいくつかの事前計算が行われます。分単位のセッション。

これは、サイズ変数をより小さなものにダウングレードできることを条件としています-プレーンな古いDHEバリアントに対してこれを行うことができれば、ビジネスに参入できます。

これには、暗号スイートにDHE_..._EXPORT_...などのTLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHAが必要です。これで、40ビットDESなどのような他の問題がたくさんありますが、基本的に、より良い対称暗号を備えたDHEのEXPORTバリアントをサポートするサーバーが存在する可能性があります。実際に40ビットを交渉しているDES説得された場合。

ポイントは、ダウングレード攻撃を実行することです。指定した暗号スイートリストでは、エクスポート暗号を使用できません。

あなたはできますDHのすべての非ECバリアントをオフにします。ただし、これによりクライアント側のサポートが制限される可能性があります。あなたがそれほど制限できるかどうかは本当にあなた次第です。しかし、どこかに輸出がない限り、「DHE」自体は問題ありません。エクスポート暗号が無効になっていることを確認し、リンクした回答のThomasのアドバイスに従ってください。


次に、SSLDHParametersFileに進みます。DHEでは、グループの素数と生成元を実際に事前に修正できます。一時的なビットは、そのグループで選択された秘密鍵です。このように、パラメーターを設定することにより、サーバーが使用するサイズグループを制御できます。

たとえば、この出力は次のようになります。

openssl dhparam 2048 -text
<snip>
    PKCS#3 DH Parameters: (2048 bit)
    prime:
        00:bd:90:31:72:a5:bf:eb:96:b0:0e:1c:1e:3f:ff:
        cd:0a:e2:fc:14:72:50:19:f8:6d:e9:25:3c:3d:21:
        3b:3c:e3:93:9b:2e:a1:b5:98:dc:25:88:9c:9e:55:
        1a:78:36:a8:10:67:f2:f1:37:e7:6b:c7:b8:39:85:
        a7:ec:aa:e9:2f:4e:10:17:fd:72:e1:22:2e:ab:97:
        4b:bf:7b:a2:68:6d:94:a8:ae:df:e0:fb:66:ad:79:
        02:9c:09:ba:47:60:40:12:a8:27:46:ba:8f:a9:8b:
        bd:f5:d2:4e:67:0c:7a:49:f3:9d:80:98:50:4d:8c:
        72:38:47:91:4b:54:1f:3b:74:b5:81:30:c7:89:71:
        b0:87:8a:82:66:b0:06:f6:2e:a6:2b:e8:18:51:23:
        2d:09:d9:0a:87:03:7b:85:8a:27:c6:bd:fa:e9:16:
        70:b3:bf:ad:77:d5:55:72:22:e7:7c:6b:4e:31:2c:
        86:91:7a:51:11:ac:23:9d:5f:3d:f1:f2:83:02:98:
        72:a2:a4:c5:a8:26:40:25:02:59:00:80:22:37:ac:
        38:95:07:76:f5:31:3d:19:f6:81:36:6c:14:fa:d8:
        46:10:e1:b4:fa:5f:e2:9d:2f:a1:78:47:5d:9c:f9:
        ac:0c:06:83:dc:f4:2d:81:17:d4:34:1b:6f:c2:c7:
        2c:0b
    generator: 2 (0x2)

言うまでもなく、あなたのバグの例から、Tomcatではまだこれらのパラメーターファイルを使用できないようです。私はTomcatの専門家ではないので、実際には言えませんbut暗号スイートにエクスポートを許可しないように指示した場合、OpenSSLはデフォルトで1024ビットのDHグループに設定する必要があります。今のところ十分です。

その後、パッチが利用可能になったら、必要に応じてDHパラメータをアップグレードできます。

8
user70990

日除けへの追加として、私は私の実践をリストします:


現時点では、Tomcatとの直接通信は許可しませんが、nginxを使用してリバースプロキシ接続をセットアップします。

そして、nginxにすべてのSSLビットをさせます。主な利点は、nginxがより良いDHキーと暗号サポートでセットアップできることです。誰かがオーバーフローインジェクションを介してTomcatを「ハッキング」しようとした場合のボーナスとして。おそらくnginxプロキシのみに到達し、Tomcat自体には到達しません。 (したがって、攻撃者のために敗北する別のレイヤー)

2
LvB