Как установить переменную среды sslkeylogfile в chrome

Обновлено: 06.07.2024

Как транслировать / смотреть Big Brother Naija онлайн БЕСПЛАТНО | Блокировка 2020 Сезон 5 | BBN Прямая трансляция

Вы что-то делаете не так. Проверено на версии 58, перезагружать не нужно. Для активации:

В Firefox функции по умолчанию отключены и доступны только в отладочных сборках. В Chrome этого можно было избежать, переключив базовый механизм SSL с NSS (который реализовал эту функцию и также используется в Firefox) на BoringSSL (который, возможно, не имеет этой функции).

Обновление: согласно @Lekensteyn (см. Комментарий) эта функция снова доступна в текущих сборках Firefox и Chrome.

  • 2 Firefox отключил функцию ведения журнала ключей только в одном выпуске, они отменили ее, и текущая версия поддерживает эту функцию. Chrome также поддерживает эту функцию с BoringSSL.
  • @Lekensteyn: Спасибо за актуальную информацию. Я обновил ответ.

Попробуйте Firefox Developer edition, указанная выше функция включена по умолчанию. Тестировал только вчера.

Некоторые антивирусы (например, Avast) вставляют переменную среды SSLKEYLOGFILE в известные процессы, такие как firefox.exe и chrome.exe. Если вы переименуете исполняемый файл браузера и запустите его, переменная среды не будет переопределена.

Попробуйте закрыть текущий сеанс просмотра, он ведет себя так, как будто вы просто добавляете новый путь к PATH, работаете только из нового сеанса и так далее.

Вы ДОЛЖЕН убедитесь, что хром полностью закрыт. А затем снова откройте новый экземпляр Chrome.

В Chrome есть параметры по умолчанию пусть хром работает в фоновом режиме включен.

Дважды проверьте панель задач со списками окон или процессов, чтобы убедиться, что экземпляра Chrome не существует.

Поэтому --ssl-key-log-file не работает, хром остается живым после нажатия кнопки выхода.

Помимо того, что они уже указали, я хочу показать три момента, которые могут помочь. Это советы для Linux (CentOS)

Убедитесь, что файл, связанный с SSLKEYLOGFILE можно писать и читать, чтобы убедиться, что вы можете использовать:

Убедитесь, что ваш Firefox или Chrome открыт от имени того же пользователя с указанным файлом, например, под root.

Расшифровать SSL с помощью Wireshark

Если вы когда-либо пытались использовать Wireshark для мониторинга веб-трафика, вы, вероятно, столкнулись с проблемой - большая ее часть зашифрована. На самом деле, большинство сайтов используют SSL или TLS-шифрование для обеспечения безопасности своих пользователей. Повсеместное шифрование - это хорошо, если вы совершаете покупки на Amazon, но это настоящая боль, когда вы пытаетесь администрировать сеть. Вот как я расшифровываю SSL с помощью Wireshark.

Что такое Wireshark и SSL?

Wireshark является анализатор сетевого трафика; это основная утилита, которую многие администраторы используют для устранения проблем в своих сетях. В частности, он захватывает кадры - строительные блоки пакетов - и позволяет сортировать и анализировать их. Используя Wireshark, вы можете смотреть на трафик, проходящий через вашу сеть, и анализировать его, заглядывая во фреймы в необработанные данные..

SSL - это протокол шифрования, который работает на транспортном уровне модели OSI. Он использует различные методы шифрования для защиты данных при их перемещении по сетям. Примечание. В этом руководстве я в основном буду ссылаться на SSL как на общий термин для SSL и TLS, его преемника..

Шифрование SSL делает использование Wireshark более сложным, поскольку не позволяет администраторам просматривать данные, которые несет каждый пакет. Когда Wireshark настроен правильно, он может расшифровать SSL и восстановить вашу способность просматривать необработанные данные.

Использование предварительного мастер-ключа для расшифровки SSL и TLS

Рекомендуется использовать предварительный секретный ключ для расшифровки SSL в Wireshark. секретный ключ перед мастером генерируется клиентом и используется сервером для получения главного ключа, который шифрует трафик сеанса. Это текущий стандарт в криптографии и обычно реализуется через Диффи-Хеллмана.

Ваш браузер может быть настроен на регистрацию секретного ключа перед мастером, который Wireshark использует для расшифровки сеансов SSL и TLS.

Вот шаги для расшифровки SSL и TLS с секретным ключом перед мастером:

  • Установите переменную среды
  • Запустите ваш браузер
  • Настроить Wireshark
  • Захват и расшифровка сессии

Когда вы закончите, вы сможете дешифровать сеансы SSL и TLS в Wireshark без необходимости доступа к целевому серверу..

Установите переменную среды Windows

В Windows, вам нужно установить переменную окружения, используя Расширенные системные настройки утилита. Эта переменная, названная SSLKEYLOGFILE, содержит путь, где хранятся предварительные секретные ключи.

Руководство по расшифровке SSL: как расшифровать SSL с помощью Wireshark

Начните, щелкнув правой кнопкой мыши на Мой компьютер, и выбрав свойства из меню. система откроется меню.

Руководство по расшифровке SSL: как расшифровать SSL с помощью Wireshark

Далее нажмите Расширенные системные настройки в списке слева. Свойства системы окно откроется.

Руководство по расшифровке SSL: как расшифровать SSL с помощью Wireshark

На продвинутый нажмите вкладку Переменные среды кнопка.

Руководство по расшифровке SSL: как расшифровать SSL с помощью Wireshark

Нажмите на Новый . кнопка под Пользовательские переменные. Вы также можете создать переменную в Системные переменные если вы хотите регистрировать ключи SSL для каждого пользователя в системе, но я предпочитаю ограничивать его своим профилем.

Руководство по расшифровке SSL: как расшифровать SSL с помощью Wireshark

Под Имя переменной, введите следующее:

в Значение переменной введите путь к файлу журнала. Вы также можете нажать Просмотр файла . кнопку и укажите путь с помощью средства выбора файлов.

Как примечание, если вы создаете это как общесистемную переменную среды, вам нужно будет использовать соответствующие подстановочные знаки или хранить файл в месте, доступном для всех пользователей. Например, вы можете выбрать % USERPROFILE% \ App Data \ ssl-keys.log или C: \ SSL-keys.log.

Когда вы закончите, нажмите Ok и перейти к следующему набору шагов.

Установите переменную среды Linux или Mac

В Linux и макинтош, вам нужно установить SSLKEYLOGFILE переменная окружения с использованием нано. В Linux, переменная хранится в

/ .Bashrc. На макинтош, вы создадите переменную в файле

/ .MacOSX / окружающая среда.

Откройте терминал и используйте эту команду в Linux:

открыто Launchpad, щелчок Другой, и запустить терминал для запустить эту команду в Mac OSX:

Следующие шаги одинаковы для обеих операционных систем.

В конце файла добавьте эту строку:

Руководство по расшифровке SSL: как расшифровать SSL с помощью Wireshark

Нажмите Ctrl + X, Y чтобы сохранить ваши изменения.

Руководство по расшифровке SSL: как расшифровать SSL с помощью Wireshark

Закройте окно терминала и откройте другое, чтобы установить переменную, затем введите следующее, чтобы подтвердить, что она была успешно установлена:

Руководство по расшифровке SSL: как расшифровать SSL с помощью Wireshark

После того, как вы выполните команду, вы должны увидеть вывод, похожий на изображение выше. /Users/comparitech/.ssl-key.log полный путь к журналу предварительного мастер-ключа SSL. Примечание: вы хотите сделать заметку, которая будет отличаться, для ввода в Wireshark.

Теперь, когда переменная установлена, вы можете перейти к следующему набору шагов.

Запустите браузер и проверьте файл журнала

Прежде чем запускать Wireshark и настраивать его для расшифровки SSL с помощью предварительного мастер-ключа, необходимо запустить браузер и подтвердить, что файл журнала используется.

Руководство по расшифровке SSL: как расшифровать SSL с помощью Wireshark

Чтобы заполнить журнал, важно, чтобы вы посетили сайт с включенным SSL. Я использую свой собственный сервер Apache для тестирования, но любой сайт будет работать. Одним из самых больших преимуществ использования предварительного общего ключа является вам не нужен доступ к серверу расшифровать SSL.

Руководство по расшифровке SSL: как расшифровать SSL с помощью Wireshark

После того, как вы посетили веб-сайт с поддержкой SSL, проверьте файл на наличие данных. В Windows, ты можешь использовать Блокнот. В Linux или макинтош, используйте следующую команду:

В любой операционной системе ваш файл должен выглядеть так же, как мой выше. Убедившись, что ваш браузер регистрирует предварительные мастер-ключи в выбранном вами месте, вы можете настроить Wireshark на использование этих ключей для расшифровки SSL..

Настройте Wireshark для расшифровки SSL

Руководство по расшифровке SSL: как расшифровать SSL с помощью Wireshark

Когда ваш браузер регистрирует предварительные мастер-ключи, пришло время настроить Wireshark на использование этих журналов для расшифровки SSL..

Откройте Wireshark и нажмите редактировать, тогда предпочтения. предпочтения Откроется диалоговое окно, и слева вы увидите список элементов. расширять протоколы, прокрутите вниз, затем нажмите SSL.

Руководство по расшифровке SSL: как расшифровать SSL с помощью Wireshark

В списке параметров протокола SSL вы увидите запись для (Pre) -Master-Secret имя файла журнала. Перейдите к файлу журнала, который вы установили на предыдущем шаге, или просто вставьте путь.

Когда вы закончите настройку (Pre) -Master-Secret имя файла журнала, щелчок Ok и вернитесь в Wireshark. Вы готовы двигаться дальше.

Захват сеанса и расшифровка SSL

Последний шаг - захватить тестовую сессию и убедиться, что Wireshark успешно расшифровывает SSL.

  • Начните нефильтрованный сеанс захвата, сверните его и откройте браузер.
  • Посетите безопасный сайт, чтобы сгенерировать данные, и при необходимости установите фильтр отображения «ssl», чтобы минимизировать шум сеанса.
  • Нажмите на любой кадр, содержащий зашифрованные данные.

Руководство по расшифровке SSL: как расшифровать SSL с помощью Wireshark

После того, как вы выбрали зашифрованный кадр, посмотрите на Пакетное представление байтов, и, в частности, вкладки под видом. Вы должны увидеть запись для Расшифрованный SSL данные, среди прочего.

Руководство по расшифровке SSL: как расшифровать SSL с помощью Wireshark

Вы заметите, что мой сеанс по-прежнему выглядит полным мусора, а HTML не виден. Это потому, что мой веб-сервер (и большинство серверов Apache) по умолчанию использует сжатие GZIP.

Руководство по расшифровке SSL: как расшифровать SSL с помощью Wireshark

Когда вы нажимаете Несжатый объект На вкладке, которая отображается только в этом случае с включенной расшифровкой SSL, вы можете просмотреть исходный код сайта. Например, вот элемент title страницы Apache по умолчанию в виде открытого текста.

Использование ключа RSA для расшифровки SSL

Вы могли заметить ранее, что в Wireshark есть поле, которое позволяет вам загружать ваши ключи RSA и использовать их для расшифровки SSL. На практике, Расшифровка ключа RSA устарела.

Руководство по расшифровке SSL: как расшифровать SSL с помощью Wireshark

Причина, по которой расшифровка SSL с помощью ключа RSA больше не используется, заключается в том, что Perfect Forward Encryption (PFE) сделал его устаревшим. Сессии, согласованные с Диффи-Хеллманом, не используют ключ RSA напрямую; вместо этого они генерируют одноразовый ключ, хранящийся только в оперативной памяти, который шифруется с использованием ключа на диске.

Если вы ранее использовали ключ RSA для декодирования трафика и он перестал работать, вы можете подтвердить, что целевая машина использует обмены Диффи-Хеллмана, включив протоколирование SSL.

Руководство по расшифровке SSL: как расшифровать SSL с помощью Wireshark

Чтобы включить ведение журнала, нажмите редактировать из меню панели инструментов и выберите предпочтения. Разверните протоколы пункт меню слева и прокрутите вниз до SSL. Отсюда вы можете нажать Просматривать кнопку и установите местоположение вашего журнала SSL.

После определения местоположения все взаимодействия SSL будут регистрироваться в указанном файле..

Руководство по расшифровке SSL: как расшифровать SSL с помощью Wireshark

Захватите сеанс с вашим хостом с поддержкой SSL, затем проверьте журналы. В частности, вы должны прокручивать, пока не найдете кадр, о котором было согласовано согласование TLS. Вполне вероятно, что вы увидите контрольную запись DHE в строке шифра.

Это означает, что обмен ключами Диффи-Хеллмана включен. В моем случае Apache специально использует Диффи-Хеллмана с ключами эллиптической кривой, которые обозначаются строкой ECDHE.

Прокрутите немного дальше, и вы, вероятно, увидите, что главный секрет не может быть найден.

Руководство по расшифровке SSL: как расшифровать SSL с помощью Wireshark

Если ваши журналы выглядят так, и вы не можете расшифровать трафик с помощью ключа RSA, у вас нет другого выбора, кроме как переключиться на метод предварительного секретного метода выше.

Поскольку PFE становится стандартной практикой, а TLSv1.3, скорее всего, вызывает проблему, простое дешифрование ключа RSA устарело и не должно использоваться.

Wireshark упрощает расшифровку трафика SSL

Мне действительно нравится, как Wireshark обрабатывает расшифровку SSL. Криптография сложна, и стандарты постоянно меняются, чтобы быть более безопасными. Но как только Wireshark и ваша среда настроены правильно, все, что вам нужно сделать, это изменить вкладки для просмотра расшифрованных данных. Это не легче, чем это.

1315506-af5d812ebf583fa3.jpg

Однако инструменты отладки браузера могут видеть только информацию о запросах и ответах. Для информации о процессе, такой как установление соединения, передача данных и управление потоком, инструменты отладки браузера кажутся бессильными. Эти более подробную информацию можно посмотреть через Wireshark.

И Firefox, и Chrome поддерживают генерацию файлов, требуемых вторым способом дешифрования, упомянутым выше. Конкретный формат см.NSS Key Log Format, Но только системные переменные среды установлены SSLKEYLOGFILE Firefox и Chrome сгенерируют файл, и они будут использовать значение этой системной переменной в качестве пути для сохранения файла. Давайте сначала добавим эту переменную среды (Ubuntu):

Далее, выбрав Edit -> Preferences. -> Protocols -> SSL Откройте панель конфигурации SSL Wireshark (версия Ubunut, версия Mac пройдена Wireshark -> Preferences. Открыть настройки), выберите параметр «(Pre) -Master-Secret имя файла журнала» SSLKEYLOGFILE Файл или введите путь к файлу. Как показано ниже:

1315506-20425d67971ec92b.jpg

Также лучше всего сопоставить «файл отладки SSL», чтобы журналы во время процесса расшифровки записывались для отладки и анализа.

ЧерезТерминал Запустите Firefox или Chrome (Убедитесь, что эти браузеры могут читать переменные среды):

После проверки правильности вы можете запустить Wireshark, выбрать соответствующую сетевую карту и начать захват пакетов. Чтобы уменьшить вмешательство ненужных пакетов данных в наш анализ, мы можем захватить только TCP-порт 443 определенного доменного имени, чтобы уменьшить количество захваченных пакетов данных, таких как:

1315506-c7a4380946f99370.jpg

1315506-76a735cc794a4722.jpg

1315506-478ea8593495d286.jpg

Добавьте запись закрытого ключа RSA, введите соответствующий IP-адрес, порт, расшифрованный протокол и путь к файлу закрытого ключа. Секретный ключ должен храниться в формате PEM. Файл закрытого ключа в этом формате аналогичен следующему:

Для сервера nginx, обычно через ssl_certificate_key Элемент настроен с использованием закрытого ключа сайта. Этот закрытый ключ обычно создается аналогично следующему при подаче заявки на сертификат:

Для получения дополнительной информации о формате закрытого ключа, пожалуйста, обратитесь кWireshark в SSL вики。

1315506-1fc6886778b7c893.jpg

Вы можете увидеть набор пакетов шифрования, поддерживаемых curl:

1315506-9762724006f3c3d2.jpg

Для nginx мы передаем ssl_ciphers Возможность настроить набор шифров для него, например:

Наборы шифрования разделены ":". Сервер выбирает набор шифров, поддерживаемый клиентом с наивысшим рейтингом, из набора наборов шифров, настроенных для него. Для вышеуказанной конфигурации набора шифрования сервера используйте curl для доступа к серверу, а согласованный набор шифрования имеет вид TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f) Алгоритм обмена ключами этого набора шифрования - это ECDHE, то есть алгоритм, который не поддерживает шифрование Wireshark.

1315506-88cc08373bee2950.jpg


Набор шифров, согласованный на этот раз, TLS_RSA_WITH_AES_128_GCM_SHA256 (0x009c) Его алгоритм шифрования ключа - RSA.

Однако, когда вы посещаете веб-сайт через браузер Chrome, вы обнаружите, что страница не может быть открыта, как показано на следующем рисунке:

1315506-5ebd6b734aa28bf5.jpg

1315506-2c7fc5a87c6557ec.jpg

1315506-77c5dff03d4e7e02.jpg

1315506-1ef3e4bf0fc2538c.jpg


у меня есть все три. просто не могу найти правильный инструмент или не могу правильно пользоваться ими.



нет, не получается. Пробовал и на windows и на linux.


Не всё так просто. Какой согласовался Cipher Suite? В Server Hello пакете его видно. Если не видно, скиньте дамп без RSA ключа, я подскажу. Некоторые современные Cipher Suite нельзя открыть даже с RSA ключом, я попался на этом год назад.

Выход есть - на клиенте ограничить список Cipher Suites до тех, которые точно можно открыть RSA ключом.

( Наличие дампа + приватный ключ ) & RSA = декодирование

Deleted ( 14.12.17 13:09:34 )
Последнее исправление: Deleted 14.12.17 13:09:41 (всего исправлений: 1)


если используется DHE/ECDHE, то его точно не расшифровать без сессионных ключей которых у ТС нет.


Выход есть - на клиенте ограничить список Cipher Suites до тех, которые точно можно открыть RSA ключом.

не, так не получится. у меня все по pcidss.


как нет ?
я и клиент, я и сервер.
я так понимаю ты про ключ, который после handshake передается.
проблема в том, что я не знаю как их скормить акуле.


Что вообще эта фраза означает? Сделай, значит, чтобы не было по PCI DSS, пока диагностируешь.

Как тут уже написали, есть Forward secrecy. Суть в том, что ключ шифрования согласуется сторонами для каждой сессии и его нельзя узнать только прослушивая трафик (нужно в него вклиниваться по типу MiTM). Более того, насколько я понимаю, все не Forward secrecy протоколы из последнего стандарта TLS убрали. Так что не факт, что у тебя получится расшифровать дамп.

Как уже верно отметили, в случае Perfect Forward Secrecy одного приватного ключа недостаточно. Для декодирования TLS потребуются сессионные ключи. Есть несколько путей:

- При наличии доступа к отладке приложения на устройстве, возможно, есть способы логировать сессионные ключи (по аналогии с переменной окружений SSLKEYLOGFILE для Firefox и Chrome) в формате Wireshark.

- Изучить экзотические способы извлечения/логирования сессионных ключей на стороне веб-сервера (например, с помощью gdb или LD_PRELOAD). Штатного механизма в NGINX нет.

- На время отладки включить non-DH и дешифровать трафик приватным ключом.

С одного из них наблюдается проблема.


- При наличии доступа к отладке приложения на устройстве, возможно, есть способы логировать сессионные ключи (по аналогии с переменной окружений SSLKEYLOGFILE для Firefox и Chrome) в формате Wireshark.

У меня есть сессионые ключи, они записываются в файл(как на хабре).
Есть и ключ сертификата, установленного на сервере.
Вопрос в том как отдать wireshark и sesionkeys и key от сертификата.

Читайте также: