
Immer mehr Internettraffic wird verschlüsselt übertragen. Insbesondere die Zertifizierungsstelle Let’s Encrypt hat im Laufe des letzten Jahres dazu geführt, dass auch kleinere Webseiten dank des kostenlosen Zertifikates auf die verschlüsselte Kommunikation gewechselt sind. Mittlerweile wurden sogar über 100 Millionen Zertifikate von Let’s Encrypt ausgestellt. Auch ich habe meinen Blog im November 2016 auf HTTPS umgestellt.
Der eigentlich positive Effekt hin zu mehr verschlüsseltem Traffic führt aber auch dazu, dass die Analyse und das Troubleshooting deutlich erschwert werden. Wireshark und ähnliche Programme können die verschlüsselte Kommunikation standardmäßig nicht einsehen. Abhilfe würde eine SSL-Decryption bringen, welche auf dem Prinzip eines Man-in-the-Middle-Angriffs basiert. Diesen Weg gehen beispielsweise Next-Generation Firewalls von Palo Alto, Check Point Software, Cisco, Sophos und Co. Zuhause kann diese Variante unter anderem mit Tools wie “mitmproxy” oder “Burp Suite” realisiert werden. Dies dürfte aber nicht jedermanns Sache sein. Zum Glück gibt es eine einfachere Alternative: Session Key Logging.
Selbstverständlich existieren aber auch hier Einschränkungen. Das clientseitige Logging der Session Keys funktioniert nur mit bestimmter Software, beispielsweise mit den beiden Browsern Firefox und Chrome. Dabei werden nur RSA-Keys unterstützt, Diffie-Hellman und Elliptic Curve Diffie-Hellman (ECDH) nicht.
Browser
Für Firefox muss zunächst eine neue Umgebungsvariable mit dem Namen “SSLKEYLOGFILE” angelegt werden. Dies wird in der Systemsteuerung unter “System” gemacht. Anschließend links auf “Erweiterte Systemeinstellungen” klicken und im neu geöffneten Fenster auf “Umgebungsvariablen…”. Dort kann die neue Variable “SSLKEYLOGFILE” mit dem gewünschten Pfad angelegt werden. Im Pfad sollten keine Leerzeichen auftauchen. Ich habe mich für “C:\Temp\sslkey.log” entschieden:
Damit die neue Umgebungsvariable wirksam wird, muss der Windows-User ab- und wieder angemeldet werden, alternativ hilft auch ein Neustart.
Zusätzlich sollten wir noch die Unterstützung der Diffie-Hellman-Cipher-Suiten deaktivieren, sodass der Schlüsselaustausch möglichst immer via RSA vollzogen wird. Dies funktioniert via “about:config”. Dort nach “dhe” suchen und alle gefundenen Einstellungen auf den Wert “false” ändern.
Den Erfolg dieser Maßnahme können wir über die Webseite der Universität Hannover überprüfen: https://cc.dcsec.uni-hannover.de/check
Googles Chrome ignoriert diese Umgebungsvariable seit geraumer Zeit. Stattdessen muss der Browser mit folgenden Startparametern geladen werden:
--ssl-key-log-file="C:\Temp\sslkeyChrome.log"
Auch in Google Chrome lässt sich Diffie-Hellman deaktivieren, allerdings etwas umständlicher als in Firefox. Die zu deaktivierenden Cipher-Suiten müssen ebenfalls mit einem Startparameter übergeben werden:
--cipher-suite-blacklist=0xcca9,0xcca8,0xc02b,0xc02f,0xc02c,0xc030,0xc013,0xc014
Eine Liste aller Hexcodes findet ihr im Quelltext von Chromium.
Wireshark
Wireshark unterstützt das Feature erst ab Version 1.8.0. Zunächst müssen das Programm gestartet und die Einstellungen geöffnet werden. Anschließend links im Menü die Kategorie “Protocols” mit Klick auf den Pfeil aufklappen und zum Punkt “SSL” navigieren. Dort muss der Pfad zur vorher erzeugten Datei hinterlegt werden.
Das war auch schon! Wenn ihr nun ein Paket mit TLS-Daten markiert, erscheint unten ein neuer Tab “Decrypted SSL data”. Wenn ihr diesen auswählt könnt ihr die entschlüsselten Daten einsehen.
Quellen
- https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Key_Log_Format
- https://wireshark.no/index.php/2016/08/25/decrypting-ssl-traffic-with-wireshark/
- https://jimshaver.net/2015/02/11/decrypting-tls-browser-traffic-with-wireshark-the-easy-way/
- http://joji.me/en-us/blog/walkthrough-decrypt-ssl-tls-traffic-https-and-http2-in-wireshark
- https://www.m00nie.com/2015/05/decrypt-https-ssltls-with-wireshark/
- https://wiki.wireshark.org/SSL
Sie sehen gerade einen Platzhalterinhalt von X. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr Informationen
Neueste Kommentare