web-dev-qa-db-ja.com

Apache2.4.7構成ファイルの複数のDH / ECDHパラメーター

Ubuntu 14.04( "Trusty")サーバーでApache2.4.7を実行しています。 Ubuntu固有のパッケージ識別子は「2.4.7-1ubuntu4.1」です。

DH/ECCHパラメーターを明示的に指定しない場合(以下を参照)、Apacheは離散対数DHに対して RFC 3526 の標準DHパラメーターを使用します。パラメータの長さは、RSA公開キーの長さと一致します(たとえば、2048ビットのRSAキーは2048ビットのDHパラメータを取得し、4096ビットのRSAキーは4096ビットのDHパラメータを取得します)。

RSAまたはECDSA公開鍵のサイズに関係なく、ECDHにはNIST P-256キューブのみが使用されているようです。

Apacheドキュメント は、サイトのSSL証明書に加えて、サイトの構成ファイルのSSLCertificateFileディレクティブによって参照されるファイルでDHまたはECDHパラメーターを手動で指定できることを示します。

ドキュメントの関連エントリの正確なテキストは次のとおりです。

追加のオプション要素は、それぞれopenssl dhparamおよびopenssl ecparam(バージョン2.4.7以降でサポート)によって生成されたエフェメラルキーのDHパラメーターおよび/またはEC曲線名であり、最後にエンドエンティティです。証明書の秘密鍵。

ただし、Apacheは、この方法で宣言された最初のDHパラメーターと最初のECDHパラメーターのみを読み取るようです。そのファイルで宣言された追加のパラメーターセットは無視されます。

クライアントがDH/ECDHに使用するパラメータを選択できるように、複数のパラメータセットを宣言することは可能ですか?

具体的には、ECDHに対して複数の許容可能な楕円曲線を宣言したいと思います。

たとえば、互換性の理由からsecp256r1を利用できるようにしたいだけでなく、そのような曲線をサポートするクライアントにsecp384r1secp521r1も提供したいと思います。

さらに、レガシークライアントでは1024ビットのDHパラメータを使用できればいいのですが、より長いプライムをサポートする新しいクライアントでは2048ビット以上のパラメータを使用できます。

DHおよびECDHパラメーターの複数のセットを宣言することは可能ですか?単に何かが足りないのですか、それともそれぞれDHおよびECDHパラメーターの1つのセットのみを明示的に宣言することは可能ですか?

5
heypete

非EC DHに対してそれを行う方法はありません。

ECDHの場合:

SSLOpenSSLConfCmd ECDHParameters prime256v1
SSLOpenSSLConfCmd Curves brainpoolP512r1:secp521r1:brainpoolP384r1:secp384r1:brainpoolP256r1:prime256v1
3
lily wilson
  1. DHパラメータ-これは、DHE_RSA_<insert cipher here>を使用する場合にのみ適用されます。これらの暗号を使用する予定がない場合、要点は意味がない
  2. EC Params-Apache 2.4.8以降にアップグレードするには必須および OpenSSL 1.0.2以降が必要です。どちらもUbuntu14.04.xにはありません。あなたがする必要があります:

    apt-add-repository ppa:ondrej/Apache2 #corrected
    apt-get update
    apt-get upgrade openssl
    apt-get upgrade Apache2
    

最新のApache2およびOpenSSLライブラリを使用している場合は、<VirtualHost *:443>コンテナ内に次の行を追加してEC暗号を更新できます。

SSLOpenSSLConfCmd Curves secp384r1

複数の曲線が必要な場合:

SSLOpenSSLConfCmd Curves secp384r1:secp521r1

次に、サービスをバンプします。

service Apache2 restart
3
hackajar

Apache2.4.7およびOpenSSL0.9.8a以降を使用している場合は、証明書ファイルの最後にdhparamファイルを追加することで、DHパラメーターを変更できます。

ECパラメータについてはわかりません...

1
Benoit