Руководство по расшифровке 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: как расшифровать SSL с помощью Wireshark

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

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

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

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

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

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

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

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

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

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

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

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

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

export SSLKEYLOGFILE = ~ / .ssl-key.log

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

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

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

echo $ SSLKEYLOGFILE

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

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

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

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

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

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

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

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

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

cat ~ / .ssl-log.key

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

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

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

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

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

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

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

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

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

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

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

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

Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me

About the author

Leave a Reply

Your email address will not be published. Required fields are marked *

92 − 82 =

Adblock
detector