Wireshark: SSL-/TLS-Traffic entschlüsseln

Wireshark 2.0 Icon

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:

Umgebungsvariable SSLKEYLOGFILE

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.

Firefox Diffie Hellman

Den Erfolg dieser Maßnahme können wir über die Webseite der Universität Hannover überprüfen: https://cc.dcsec.uni-hannover.de/check

Check Cipher-Suites

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.

Wireshark Einstellungen SSL

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.

Wireshark SSL decrypted

Quellen

  • 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://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Key_Log_Format
  • https://wiki.wireshark.org/SSL

Tobi

Hallo, mein Name ist Tobias und ich habe diesen Blog im April 2009 ins Leben gerufen. Seitdem blogge ich hier über Software, Internet, Windows und andere Themen, die mich interessieren. SSDblog ist mein zweiter Blog, indem es rund um das Thema SSDs geht. Ich würde mich freuen, wenn ihr meinen Feed abonniert oder mir auf Twitter, Facebook, Google+ und Google+ (privat) folgt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.