Skip to content

How To: decrypt SSL / HTTPS with Wireshark

by Sascha Frantzke on Juni 20th, 2016

Heute möchte ich kurz auf ein wichtiges Tool beim Troubleshooting für HTTPS Anwendungen eingehen. Ich habe in letzter Zeit zu oft Kunden getroffen, die nicht die gesamte Kommunikationskette verschlüsseln, um im Fehlerfall weiter per Wireshark mitlesen zu können. Mit der richtigen Anleitung ist es aber gar nicht so kompliziert auch SSL / HTTPS gesicherten Verkehr zu entschlüsseln.

Aber kurz vorweg noch einige wichtige Anmerkungen:

  • Natürlich brauchen wir die jeweiligen privaten Schlüssel um die Verbindung zu entschlüsseln.
  • Darüber hinaus sollte das Vorgehen vorab mit den Kollegen der IT-Security abgestimmt werden.
  • Wenn die SSL / HTTPS Verbindung mit forward secrecy ciphers verschlüsselt wurde, bleibt Sie auch verschlüsselt.
  • Citrix NetScaler Systeme können ab der Firmware 11.0 Inhalte aus SSL-Verbindungen tracen und unverschlüsselte wegschreiben.
    • Das gilt natürlich nur für Traffic, den wir innerhalb der NetScaler Appliance unverschlüsselt bearbeiten (nicht SSL_BRIDGE).
    • CLI Command: start nstrace -mode SSLPLAIN

Kommen wir nun also zu den nötigen Schritten um SSL / HTTPS Verbindungen zu entschlüsseln.

Zuerst müssen wir uns um den privaten Schlüssel kümmern. Diesen benötigen wir ohne schützende Passphrase. Am besten öffnen wir den Schlüssel einmal im Texteditor und schauen uns den Schlüssel einmal an.

Im aktuellen Beispiel habe ich einen verschlüsselten privaten Schlüssel gewählt. Erkennen kann man es direkt an der zweiten Zeile… Und ja, ich habe den Inhalt des Schlüssels durch wahllose manuelle Zeichen ersetzt. 😉

Beispiel_encrypted__key

Diesen verschlüsselten Schlüssel müssen wir nun erst einmal entschlüsseln. Der entsprechende OpenSSL Befehl lautet:

  • openssl rsa -in privatekey.withpassphrase.openssl -out

Das Ergebnis sehen wir hier:

privatekey.withoutpassphrase

Im weiteren Verlauf müssen wir jetzt nur noch Wireshark überzeugen, den entschlüsselten privaten Schlüssel für die Entschlüsselung des Datenverkehrs zu nutzen.

Auf meinem Mac OS finde ich die nötigen Einstellungen unter dem Programmmenü Wireshark / Preferences

Prefereces

Wir müssen nun nur das Protokoll „SSL“ auswählen und die RSA Keys Liste pflegen.

protocols_choice

RSA_keys_list

Certificate_store

Der private Schlüssel wird nun eingesetzt, um die beschriebene Verbindung zur Darstellung zu entschlüsseln.

Comments are closed.