Как установить переменную среды sslkeylogfile в chrome
Как транслировать / смотреть 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.
Если вы когда-либо пытались использовать 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 для каждого пользователя в системе, но я предпочитаю ограничивать его своим профилем.
Под Имя переменной, введите следующее:
в Значение переменной введите путь к файлу журнала. Вы также можете нажать Просмотр файла . кнопку и укажите путь с помощью средства выбора файлов.
Как примечание, если вы создаете это как общесистемную переменную среды, вам нужно будет использовать соответствующие подстановочные знаки или хранить файл в месте, доступном для всех пользователей. Например, вы можете выбрать % USERPROFILE% \ App Data \ ssl-keys.log или C: \ SSL-keys.log.
Когда вы закончите, нажмите Ok и перейти к следующему набору шагов.
Установите переменную среды Linux или Mac
В Linux и макинтош, вам нужно установить SSLKEYLOGFILE переменная окружения с использованием нано. В Linux, переменная хранится в
/ .Bashrc. На макинтош, вы создадите переменную в файле
/ .MacOSX / окружающая среда.
Откройте терминал и используйте эту команду в Linux:
открыто Launchpad, щелчок Другой, и запустить терминал для запустить эту команду в Mac OSX:
Следующие шаги одинаковы для обеих операционных систем.
В конце файла добавьте эту строку:
Нажмите Ctrl + X, Y чтобы сохранить ваши изменения.
Закройте окно терминала и откройте другое, чтобы установить переменную, затем введите следующее, чтобы подтвердить, что она была успешно установлена:
После того, как вы выполните команду, вы должны увидеть вывод, похожий на изображение выше. /Users/comparitech/.ssl-key.log полный путь к журналу предварительного мастер-ключа SSL. Примечание: вы хотите сделать заметку, которая будет отличаться, для ввода в Wireshark.
Теперь, когда переменная установлена, вы можете перейти к следующему набору шагов.
Запустите браузер и проверьте файл журнала
Прежде чем запускать Wireshark и настраивать его для расшифровки SSL с помощью предварительного мастер-ключа, необходимо запустить браузер и подтвердить, что файл журнала используется.
Чтобы заполнить журнал, важно, чтобы вы посетили сайт с включенным SSL. Я использую свой собственный сервер Apache для тестирования, но любой сайт будет работать. Одним из самых больших преимуществ использования предварительного общего ключа является вам не нужен доступ к серверу расшифровать SSL.
После того, как вы посетили веб-сайт с поддержкой SSL, проверьте файл на наличие данных. В Windows, ты можешь использовать Блокнот. В Linux или макинтош, используйте следующую команду:
В любой операционной системе ваш файл должен выглядеть так же, как мой выше. Убедившись, что ваш браузер регистрирует предварительные мастер-ключи в выбранном вами месте, вы можете настроить Wireshark на использование этих ключей для расшифровки SSL..
Настройте Wireshark для расшифровки SSL
Когда ваш браузер регистрирует предварительные мастер-ключи, пришло время настроить Wireshark на использование этих журналов для расшифровки SSL..
Откройте Wireshark и нажмите редактировать, тогда предпочтения. предпочтения Откроется диалоговое окно, и слева вы увидите список элементов. расширять протоколы, прокрутите вниз, затем нажмите SSL.
В списке параметров протокола SSL вы увидите запись для (Pre) -Master-Secret имя файла журнала. Перейдите к файлу журнала, который вы установили на предыдущем шаге, или просто вставьте путь.
Когда вы закончите настройку (Pre) -Master-Secret имя файла журнала, щелчок Ok и вернитесь в Wireshark. Вы готовы двигаться дальше.
Захват сеанса и расшифровка SSL
Последний шаг - захватить тестовую сессию и убедиться, что Wireshark успешно расшифровывает SSL.
- Начните нефильтрованный сеанс захвата, сверните его и откройте браузер.
- Посетите безопасный сайт, чтобы сгенерировать данные, и при необходимости установите фильтр отображения «ssl», чтобы минимизировать шум сеанса.
- Нажмите на любой кадр, содержащий зашифрованные данные.
После того, как вы выбрали зашифрованный кадр, посмотрите на Пакетное представление байтов, и, в частности, вкладки под видом. Вы должны увидеть запись для Расшифрованный SSL данные, среди прочего.
Вы заметите, что мой сеанс по-прежнему выглядит полным мусора, а HTML не виден. Это потому, что мой веб-сервер (и большинство серверов Apache) по умолчанию использует сжатие GZIP.
Когда вы нажимаете Несжатый объект На вкладке, которая отображается только в этом случае с включенной расшифровкой SSL, вы можете просмотреть исходный код сайта. Например, вот элемент title страницы Apache по умолчанию в виде открытого текста.
Использование ключа RSA для расшифровки SSL
Вы могли заметить ранее, что в Wireshark есть поле, которое позволяет вам загружать ваши ключи RSA и использовать их для расшифровки SSL. На практике, Расшифровка ключа RSA устарела.
Причина, по которой расшифровка SSL с помощью ключа RSA больше не используется, заключается в том, что Perfect Forward Encryption (PFE) сделал его устаревшим. Сессии, согласованные с Диффи-Хеллманом, не используют ключ RSA напрямую; вместо этого они генерируют одноразовый ключ, хранящийся только в оперативной памяти, который шифруется с использованием ключа на диске.
Если вы ранее использовали ключ RSA для декодирования трафика и он перестал работать, вы можете подтвердить, что целевая машина использует обмены Диффи-Хеллмана, включив протоколирование SSL.
Чтобы включить ведение журнала, нажмите редактировать из меню панели инструментов и выберите предпочтения. Разверните протоколы пункт меню слева и прокрутите вниз до SSL. Отсюда вы можете нажать Просматривать кнопку и установите местоположение вашего журнала SSL.
После определения местоположения все взаимодействия SSL будут регистрироваться в указанном файле..
Захватите сеанс с вашим хостом с поддержкой SSL, затем проверьте журналы. В частности, вы должны прокручивать, пока не найдете кадр, о котором было согласовано согласование TLS. Вполне вероятно, что вы увидите контрольную запись DHE в строке шифра.
Это означает, что обмен ключами Диффи-Хеллмана включен. В моем случае Apache специально использует Диффи-Хеллмана с ключами эллиптической кривой, которые обозначаются строкой ECDHE.
Прокрутите немного дальше, и вы, вероятно, увидите, что главный секрет не может быть найден.
Если ваши журналы выглядят так, и вы не можете расшифровать трафик с помощью ключа RSA, у вас нет другого выбора, кроме как переключиться на метод предварительного секретного метода выше.
Поскольку PFE становится стандартной практикой, а TLSv1.3, скорее всего, вызывает проблему, простое дешифрование ключа RSA устарело и не должно использоваться.
Wireshark упрощает расшифровку трафика SSL
Мне действительно нравится, как Wireshark обрабатывает расшифровку SSL. Криптография сложна, и стандарты постоянно меняются, чтобы быть более безопасными. Но как только Wireshark и ваша среда настроены правильно, все, что вам нужно сделать, это изменить вкладки для просмотра расшифрованных данных. Это не легче, чем это.
Однако инструменты отладки браузера могут видеть только информацию о запросах и ответах. Для информации о процессе, такой как установление соединения, передача данных и управление потоком, инструменты отладки браузера кажутся бессильными. Эти более подробную информацию можно посмотреть через 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 Файл или введите путь к файлу. Как показано ниже:
Также лучше всего сопоставить «файл отладки SSL», чтобы журналы во время процесса расшифровки записывались для отладки и анализа.
ЧерезТерминал Запустите Firefox или Chrome (Убедитесь, что эти браузеры могут читать переменные среды):
После проверки правильности вы можете запустить Wireshark, выбрать соответствующую сетевую карту и начать захват пакетов. Чтобы уменьшить вмешательство ненужных пакетов данных в наш анализ, мы можем захватить только TCP-порт 443 определенного доменного имени, чтобы уменьшить количество захваченных пакетов данных, таких как:
Добавьте запись закрытого ключа RSA, введите соответствующий IP-адрес, порт, расшифрованный протокол и путь к файлу закрытого ключа. Секретный ключ должен храниться в формате PEM. Файл закрытого ключа в этом формате аналогичен следующему:
Для сервера nginx, обычно через ssl_certificate_key Элемент настроен с использованием закрытого ключа сайта. Этот закрытый ключ обычно создается аналогично следующему при подаче заявки на сертификат:
Для получения дополнительной информации о формате закрытого ключа, пожалуйста, обратитесь кWireshark в SSL вики。
Вы можете увидеть набор пакетов шифрования, поддерживаемых curl:
Для nginx мы передаем ssl_ciphers Возможность настроить набор шифров для него, например:
Наборы шифрования разделены ":". Сервер выбирает набор шифров, поддерживаемый клиентом с наивысшим рейтингом, из набора наборов шифров, настроенных для него. Для вышеуказанной конфигурации набора шифрования сервера используйте curl для доступа к серверу, а согласованный набор шифрования имеет вид TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f) Алгоритм обмена ключами этого набора шифрования - это ECDHE, то есть алгоритм, который не поддерживает шифрование Wireshark.
Набор шифров, согласованный на этот раз, TLS_RSA_WITH_AES_128_GCM_SHA256 (0x009c) Его алгоритм шифрования ключа - RSA.
Однако, когда вы посещаете веб-сайт через браузер Chrome, вы обнаружите, что страница не может быть открыта, как показано на следующем рисунке:
у меня есть все три. просто не могу найти правильный инструмент или не могу правильно пользоваться ими.
нет, не получается. Пробовал и на windows и на linux.
Не всё так просто. Какой согласовался Cipher Suite? В Server Hello пакете его видно. Если не видно, скиньте дамп без RSA ключа, я подскажу. Некоторые современные Cipher Suite нельзя открыть даже с RSA ключом, я попался на этом год назад.
Выход есть - на клиенте ограничить список Cipher Suites до тех, которые точно можно открыть RSA ключом.
Deleted ( 14.12.17 13:09:34 )( Наличие дампа + приватный ключ ) & RSA = декодирование
Последнее исправление: 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 от сертификата.
Читайте также: