2016-04-06 4 views
1

Я пытаюсь экспортировать/записать секретный ключ SSL и ключи к файлу из браузера Chrome. Я был бы признателен, если бы кто-нибудь посоветовал мне, как это сделать.Написание ключей ключей клиента SSL и сервера

Чтобы написать секретный ключ, мы можем просто экспортировать переменную SSLKEYLOGFILE в среду. Презентационные секреты могут использоваться wirehark для расшифровки сеанса HTTPS.

premaster секрет, используется для вычисления мастер секрет, который далее используется для создания 6 ключей - CLIENT_WRITE_MAC CLIENT_IV CLIENT_WRITE и больше 3 для сервера.

Я хочу вывести эти ключи в файл вместо секретности premaster.

Я понял, могу ли я использовать код wirehark, чтобы просто выводить его, но это сложнее Я считаю, что код для wirehark обрабатывает SSL-пакеты и использует секрет премьера здесь. github.com/boundary/wireshark/blob/master/epan/dissectors/packet-ssl-utils.c

Другой способ продолжения - внести изменения в браузер хрома и скомпилировать его. Я думаю, что здесь нужно сделать изменения. 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

Я прошел через исходный код, и этот файл был связан.

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

Глядя на код выше, я заметил, что есть несколько переменных окружения, которые могут быть установлены. Кто-нибудь знает, можно ли установить среду SSLDEBUG так же, как и переменную SSLKEYLOG. Любой другой способ или техника для этого также помогут

Я до сих пор не смог успешно экспортировать ключи.

+0

Вы, вероятно, хотите, чтобы секрет мастера (после смешивания несов и деривации), а не секрет Premaster (отсутствует клиентский и серверный случайные числа). Также см. [Псст. Ваш браузер знает все ваши секреты] (https://isc.sans.edu/forums/diary/Psst+Your+Browser+Knows+All+Your+Secrets/16415/). – jww

ответ

0

Я понял. Для этого вам необходимо загрузить последнюю версию исходного кода wirehark. Я проверил свой тест на Wireshark 2.0.1

Вам необходимо внести изменения в файл - /epan/dissectors/packet-ssl-utils.c в исходной папке wireshark.

Распечатайте переменные в файл из строки 3179 - 3194. Вы можете найти ключ клиента записи, ключ записи сервера, ключ клиента MAC, ключ сервера MAC, Cient IV и IV Server)

Для записи в файл в использовании C это

файла * fptr; fptr = fopen ("каталог, который вы хотите открыть в файле", "a +");

fprintf ("data"); // это будет записывать данные в файл

Примечание - Для того, чтобы сделать это более объективный способ, изменения и создать следующие функции

аннулируются custom_ssl_print_data (Const gchar * имя, Const guchar * данные, size_t длина) {

// Записываем следующие строки

файла * ssl_debug_file;

ssl_debug_file = fopen ("каталог, в котором вы хотите открыть файл в", "a +");

// Копирование исходной функции из строки 4927

}

недействительным custom_ssl_print_string (Const gchar * имя, Const StringInfo * данные) {

// Копирование исходной функции из строки 4953 }

Теперь эти функции используются для экспорта ваших ключей в файл.

Перейдите в основную папку источника проводов. Run ./autogen.sh

./configure

Sudo сделать

Sudo сделать установку

и запустить Wireshark в терминале. (Вам все равно нужно прокормить wirehark в секретном файле premaster, экспортируя переменную среды SSLKEYLOGFILE)

Смежные вопросы