
Ich verwalte einige Websites und eine davon erhielt eine schlechte Sicherheitsbewertung (von der SEC Scorecard). Ich habe einen verwalteten Server, also habe ich die IT-Leute um Hilfe gebeten, würde dieses Problem aber auch gerne etwas besser verstehen.
Das Problem ist, dass es alte TLS1.0- und TLS1.1-Chiffre-Suiten gibt, wie:
TLS_RSA_WITH_IDEA_CBC_SHA (0x0007)
TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_3DES_EDE_CBC_SHA
Mein erster Gedanke war, dass diese in den OpenSSL-Konfigurationsdateien zu finden sein müssen. Aber nach einigen Tutorials vermute ich, dass es sich auf die Apache-Konfiguration bezieht. Die httpd.conf
(und virtuellen Hosts) haben keine explizit festgelegten Cipher Suites. Aber das Eingebundene httpd-ssl.conf
hat etwas.
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipherOrder on
SSLCipherSuite ECDH+AESGCM:ECDH+CHACHA20:ECDH+AES256:!LOW:!MEDIUM:!3DES:!aNULL:!eNULL:!ADH:!DSS!EXP:!MD5:!PSK:!RC4:!SRP
Was ich derzeit nicht verstehe: Ist das hier der richtige Ort? Vielleicht nicht oder warum liest sich das anders.
Ich habe auf ciphersuite.info gelesen, dass die ersten oben IANA-Namen (?) sind und es OpenSSL-Namen gibt. Aber was ist ECDH+AESGCM
zum Beispiel?
Ich könnte eine Anleitung brauchen, wo ich als nächstes suchen soll. Ich möchte keine Informationen kopieren und einfügen, aber ich verstehe etwas mehr von diesem Thema. Ich bin jedoch weder der Sicherheits- noch der Haupt-IT-Typ, also lese ich lieber kein 300-seitiges Buch :-/
Antwort1
Dies SSLCipherSuite
ist die richtige Anweisung zum Festlegen der zu verwendenden kryptografischen Algorithmen. In TLS 1.2 müssen Sie eine Kombination aus vier Algorithmen festlegen (eine sogenannte Cipher Suite):
- Ein Schlüsselaustauschalgorithmus, der dazu dient, ein gemeinsames Geheimnis zwischen Client und Server einzurichten. Aus dem Geheimnis können beide Parteien dann einen Schlüssel für die symmetrische Verschlüsselung ableiten.
- Ein Signaturalgorithmus für den Schlüsselaustausch.
- Ein symmetrischer Schlüsselalgorithmus zum tatsächlichen Verschlüsseln und Entschlüsseln der zu übertragenden Daten.
- Ein Hash-Algorithmus, der verwendet wird, um die Integrität von Nachrichten sicherzustellen (durch einen Nachrichtenauthentifizierungscode) oder einen kryptografisch sicheren Pseudozufallszahlengenerator zu erstellen.
Jede Verschlüsselungssammlung verfügt über eine eindeutige Kennungregistriert durch die IANAund beginnt mit TLS_
. Beispielsweise gibt es , TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
was für Folgendes steht:
- Der Schlüsselaustauschalgorithmus ist DHE, also Diffie-Hellman-Schlüsselaustausch mit temporären Schlüsseln.
- Der Signaturalgorithmus ist RSA.
- Der symmetrische Kryptografiealgorithmus ist AES mit 128-Bit-Schlüsseln im GCM-Modus.
- Der Hash-Algorithmus ist SHA-256.
OpenSSL als Anbieter einer konkreten TLS-Implementierung ermöglicht Ihnen die Auswahl von IANA-Chiffre-Suiten über einebenutzerdefiniertes Format namens „Chiffreliste“. Dieses Format unterstützt komplexe Auswahlregeln wie , ECDH+AESGCM
die für alle Cipher Suites steht, die sowohl die Algorithmen ECDH
(für Schlüsselaustausch) als auch AESGCM
(für symmetrische Verschlüsselung) enthalten. Sie können die genauen Cipher Suites, die Sie erhalten, mit dem Befehl überprüfen openssl ciphers "ECDH+AESGCM"
. In meinem Fall enthält die Liste beispielsweise die Cipher Suite TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
(oder wie OpenSSL sie nennt, ECDHE-ECDSA-AES128-GCM-SHA256
).
Die Saite ECDH+AESGCM
selbst istnichteine Cipher Suite. Es handelt sich um eine OpenSSL-spezifische Auswahlregel für Cipher Suites.
In der Praxis würde ich eine konkrete Liste sicherer Cipher Suites verwenden, z. B. dieEmpfehlungen von Mozilla. Bei den OpenSSL-Auswahlregeln besteht das Risiko, dass Sie Cipher Suites einschließen, die Sie eigentlich nicht beabsichtigt haben (obwohl Sie das Ergebnis jederzeit mit dem openssl ciphers
oben genannten Befehl überprüfen können).