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

Расшифровать 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 для каждого пользователя в системе, но я предпочитаю ограничивать его своим профилем.

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

SSLKEYLOGFILE

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

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

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

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

В Linux и макинтош, вам нужно установить SSLKEYLOGFILE переменная окружения с использованием нано. В Linux, переменная хранится в ~ / .Bashrc. На макинтош, вы создадите переменную в файле  ~ / .MacOSX / окружающая среда.

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

нано ~ / .bashrc

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

nano ~ / .bash_profile

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

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

export SSLKEYLOGFILE = ~ / .ssl-key.log

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

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

echo $ SSLKEYLOGFILE

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

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

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

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

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

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

cat ~ / .ssl-log.key

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

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

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

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

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

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

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

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

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

В моем случае я выберу тот, который содержит HTTP-трафик с кодировкой текста / HTML, так как я хотел бы видеть исходный код, который веб-сервер отправляет в мой браузер. Но любой зашифрованный трафик, который использует секретный ключ предварительного мастера, будет работать с этим методом. Это включает в себя все данные, использующие Perfect Forward Encryption (PFE) через Диффи-Хеллмана или аналогичные обмены ключами.

После того, как вы выбрали зашифрованный кадр, посмотрите на Пакетное представление байтов, и, в частности, вкладки под видом. Вы должны увидеть запись для Расшифрованный 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 и ваша среда настроены правильно, все, что вам нужно сделать, это изменить вкладки для просмотра расшифрованных данных. Это не легче, чем это.

About the author

Comments

  1. Sorry, I cannot provide a comment in the appropriate language as the language used in the text is not specified. Please provide the language so I can assist you better.

  2. и C: \ ssl-keys.log.

    Когда вы закончите, нажмите ОК, чтобы сохранить переменную среды.

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

    В Linux или Mac вы можете установить переменную среды, используя команду export в терминале.

    Откройте терминал и введите следующую команду:

    export SSLKEYLOGFILE=/path/to/ssl-keys.log

    Замените /path/to/ssl-keys.log на путь к файлу журнала.

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

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

    Для Firefox вы можете ввести about:config в адресной строке и нажать Enter. Нажмите на кнопку “Я буду осторожен, обещаю!” и найдите параметр security.tls.enable_0rtt_data. Установите его значение на true.

    Для Chrome вы можете запустить его с параметром командной строки –ssl-key-log-file=/path/to/ssl-keys.log.

    После запуска браузера проверьте файл журнала, чтобы убедиться, что он записывает предварительные секретные ключи.

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

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

    Откройте Wireshark и выберите меню Edit -> Preferences.

    В окне Preferences выберите протокол SSL в списке слева.

    Нажмите на кнопку Browse рядом с полем (Pre)-Master-Secret log filename и выберите файл журнала, который вы создали ранее.

    Нажмите на кнопку OK, чтобы сохранить настройки.

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

    Теперь вы готовы захватывать трафик и расшифровывать SSL в Wireshark.

    Запустите захват трафика в Wireshark и начните взаимодействие с зашифрованным сайтом в браузере.

    Когда вы закончите, остановите захват трафика в Wireshark.

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

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

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

    Для этого вам нужно получить закрытый ключ RSA, который используется на сервере, и импортировать его в Wireshark.

    Откройте меню Edit -> Preferences в Wireshark и выберите протокол SSL в списке слева.

    Нажмите на кнопку RSA Keys List и затем на кнопку Edit.

    Нажмите на кнопку New и введите IP-адрес сервера и порт, который вы хотите расшифровать.

    Нажмите на кнопку Browse рядом с полем RSA Key File и выберите файл с закрытым ключом RSA.

    Нажмите на кнопку OK, чтобы сохранить настройки.

    Теперь вы можете захватывать трафик и расшифровывать SSL с помощью ключа RSA.

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

    Хотя расшифровка т

  3. As an AI language model, I do not have a native language, but I can understand and generate text in multiple languages. However, based on the content of the text, it appears to be written in Russian. The text discusses the challenges of monitoring web traffic using Wireshark due to the widespread use of SSL and TLS encryption. It provides steps for decrypting SSL using Wireshark, including setting up a pre-master secret key and configuring Wireshark. The text also includes instructions for setting environment variables in Windows to enable SSL decryption.

  4. Russian:

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

Comments are closed.