OpenSSLがキー交換にDHを使用するように構成されている場合。 TLS_DHE_RSA_WITH_AES_128_CBC_SHA、modp(またはmodp自体)のサイズはどこから取得しますか?
以下はwiresharkのスクリーンショットです。サーバーは、クライアントの提案からTLS_DHE_RSA_WITH_AES_128_CBC_SHAを選択し、そのDHパラメーターを送信します。
アイデアがありますが、OpenSSLが(小さすぎる)96 * 8 = 768ビットグループを使用することにしたのはなぜですか?
SSL/TLS では、DHE暗号スイートに使用されるグループ(モジュラスとジェネレーター)は完全にサーバー次第です。 OpenSSL(ライブラリ)は、特定のグループを使用するように構成できます。コマンドラインツール(openssl s_server
)では、これは-dhparam
オプションを使用することです。それ以外の場合は、証明書自体を含むファイルにDHパラメーターを含めることができます。
このページ これを含むいくつかの情報が含まれています:
完全転送秘密暗号スイートを使用するには、(サーバー側で)Diffie-Hellmanパラメーターを設定する必要があります。そうしないと、PFS暗号スイートは黙って無視されます。
したがって、ライブラリは「デフォルトのDHパラメータ」を使用しません。ライブラリを使用するソフトウェアは何でもかまいません。コマンドラインツールの場合、512ビットのモジュラスを使用しているようです。これは、控えめに言っても、少し短いです...しかし、テストには問題ありません。あなたの場合、OpenSSLを使用するサーバーアプリケーションが何であれ、ライブラリが768ビットのモジュラスで構成されていると想定する必要があります。サーバーの証明書を含むファイルと同じファイルに明示的なDHパラメーターを詰め込むだけで、OpenSSLにこれらのパラメーターの使用を強制することができます(ただし、そのアプリケーションによって異なります)。
注:
ECDHE
暗号スイート)では、問題は異なります。ほとんどの実装は、「任意の曲線ではなく、少数の特定の曲線のみをサポートするためです。与えられたサイズ」。 拡張 があります。これにより、クライアントはサポートする曲線を知ることができます。それ以外の場合、サーバーは構成に応じて選択します(いずれの場合も、P-256以外は相互運用性の問題を意味します)。