Nano Hash - криптовалюты, майнинг, программирование

Расшифровка трафика SSL / TLS из приложения с помощью Wireshark

У меня есть файл pcap с трафиком TLSv2.0 из приложения Windows exe.

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

Я попробовал включить переменную среды ssllogfile, а также попытался выбрать закрытый ключ в Wireshark - ›Настройки -› TLS. Но мне все равно не удалось расшифровать трафик.

Есть ли другой способ?

Используемый набор шифров - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256


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

Ответы:


1

«ECDHE» означает, что обмен ключами выполняется с использованием эллиптической кривой Диффи-Хеллмана, которая обеспечивает прямую секретность. Это означает, что закрытого ключа от сертификата сервера X.509 недостаточно для расшифровки трафика. Вам нужно будет заставить клиентское приложение сгенерировать SSLKEYLOGFILE, что можно сделать с помощью Chrome, Firefox и curl. Если «приложение Windows exe» отличается от других, вам придется перехватить трафик TLS, чтобы увидеть, что происходит внутри туннеля TLS.

Если вы хотите анализировать расшифрованный трафик в Wireshark, я бы рекомендовал проксировать трафик с помощью PolarProxy, потому что он генерирует файл PCAP с расшифрованным трафиком из сеанса TLS. Вам не понадобится SSLKEYLOGFILE, если вы решите перехватывать и расшифровывать трафик TLS с помощью PolarProxy.

22.08.2019
  • Итак, я установил PolarProxy в систему ubuntu, а на платформе Windows я указал IP-адрес системы ubuntu и порт 10443 в настройках прокси-сервера системы Windows. Теперь, когда я запускаю приложения на PolarProxy, я получаю: SYSTEM.IO.IOException: рукопожатие не удалось из-за неожиданного формата пакета. ошибка. Я установил сертификат PolarProxy в качестве доверенных корневых сертификатов на обеих платформах Windows. Есть идеи, где я ошибся? 29.08.2019
  • @aandroidtest Обратите внимание, что PolarProxy - это прозрачный прокси, а это означает, что вам не нужно настраивать какие-либо параметры прокси в клиентском приложении (или в ОС, если на то пошло). Единственное, что имеет значение, это то, что трафик TLS (например, трафик HTTPS на TCP 443) маршрутизируется через машину PolarProxy. 01.09.2019
  • @aandroidtest: убедитесь, что вы следуете инструкциям в разделе «Маршрутизация HTTPS-трафика на прокси» здесь: netresec.com/?page=PolarProxy 01.09.2019
  • Спасибо за советы. Есть идеи, как заставить polarproxy использовать ip в файле клиентских хостов при разрешении DNS? Или это невозможно? 02.09.2019
  • @aandroidtest PolarProxy будет искать расширение Server Name Indication (SNI) в подтверждении TLS клиента. Если SNI найден, PolarProxy выполнит поиск хоста, чтобы найти IP-адрес для подключения внешнего сеанса TLS. Если домен не должен разрешаться через DNS, просто добавьте IP-адрес в файл /etc/resolv.conf ПК с Ubuntu. Однако, если клиент не отправляет никакого SNI, вы можете использовать аргумент --nosni 10.1.2.3, чтобы PolarProxy подключился к IP 10.1.2.3. Запустите ./PolarProxy --help для получения дополнительных сведений. 03.09.2019
  • @aandroidtest, чтобы избежать ошибки SYSTEM.IO.IOException: The handshake failed due to an unexpected packet format., я сделал это новичком: остановил службу nginx, чтобы освободить порт 443, и использовал 1-й пример в руководство, избегая части маршрутизации. 02.03.2021
  • Вы случайно не настраивали параметры прокси в браузере или ОС? PolarProxy - это прозрачный прокси, что означает, что браузер должен быть настроен так, как если бы прокси не было (кроме корневого сертификата). Правило брандмауэра REDIRECT гарантирует, что трафик HTTPS идет на PolarProxy. Что произойдет, если вы запустите: curl --insecure --connect-to website.com:443:[polarproxy-ip]:443 https://website.com/? 05.03.2021
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..