Warum ein „A“ Rating von Qualys SSL Labs nicht reicht

Häufige Fehlerquellen in der SSL-Konfiguration

In diesem Artikel gehe ich auf 6 Fehlerquellen und ihre Behebung bei der Webseiten Verschlüsselung (SSL) genauer ein.

https für Webseiten ist wichtig, auch dann, wenn man keinen Shop hat.

Inzwischen gibt es vertrauenswürdige SSL-Zertifikate auch kostenlos von Let’s Encrypt, es ist also der letzte Grund gegen SSL-Zertifikate weg gefallen. Genug Ressourcen haben Webserver in aller Regel und falls nicht, läuft ohnehin etwas schief und sollte dringend überarbeitet werden.

Quasi der Standard-Test, um diese Zertifikate und die SSL-Konfiguration zu überprüfen, ist die Test-Webseite von Qualys SSL Labs.

Ein „A“ Rating von Qualys SSL Labs ist schon mal ein guter Anfangs-Wert, aber das geht auch noch besser: A+

In diesem Artikel möchte ich auf häufige Fehlerquellen in der SSL-Konfiguration eingehen, so dass ein „A+“ doch noch möglich wird.

Kein TLS 1.2

TLS 1.2 wurde 2008 veröffentlicht. Wer das nicht kann und somit noch mit einem noch älteren System unterwegs ist, sollte auch keine wichtigen Webseiten besuchen oder gar Online-Banking mit diesem Gerät machen oder im Fall eines Server, einen Server ohne TLS 1.2 betreiben.

Eigentlich sind wir technologisch schon so weit, dass es sinnvoll ist, nur noch TLS 1.2 anzubieten und TLS 1.0 und TLS 1.1 direkt zu deaktivieren. Denn schauen wir uns mal an, welche Browser alles TLS 1.2 können:

Welche Browser können TLS 1.2?

Welche Browser können TLS 1.2?

Wenn man sich die Details der einzelnen Browser ansieht, ist zu erkennen, dass seit Anfang 2016 die Browser TLS 1.2 können.

Warum also sollte man Browser erlauben, die jetzt Ende 2017 – also seit nahezu 2 Jahren – keine Updates bekommen haben?

Keine Updates heißt: keine Sicherheits-Updates und so ist die Chance leider groß, dass das System inzwischen von Viren, Trojanern & Co übernommen wurde. Bei Bestellungen oder Online-Banking auf solch einem System werden die Probleme nicht lange auf sich warten lassen.

HSTS – HTTP Strict Transport Security

Kein HSTS – wenn im Test-Ergebnis diese Zeile erscheint:
Strict Transport Security (HSTS) No

HSTS sorgt dafür, dass Clients immer https verwenden, nachdem sie einmal auf der Website waren. So wird verhindert, dass unsichere Kommunikationswege versehentlich verwendet werden, siehe wikipedia
Mit HSTS werdet ihr vielleicht auch schon das „A+“ Rating bekommen.

Mit dieser Zeile in der .htaccess Datei oder einmalig in der Server-Konfiguration für alle Webseiten, die SSL verwenden, wird HSTS aktiviert:

Header add Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"

OCSP stapling

Wenn diese Zeile im Ergebnis fehlt, bekommt die Webseite auch kein „A+“:
OCSP stapling Yes

Wenn „OCSP stapling“ nicht aktiviert ist, muss der Client selber die Zertifizierungsstelle anfragen, ob das Zertifikat ok ist. Das kann den Datenschutz aushebeln, denn so „sieht“ die Zertifizierungsstelle, wer welche Webseiten besucht. Darum haben die meisten Browser das deaktiviert.

Wenn der Server „OCSP stapling“ nicht aktiviert hat und der Client keine Info bekommt, ob ein Zertifikat vielleicht zurückgezogen oder für ungültig erklärt wurde, könnten im schlimmsten Fall Zertifikate unbemerkt ausgetauscht werden (sogenannte „Man in the middle“ Angriffe).
Phishing wird damit auch erleichtert, insbesondere, wenn HSTS nicht aktiv ist (siehe oben). Insbesondere für jeden Shop oder Login sehr wichtig.

Wenn „OCSP stapling“ aktiviert ist, schickt der Server an den Client eine signierte Antwort der Zertifizierungsstelle, so dass der Client ohne Datenschutzbedenken beurteilen kann, ob das Zertifikat noch gültig und nicht zurück gezogen (für ungültig erklärt) wurde, siehe auch: Wikipedia

Cihpersuites mit 3DES / RC4

Eine weitere Fehlerquelle sind veraltete Cipersuites mit 3DES oder RC4. Das sieht im Test-Ergebnis z.B. so aus:

So nicht: Ciphersuites 3DES

So nicht: Ciphersuites 3DES

Lösung: Einfach aus der Server-Konfiguration löschen, braucht keiner mehr – es gibt eindeutig bessere Alternativen (die wahrscheinlich ohnehin bereits zusätzlich in der Server-Konfiguration enthalten sind).

SHA1 ist unsicher

Wird im Test-Ergebnis „SHA1withRSA INSECURE“ wie auf dem nachfolgendem Bild angezeigt, gibt es dafür eine einfache Lösung.

SHA1 ist auch veraltet

SHA1 ist auch veraltet

Lösung: ein neues Zertifikat und Zertifikatsantrag (CSR) erstellen und dabei nicht mehr sha1 als Signatur verwenden. Idealerweise kommt SHA256 zum Einsatz und zusätzlich direkt eine vernünftige Schlüsselgröße.

Diese Befehle sind für die Linux-Kommandozeile (Bash) gedacht und erstellen 2 Dateien im aktuellen Verzeichnis: einmal den privaten Schlüssel und dann den Zertifikatsantrag (CSR). Zusätzlich wird das Jahr der Erstellung in den Dateinamen festgehalten:

export SSLDATE=`date +%Y`
openssl genrsa -out $SSLDATE.key 4096 -sha256
openssl req -new -sha256 -key $SSLDATE.key -out $SSLDATE.csr

Ich habe diese Warnung in einem Test-Ergebnis erst diese Woche gesehen. Das Zertifikat war auf die oben genannte Art korrekt erstellt worden, wo lag dann der Fehler?

Leider beim Aussteller des Zertifikates, der ein unsicheres Root-Zertifikat noch aktiv hatte. Das gibt es also auch noch Ende 2017. Da hilft dann nur, den Support des Ausstellers so lange zu bearbeiten, bis man entweder eine korrekte Neuausstellung oder ein Storno bekommt.

Glück im Unglück: Endkunden werden davon nicht viel mitbekommen, wenn sie das Zertifikat nicht genau untersuchen.

Forward Secrecy

Wenn diese Zeile erscheint: „Forward Secrecy No WEAK“, dann lohnt sich ein Blick auf die verwendeten Chipersuites.

auch veraltet

auch veraltet

Bei diesem Fehler geht es darum, dass nicht alle verwendeten Chipersuites modern genug sind, um dieses Sicherheits-Feature zu unterstützen.

Abhilfe: Chipersuites auf dem Level „Modern“ oder “ Intermediate“ einsetzen und mit dem nächsten Test-Ergebnis das Finetuning durchführen.

Fazit

Ein „A+“ Rating ist möglich und nicht allzu schwer zu erreichen. Trotzdem man muss wissen, an welchem „Schrauben“ man drehen muss und an welchen besser nicht.

Wer sich das auf einem Linux-Server nicht zutraut oder einfach keine Zeit dafür hat: ich helfe gerne bei der Optimierung der SSL-Konfiguration Ihrer Webseite. Schreiben Sie mir  gerne eine Nachricht oder rufen Sie mich an.