web-dev-qa-db-ja.com

OpenSSL DHmodpサイズ

OpenSSLがキー交換にDHを使用するように構成されている場合。 TLS_DHE_RSA_WITH_AES_128_CBC_SHA、modp(またはmodp自体)のサイズはどこから取得しますか?

以下はwiresharkのスクリーンショットです。サーバーは、クライアントの提案からTLS_DHE_RSA_WITH_AES_128_CBC_SHAを選択し、そのDHパラメーターを送信します。

DH Exchange

アイデアがありますが、OpenSSLが(小さすぎる)96 * 8 = 768ビットグループを使用することにしたのはなぜですか?

1
fr00tyl00p

SSL/TLS では、DHE暗号スイートに使用されるグループ(モジュラスとジェネレーター)は完全にサーバー次第です。 OpenSSL(ライブラリ)は、特定のグループを使用するように構成できます。コマンドラインツール(openssl s_server)では、これは-dhparamオプションを使用することです。それ以外の場合は、証明書自体を含むファイルにDHパラメーターを含めることができます。

このページ これを含むいくつかの情報が含まれています:

完全転送秘密暗号スイートを使用するには、(サーバー側で)Diffie-Hellmanパラメーターを設定する必要があります。そうしないと、PFS暗号スイートは黙って無視されます。

したがって、ライブラリは「デフォルトのDHパラメータ」を使用しません。ライブラリを使用するソフトウェアは何でもかまいません。コマンドラインツールの場合、512ビットのモジュラスを使用しているようです。これは、控えめに言っても、少し短いです...しかし、テストには問題ありません。あなたの場合、OpenSSLを使用するサーバーアプリケーションが何であれ、ライブラリが768ビットのモジュラスで構成されていると想定する必要があります。サーバーの証明書を含むファイルと同じファイルに明示的なDHパラメーターを詰め込むだけで、OpenSSLにこれらのパラメーターの使用を強制することができます(ただし、そのアプリケーションによって異なります)。

注:

  • OpenSSLがサーバーとして「エクスポート」暗号スイートを選択すると、DHに512ビットのモジュラスが強制的に使用されますが、これはエッジの場合です。
  • 相互運用性の問題があるため、必要なサイズを完全に自由に使用できるわけではありません。一部のSSLクライアントは、1024ビットより長いDHモジュラスを好まないようです。また、32または64の倍数ではないDHモジュラスサイズは、追加の問題を引き起こす可能性があると推測します。
  • Elliptic CurveDH(最近のECDHE暗号スイート)では、問題は異なります。ほとんどの実装は、「任意の曲線ではなく、少数の特定の曲線のみをサポートするためです。与えられたサイズ」。 拡張 があります。これにより、クライアントはサポートする曲線を知ることができます。それ以外の場合、サーバーは構成に応じて選択します(いずれの場合も、P-256以外は相互運用性の問題を意味します)。
3
Tom Leek