Bei Fehlersuche kann es sehr hilfreich sein, verschlüsselte SSL Verbindungen einzusehen, um die darin liegenden Nachrichten inspizieren zu können. Es gibt einen relativ einfachen Weg, dies mit Wireshark zu realisieren.
Der Datenverkehr kann auf dem Server oder dem verbindenden Client mitgeschnitten werden. Am praktischsten ist es, den Datenverlehr auf dem Client mitzuschneiden, da hier direkt eine Verbindung mit dem (Pre)Master Key und Wireshark hergestellt und somit "Live" mitgeschnitten werden kann.
Es ist nicht zwangsweise erforderlich, Wireshark auf diesen Systemen zu installieren, da es die Möglichkeit gibt, den Datenverkehr mit Windows-Bordmitteln auszuwerten und anschließend in ein Wireshark-kompatibles Format für die Analyse auf einem Techniker-Computer umzuwandeln. Siehe Artikel "Netzwerkprobleme mit Wireshark analysieren, ohne Software auf produktiven Systemen installieren zu müssen".
Vorgehensweise
(Pre)Master Secret speichern
Mozilla Firefox, Google Chrome und der darauf basierende Microsoft Edge (Codename Anaheim) sind in der Lage, eine Umgebungsvariable auszulesen, welche den Browser anweist, die (Pre)Master Secrets abzuspeichern.
Hierfür muss zunächst der Eigenschaften-Dialog des Computers geöffnet werden. In der Karteikarte "Advanced" wird auf "Environment Variables" geklickt.

Im folgenden Dialog wird für den aktuellen Benutzer mit Klick auf "New" eine neue Umgebungsvariable angelegt.

Es wird nun die Variable "SSLKEYLOGFILE" erzeugt und der Pfad festgelegt, in welchen die Schlüssel gespeichert werden sollen.

Wireshark konfigurieren
Im Einstellungs-Dialog von Wireshark wird zu "Protocols" – "TLS" navigiert und der zuvor definierte Pfad hinterlegt.

Anschließend kann das Problem reproduziert werden. Man sollte nun sehen, dass die Nachrichten entschlüsselt werden und somit der in der SSL/TLS Verbindung übertragene HTTP-Datenverkehr sichtbar sein.

Nicht mehr verwenden: Entschlüsseln mittels privatem Schlüssel des Webservers
Früher war es meist auch möglich, SSL-Datenverkehr unter Angabe des privaten Schlüssels des Web Servers zu entschlüsseln.
Mit der weiten Verbreitung durch Perfect Forward Encryption (PFE) ist dieses aber nicht mehr möglich, da PFE die Entschlüsselung mit dem Server-Schlüssel unmöglich macht. Dies ist eine sinnvolle Funktion in Hinsicht auf den Datenschutz, erfordert zwecks Fehlersuche nun jedoch eine neue Herangehensweise.
Versucht man es dennoch, wird man im "TLS debug file" von Wireshark eine entsprechende Fehlermeldung vorfinden:
ssl_decrypt_pre_master_secret: session uses Diffie-Hellman key exchange (cipher suite 0xC030 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) and cannot be decrypted using a RSA private key file. ssl_generate_pre_master_secret: can't decrypt pre-master secret
Weiterführende Links:
Externe Quellen
- Decrypting SSL/TLS sessions with Wireshark – Reloaded (Microsoft)
- Transport Layer Security (TLS) (Wireshark)
- How to Decrypt SSL with Wireshark – HTTPS Decryption Guide (Comparitech)
- Browser-SSL entschlüsselt (Heise)
- NSS Key Log Format (Mozilla)
Ein Gedanke zu „TLS-Datenverkehr mit Wireshark inspizieren (HTTPS entschlüsseln)“
Kommentare sind geschlossen.