MinProtocol と CipherString を設定した後、openssl で Ciphersuites を設定する必要がありますか?

MinProtocol と CipherString を設定した後、openssl で Ciphersuites を設定する必要がありますか?

現在の OpenSSL バージョン

OpenSSL 1.1.1d  10 Sep 2019 (Library: OpenSSL 1.1.1g  21 Apr 2020)

現在のopenssl.cnf構成

ファイルの先頭

openssl_conf = default_conf

ファイルの下部

[default_conf]
ssl_conf = ssl_sect

[ssl_sect]
system_default = system_default_sect

[system_default_sect]
MinProtocol = TLSv1.2
CipherString = DEFAULT@SECLEVEL=1

ディレクティブは設定されていませんCiphersuites

サポートされている暗号リストが設定と異なります

ただし、 で有効な暗号を要求するとopenssl ciphers -s -v、次のような暗号が返されます。

DHE-RSA-AES256-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA1
ECDHE-ECDSA-AES128-SHA  TLSv1 Kx=ECDH     Au=ECDSA Enc=AES(128)  Mac=SHA1
ECDHE-RSA-AES128-SHA    TLSv1 Kx=ECDH     Au=RSA  Enc=AES(128)  Mac=SHA1
DHE-RSA-AES128-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(128)  Mac=SHA1

設定を定義する必要がありますかCiphersuites、それとも openssl ciphers -s -v何らかの点で信頼できないのでしょうか?

ドキュメンテーション

-sサポートされている暗号のみをリストします。セキュリティ レベル、最小および最大のプロトコル バージョンと一致する暗号のみをリストします。

SecLevel 1 では SSLv3 と TLSv1 が許可されますが、MinProtocol では許可されません。

出典:

答え1

ほとんどの暗号スイートは複数のプロトコルと互換性があります。

完全に独立した TLS 1.3 と、数十年にわたって壊れていて OpenSSL 1.1.0 (2016) 以降では実装されていない SSL 2 を除き、ほとんどの SSL/TLS 暗号スイートは、複数のプロトコル バージョンで使用できます。発生順に並べると、奇妙な政府向け暗号スイート (Fortezza) を除く SSL 3 で定義されたすべての暗号スイートは、TLS 1.0 でも引き続き使用されており、それらに加えて 1.0 で/用に定義された新しい暗号スイート (主に EC) のうち、意図的に弱められた「エクスポート」スイート (2006 年にはすでに非推奨となっていた) は、新しいスイートを定義していない 1.1 でも引き続き使用されています。1.2 は、2008 年よりずっと前から壊れていると考えられていたシングル DES を除いた 1.1 のスイートのほとんどを保持し、さらに多くの新しいスイート (AEAD や SHA2 を使用) を追加しています。

に記載されているように、SSL_CIPHER_description のマニュアルページこれは暗号のリンクです:

<プロトコル バージョン>
暗号スイートがサポートする最小プロトコル バージョン (TLSv1.2 など)。一部の暗号スイートは以前のプロトコル バージョンと下位互換性があるため、これは暗号スイートが最初に定義されたプロトコル バージョンと必ずしも同じではないことに注意してください。

「最小」に注意してください。DHE-RSA-AES256-SHAは SSL3、TLS1.0、TLS1.1、TLS1.2 で使用できるため、最小バージョンは SSL3 です。

1.2の古いスイートを使用するのはない好ましいまたはベストプラクティス特に、AEAD を使用する新しいスイート (最初は GCM と CCM、次に ChaCha/Poly) は、少なくとも encrypt-then-mac (RFC7366) がない場合にはセキュリティ プロパティが向上します。encrypt-then-mac は 2014 年まで公開されず、AEAD がすでに存在していたため広く実装されていませんでしたが、OpenSSL によって許可およびサポートされており、ciphersコマンドの出力にこれが反映されています。

1.2を要求する場合は、互換性をほとんど損なうことなく、暗号スイートをAEADに制限することもできます(ただし、いくつかの1.2 をサポートするが、新しい AEAD スイートではなく古いスイートのみをサポートする Java 7 などの実装。

関連情報