2016-04-06 15 views
1

Ich versuche, den SSL-Master-Schlüssel und die geheimen Schlüssel aus dem Chrome-Browser in eine Datei zu exportieren/zu schreiben. Ich würde mich freuen, wenn mir jemand dazu Ratschläge geben könnte.Schreiben von SSL-Client- und Serverschlüssel-Schlüsseln

Um den Premaster-Secret zu schreiben, können wir einfach die Variable SSLKEYLOGFILE in die Umgebung exportieren. Die Premaster-Secrets können von wireshark verwendet werden, um eine HTTPS-Sitzung zu entschlüsseln.

Premaster Geheimnis verwendet, um das Master-Geheimnis zu berechnen, die weiter verwendet wird, 6 Tasten zu schaffen - CLIENT_WRITE_MAC CLIENT_IV CLIENT_WRITE und 3 mehr für den Server.

Ich möchte diese Schlüssel in eine Datei anstelle des Premaster-Geheimnisses ausgeben.

Ich dachte, wenn ich wireshark Code verwenden könnte, um es einfach auszugeben, aber das ist komplexer Ich glaube, der Code für Wireshark Umgang mit SSL-Paketen und die Verwendung des Premaster-Geheimnisses ist hier drin. github.com/boundary/wireshark/blob/master/epan/dissectors/packet-ssl-utils.c

Eine weitere Möglichkeit ist, den Chrom-Browser zu ändern und zu kompilieren. Ich denke, hier müssen Änderungen vorgenommen werden. https://code.google.com/p/chromium/codesearch#chromium/src/net/third_party/nss/ssl/derive.c&q=client_write_mac_secret&sq=package:chromium&type=cs&l=214

Ich ging durch mehr Quellcode und ich fand diese Datei zu verwandt sein.

https://code.google.com/p/chromium/codesearch#chromium/src/net/third_party/nss/ssl/sslsock.c&q=SSLKEYLOG&sq=package:chromium&dr=C&l=3569

Mit Blick auf den Code oben merke ich, dass es mehr Umgebungsvariablen sind die gesetzt werden können. Weiß jemand, ob die SSLDEBUG-Umgebung auf die gleiche Weise wie die SSLKEYLOG-Variable festgelegt werden kann? Jeder andere Weg oder Technik, um dies zu tun, würde auch helfen

Ich konnte nicht erfolgreich exportieren die Schlüssel so weit.

+0

Wahrscheinlich möchten Sie das Master-Geheimnis (nach dem Mischen von Nonces und Ableitung), und nicht die Premaster-Geheimnis (fehlt Client und Server zufällige Nonces). Siehe auch [Psst. Ihr Browser kennt alle Ihre Geheimnisse] (https://isc.sans.edu/forums/diary/Psst+Ihr+Browser+Knows+All+Ihr+Secrets/16415/). – jww

Antwort

0

Ich fand es heraus. Um dies zu tun, müssen Sie die neueste Version von Wireshark Quellcode herunterladen. Ich habe meinen Test auf Wireshark 2.0.1

ausgeführt Sie müssen Änderungen an der Datei - /epan/dissectors/packet-ssl-utils.c im Wireshark-Quellordner vornehmen.

Drucken Sie die Variablen aus Zeile 3179 - 3194 in eine Datei. Sie können die Client-Schreibschlüssel, Server Schreibschlüssel, Client-MAC-Schlüssel, Server MAC-Schlüssel, Cient IV und Server IV finden)

diese

Datei * fptr in eine Datei in C Gebrauch zu schreiben; fptr = fopen ("Verzeichnis, in dem Sie eine Datei öffnen möchten", "a +");

fprintf ("Daten"); // dies schreibt Daten in die Datei

Hinweis - es eine objektivere Weise ändern zu tun und die folgenden Funktionen

Leere custom_ssl_print_data (const gchar * name, const guchar * data, size_t len) erstellen {

// schreiben Sie die folgenden Zeilen

Datei * ssl_debug_file;

ssl_debug_file = fopen ("Verzeichnis, in dem die Datei geöffnet werden soll", "a +");

// Kopieren ursprüngliche Funktionalität von Zeile 4927

}

Leere custom_ssl_print_string (const gchar * name, const String * data) {

// Kopieren ursprüngliche Funktionalität von Zeile 4953 }

Verwenden Sie nun diese Funktionen, um Ihre Schlüssel in eine Datei zu exportieren.

Gehen Sie zum Haupt-Wireshark-Quellordner. Run ./autogen.sh

configure

sudo

sudo make

und laufen wireshark im Terminal installieren. (Sie müssen noch wireshark die geheime Datei von premaster durch Export der Umgebungsvariable SSLKEYLOGFILE)

Verwandte Themen