Praxis-Lab: HTTPS analysieren

Nachdem wir die Theorie hinter der TLS-Konfiguration für Webseiten und HSTS kennengelernt haben, schauen wir uns jetzt an, wie du das in der Praxis überprüfst. Dafür gibt es mehrere Tools, die eingesetzt werden können. Vom einfachen Schnellcheck bis zur umfassenden Analyse.

openssl ist ein weit verbreitetes Open-Source-Toolkit für TLS/SSL-Verbindungen und Kryptografie. Es ist auf den meisten Linux-Systemen vorinstalliert. sslscan ist ein spezialisiertes Tool, das die TLS-Konfiguration eines Servers systematisch prüft und übersichtlich darstellt. Beide Tools sind in der Kali-VM in deiner Laborumgebung vorinstalliert. Anderenfalls kannst du sslscan mit sudo apt install sslscan nachinstallieren.

Um eine Verbindung zu einem mit TLS abgesicherten Dienst aufzubauen (es muss nicht zwingend eine Webanwendung sein), kannst du das folgende Kommando nutzen. Hier wird eine Verbindung zum Port 443 des Servers unter www.bsi.bund.de aufgebaut. Du kannst optional auch den -brief Parameter verwenden, um eine kürzere und übersichtlichere Antwort zu erhalten.

openssl s_client -connect www.bsi.bund.de:443 -brief

Die Ausgabe zeigt die wichtigsten Informationen zur TLS-gesicherten HTTPS-Verbindung zur angegebenen Website. Ohne -brief ist die Ausgabe sehr ausführlich und enthält diverse Informationen zur Zertifikatskette (Certificate chain) sowie die Detail-Informationen zu den übermittelten Zertifikaten. Erfolgt keine qualifizierte Eingabe bzw. Antwort des Clients, wird die Verbindung nach kurzer Zeit wieder geschlossen.

Dass der Server tatsächlich nur TLSv2 und 3 annimmt, kannst du folgendermaßen überprüfen. Setze den Parameter -tls1_1 und -tls1_2. Damit erzwingst du im OpenSSL-Client die angegebene Version:

openssl s_client -connect www.bsi.bund.de:443 -tls1_1 -brief

Die Ausgabe zeigt jeweils, ob die Verbindung zustande kam oder nicht. Maximiere die Abbildung für bessere Lesbarkeit:

Wie die siehst, wird TLSv1.1 abgewiesen, während TLSv1.2 akzeptiert wird.

Mit sslscan kannst du die TLS-Konfiguration des Dienstes gezielt prüfen. Das Tool zeigt im Output mögliche Schwachstellen, wenn die Seite unsicher konfiguriert ist.

sslscan www.bsi.bund.de:443

Die nachfolgende Abbildung zeigt einen Ausschnitt der Ausgabe:

Alternativ kannst du auch die Qualys SSL Server Test Website nutzen: https://www.ssllabs.com/ssltest/analyze.html. Die Analyse ist hier recht umfassend und berücksichtigt das Verhalten bei verschiedenen Clients. Die nachfolgende Abbildung zeigt einen Ausschnitt der Ausgabe während der Analyse. Maximiere für bessere Lesbarkeit:

Beachte: Diese Werte können sich im Laufe der Zeit ändern. Bitte kontaktiere uns, wenn du der Meinung bist, dass die vorgegebenen Antworten nicht mehr korrekt sind.

Noch umfassender ist das Tool testssl.sh. Es kann mit dem folgenden Befehl installiert werden:

sudo apt install testssl.sh

Beim Aufruf wird die Endung .sh weggelassen:

testssl www.bsi.bund.de:443

testssl liefert einen deutlich ausführlicheren Bericht als sslscan, da es einige fortgeschrittene Test-Methoden nutzt. Schauen wir uns die wichtigsten Abschnitte des Outputs an:

  • Testing protocols: Zeigt an, welche TLS-/SSL-Versionen der Server akzeptiert. Du siehst sofort, ob veraltete Versionen wie TLS 1.0 oder SSLv3 noch aktiv sind. Alles, was mit „(OK)“ markiert ist, entspricht der empfohlenen Konfiguration.
  • Testing cipher categories: Prüft, ob unsichere Cipher-Kategorien angeboten werden: NULL (keine Verschlüsselung), EXPORT (absichtlich geschwächt), LOW (schwache Algorithmen wie RC4), Triple DES. Idealerweise steht dort überall „not offered (OK)“. Moderne Verbindungen sollten starke AEAD-Verschlüsselung wie AES-GCM oder ChaCha20-Poly1305 verwenden. Ob zusätzlich Forward Secrecy unterstützt wird, sollte anhand der entsprechenden Forward-Secrecy-Prüfung und der tatsächlich ausgehandelten TLS-Verbindungen bewertet werden.
  • Testing server’s cipher preferences: Listet die konkreten Cipher Suites auf, die der Server anbietet, geordnet nach TLS-Version. Hier kannst du genau sehen, welche Algorithmen für Schlüsseltausch, Verschlüsselung und Integritätsprüfung verwendet werden. Eine gute Konfiguration zeigt ausschließlich ECDHE-basierte Suites mit AES-GCM oder ChaCha20.
  • Testing robust forward secrecy: Prüft gezielt, ob Forward Secrecy über alle angebotenen Cipher Suites hinweg gewährleistet ist. Hier siehst du auch, welche elliptischen Kurven (z. B. X25519, P-256) der Server unterstützt.
  • Testing server defaults (Server Hello): zeigt, welche TLS-Parameter der Server bei einer Verbindung tatsächlich mit dem Client aushandelt, beispielsweise die verwendete TLS-Version und Cipher Suite, Forward Secrecy, die Schlüssellänge sowie verschiedene Eigenschaften des Serverzertifikats.
  • Certificate: Zeigt Details zum Zertifikat wie Common Name, Gültigkeit, Schlüssellänge, Zertifikatskette und ob Certificate Transparency aktiviert ist. Achte auf die Schlüssellänge (RSA 2048 Bit ist Minimum, 4096 Bit ist besser) und darauf, dass die Zertifikatskette vollständig und vertrauenswürdig ist („Chain of trust: Ok“).
  • Testing HTTP header response: Hier wird es für Webanwendungen besonders interessant: testssl prüft die Security-Header der Webanwendung. Darunter auch HSTS, Content-Security-Policy, X-Frame-Options, X-Content-Type-Options, Referrer-Policy und Cookie-Flags. Was diese Header genau bewirken und gegen welche Angriffe sie schützen, erfährst du noch im Abschnitt „Schutz vor gängigen Webangriffen“.
  • Testing vulnerabilities: Testet den Server auf bekannte TLS-Schwachstellen wie Heartbleed, POODLE, DROWN, ROBOT, BEAST und weitere. „not vulnerable (OK)“ ist das Ergebnis, das du sehen möchtest.
  • Overall Grade: Am Ende vergibt testssl eine Gesamtnote nach dem SSL Labs Rating Guide. „A+“ ist die Bestnote und bedeutet, dass der Server vorbildlich konfiguriert ist.

Fun Fact: Die Website des BSI (Bundesamt für Sicherheit in der Informationstechnik) erreicht eine Bewertung von A+. Es wäre aber auch etwas verwunderlich, wenn ausgerechnet die oberste deutsche IT-Sicherheitsbehörde eine schlechte TLS-Konfiguration hätte.

💡 Praxistipp: Auf https://ciphersuite.info lassen sich genauere Infos zu allen möglichen Ciphersuites suchen. Aber noch wichtiger: die Seite zeigt an, welche davon veraltet und unsicher sind.

Aufgabe: Führe testssl gegen www.bsi.bund.de aus und beantworte die folgenden Fragen:

Nach oben scrollen