Как добраться до используемого ключа шифрования текущего SSL-соединения в Firefox?
Я хотел бы один вопрос. Есть ли какой-либо аддон для Firefox или инструмент, как получить ключ сеанса, сгенерированный из master secret во время SSL-рукопожатия, которым кодируется симметрично вся связь клиент/сервер? Мне это нужно из-за декодирования связи (POST/GET/etc..) через Wireshark или библиотеку PCAP. Как я вижу, Firebug показывает расшифрованную связь, поэтому я надеюсь, что существуют некоторые правильные способы достижения этого ключа сеанса:)
спасибо всем за помощь.
2 ответов
У меня для вас хорошие новости. Вы действительно можете получить данные мастер-ключа, которые вам нужны, как из Firefox, так и из Chrome. И вы можете использовать выходной файл в Wireshark для расшифровки трафика SSL/TLS без необходимости использования закрытого ключа с сервера SSL/TLS. Проверьте "Метод 2" здесь:http://www.root9.net/2012/11/ssl-decryption-with-wireshark-private.html
в качестве подсказки, если вы не хотите перезагружать машину, просто откройте командную строку и беги:
установить SSLKEYLOGFILE=c:\sslKeyLogFile.txt
"C:\Program файлы (x86)\Mozilla Firefox\firefox.EXE-файл"
поскольку Firefox запускается из того же сеанса, в который вы добавили переменную среды, он запустится с этим набором переменных. В противном случае потребуется перезагрузка Windows после ее установки в диалоговых окнах параметров системы.
Я также хочу отметить, что ответ от Крис не обязательно неправильно, это довольно новая функция. Он не попал в релиз до Wireshark 1.6.
Если вы хотите использовать Wireshark, то pre master secret не будет Вам полезен (вы называете его "ключом шифрования" в своем вопросе).
Wireshark может только расшифровать трафик, если вы укажете закрытый ключ RSA сервера, который не изменяется при каждом подключении в отличие от pre master secret. Однако вы не можете получить это через свой браузер или что-либо еще по очевидным причинам.
Если вы хотите расшифровать трафик SSL, я предлагаю использовать промежуточный прокси вместо этого, как скрипач. Он не пассивно захватывает трафик, а прокси-трафик, что позволяет ему фактически расшифровывать отправленные и полученные данные.