Sollte ich Ciphersuites auf OpenSSL konfigurieren, nachdem ich MinProtocol und CipherString festgelegt habe?

Sollte ich Ciphersuites auf OpenSSL konfigurieren, nachdem ich MinProtocol und CipherString festgelegt habe?

Aktuelle OpenSSL-Version

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

Aktuelle openssl.cnfKonfiguration

Am Anfang der Datei

openssl_conf = default_conf

Am Ende der Datei

[default_conf]
ssl_conf = ssl_sect

[ssl_sect]
system_default = system_default_sect

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

Es ist keine CiphersuitesRichtlinie festgelegt.

Die unterstützte Verschlüsselungsliste unterscheidet sich von der Konfiguration

Wenn ich jedoch mit nach den aktivierten Chiffren frage openssl ciphers -s -v, erhalte ich Chiffren wie:

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

Muss ich eine Einstellung definieren Ciphersuitesoder ist das openssl ciphers -s -virgendwie unzuverlässig?

Dokumentation

-SListen Sie nur unterstützte Chiffren auf: diejenigen, die mit der Sicherheitsstufe sowie der minimalen und maximalen Protokollversion übereinstimmen.

Während SecLevel 1 SSLv3 und TLSv1 zulässt, tut MinProtocol dies nicht.

Quellen:

Antwort1

Die meisten Cipher Suites sind mit mehr als einem Protokoll kompatibel.

Mit Ausnahme von TLS 1.3, das völlig separat ist, und SSL 2, das seit Jahrzehnten nicht mehr funktioniert und ab OpenSSL 1.1.0 (2016) nicht mehr implementiert ist, können die meisten SSL/TLS-Chiffre-Suites in mehr als einer Protokollversion verwendet werden. In chronologischer Reihenfolge werden alle in SSL 3 definierten Cipher-Suites außer den seltsamen staatlichen (Fortezza) immer noch in TLS 1.0 verwendet, und diese sowie die neuen, die in/für 1.0 definiert wurden (hauptsächlich EC), aber abzüglich der absichtlich abgeschwächten „Export“-Suites (die 2006 bereits veraltet waren), werden immer noch in 1.1 verwendet, das keine neuen Suiten definiert. 1.2 behält die meisten Suiten von 1.1 bei, abzüglich Single-DES, das schon lange vor 2008 als nicht funktioniert galt, sowie viele neue (mit AEAD und/oder SHA2).

Wie in derManpage für SSL_CIPHER_descriptionwas mit dem für Chiffren verknüpft ist:

<Protokollversion>
Die minimale Protokollversion, die die Cipher Suite unterstützt, z. B. TLSv1.2. Beachten Sie, dass dies nicht immer mit der Protokollversion übereinstimmt, in der die Cipher Suite zuerst definiert wurde, da einige Cipher Suites abwärtskompatibel mit früheren Protokollversionen sind.

Beachten Sie, dass „Minimum“ DHE-RSA-AES256-SHAin SSL3 TLS1.0 TLS1.1 und TLS1.2 verwendbar ist, die Mindestversion ist also SSL3.

Die Verwendung der älteren Suiten in 1.2 istnichtbevorzugtoder bewährte Vorgehensweise, insbesondere weil die neuen Suiten, die AEAD verwenden (zuerst GCM und CCM, dann ChaCha/Poly), zumindest in Abwesenheit von „encrypt-then-mac“ (RFC7366) bessere Sicherheitseigenschaften haben, das erst 2014 veröffentlicht und nicht weithin implementiert wurde, weil AEAD bereits vorhanden war, aber es ist zulässig und wird von OpenSSL unterstützt und die Ausgabe des ciphersBefehls spiegelt dies wider.

Wenn Sie also 1.2 benötigen, können Sie die Cipher Suites auch auf AEAD beschränken, ohne dass die Kompatibilität darunter leidet (obwohl esmancheImplementierungen, z. B. Java 7, die 1.2 unterstützen, aber nur mit älteren Suiten, nicht mit neuen AEAD-Suiten).

verwandte Informationen