dnnWerk.at - Michaels Blog

Sicherheit für DNN-Installationen Teil 6 - Der Qualys-Test

Sicherheit - 10.03.2018

Sicherheit DNN IIS HTTPS

SSL und TLS

SSL (Secure Sockets Layer) ist ein Verschlüsselungsprotokoll in der Transportschicht (OSI Schicht 4) eines Netzwerkprotokolls. Dabei ist SSL der "alte" Bezeichnung, nach Version 3 wurde es in TLS (Transport Layer Security) umbenannt und wieder ab Version 1 neu numeriert. Diese Verschlüsselung wird heutzutage meist mit HTTPS eingesetzt.

SSL 2.0 ist seit 2011 veraltet, ja sogar durch RFC 6176 untersagt, SSL 3.0 seit Juni 2015 als veraltet gekennzeichnet (RFC 7568), da es nicht mehr "ausreichend sicher" ist. Auch TLS 1.0 und TLS 1.1 werden von vielen bereits abgeschaltet, was allerdings die Gefahr birgt, dass einige nicht allzu alte Browser nicht mehr auf die Website zugreifen können (wenn diese die aktuelle Version TLS 1.2 noch nicht unterstützen). TLS 1.3 ist momentan noch im Entwurfsstadium.

Grundsätzlich passiert dabei folgendes: Der Client und der Server tauschen beim Handshake eine Liste von unterstützten Verschlüsselungsalgorithmen ("Ciphers") aus und einigen sich dann auf den besten, der von beiden Seiten unterstützt wird. Wenn ein Server aber schwache Ciphers oder kompromitierte Protokolle unterstützt, dann könnten unsichere Verbindungen ausgehandelt werden und der Datenverkehr somit entschlüsselt werden.

Auch hier gilt, was in den vorangegangenen Teilen bereits immer wieder betont wurde: Wer heute einen sicheren Server hat kann und darf sich nicht darauf verlassen, dass das morgen auch noch so ist. Security ist und bleibt ein laufender Prozess.

Wie kann ich feststellen, ob meine SSL-Implementierung gut ist?

Auch dafür gibt es einen Online-Test, den sogenannten Qualys-Test. Zu finden ist dieser unter www.ssllabs.com/ssltest. Lassen wir diesen Test einmal für eine typische DNN-Installation auf einem Windows 2012 R2-Server, auf der wir bereits ein Lets Encrypt-Zertifikat installiert haben, durchlaufen, dann ergibt sich folgendes Bild:

Qualy Test - Rate C

Note C ist nicht ganz so toll (auch wenn das nicht ganz so schlimm wie Note F ist). Trotzdem können wir einiges unternehmen, um diese Wertung zu verbessern. Das ist gar nicht einmal so kompliziert, wie wir sehen werden. Aber schauen wir uns zunächst einmal an, wo die Probleme liegen.

Qualy Test - Probleme

Wir sehen hier zwei Problemzonen:

  • SSL 3 ist aktiviert, und
  • es werden unsichere Cipher-Suites unterstützt.

IIS Crypto

Gottseidank gibt es ein kostenloses Tool, das uns hier weiterhilft: IIS Crypto von Nartac Software. Es ist lediglich eine EXE-Datei, die keine Installation benötigt, und die hier heruntergeladen werden kann. Dieses Programm starten wir auf dem Server, und finden einen Button, der mit "Best Practices" beschriftet ist. Klicken wir einmal darauf.

IIS Crypto - Best Practices

Damit werden also (die zum Zeitpunkt der Erstellung des Templates bekannten) optimalen Voreinstellungen getroffen. Man muss jetzt tatsächlich nur mehr auf den Button "Apply" klicken, und danach den Server neu starten. Und schon erhält man im Qualys-Test eine bessere Note:

Qualy Test - Rate A

Schwache Cipher Suites entfernen

Wenn wir uns die Ergebnisse ansehen, finden wir weitere "schwache" Cipher-Suiten. Diese können wir auch noch entfernen, was aber nicht zwangsläufig zu einer Verbesserung des Ergebnisses führt - und oft sogar das Gegenteil bewirkt.

Qualys Test - schwache Algorithmen

Um diese zu entfernen starten wir auf unserem Server noch einmal IIS Crypto, und deaktivieren die entsprechenden Algorithmen:

IIS Crypto - schwache Algorithmen entfernen

"Apply" klicken, Server neu starten - und zu unserer Überraschung erscheint folgendes Ergebnis:

Qualy Test - Rate B

Das scheint nun etwas paradox zu sein, der Grund dafür ist, dass damit alle AEAD-Cipher-Suiten entfernt wurden, die immer noch als die sichersten gelten. Das Problem scheinen zu kleine Diffie-Hellman-Parameter zu sein, ich will hier nicht näher darauf eingehen.

Also, zurück zu den "Best Practices", damit sind wir wieder auf "A". Und das Gute daran: Dies gilt für den gesamten Windows-Server, muss also nicht für jede Website extra durchgeführt werden.

DNS CAA

Eine orange Zeile fällt uns noch auf: DNS CAA. Dabei handelt es sich um die sogenannte "Certification Authority Authorization" (RFC 6844). Einfach gesagt handelt es sich dabei um einen DNS-Eintrag (CAA-Record), der bekannt gibt, welche Zertifizierungsstelle das Zertifikat für diese Website ausstellen darf (bzw. ausgestellt hat). Das stellt einen weiteren Schutz vor gefälschten Zertifikaten dar, und ist durchaus sinnvoll.

Qualys Test - DNS CAA

Betreibst du deinen DNS selbst? Dann füge den entsprechenden Record ein, wenn das möglich ist (nur neueste DNS-Server unterstützen diesen Typ). Ansonsten wende dich vertrauensvoll an deinen Hoster. Und wenn der sagt, dass sein DNS das nicht unterstützt, dann frag' ihn zwei Monate später wieder. Irgendwann kann er auch nicht mehr aus.

Fazit

Nach all den bisher getroffenen Maßnahmen sollte die Website ein gewisses vertretbares Maß an Sicherheit haben. Natürlich gibt es immer auch "mehr", und das war jetzt noch lange nicht alles.