Поскольку в последние годы крупные веб-сайты уделяют все больше внимания безопасности, они перешли на протокол https. В отличие от дюжины лет назад, протокол http в Интернете был прямо голым. HTTPS решает проблему атак «человек посередине» в эпоху HTTP с точки зрения протокола, но HTTPS также может вызывать атаки «человек посередине», когда пользователи активно доверяют поддельным сертификатам (например, ранняя версия 12306 требует ручного управления). доверие сертификатов), поэтому с этой точки зрения HTTPS является посредником, который нельзя полностью оставлять в покое.
HTTPS — это зашифрованный HTTP. После использования HTTPS данные, передаваемые клиентом браузера и веб-сервером, шифруются, и только браузер и сервер знают их содержимое.
HTTPS = HTTP + TLS или SSL. Веб-сайты, использующие HTTPS, должны подать заявку на получение сертификата в центр цифровой сертификации (Центр сертификации, CA).
Посредством этого сертификата браузер несколько раз устанавливает связь с веб-сервером для проверки личности друг друга перед запросом данных, а затем шифрует HTTP-запрос и ответ.
Возможно, каждый слышал, что причина безопасности протокола HTTPS заключается в том, что протокол HTTPS шифрует передаваемые данные, а процесс шифрования реализуется с использованием асимметричного шифрования. Но на самом деле HTTPS использует симметричное шифрование для шифрования передачи контента, а асимметричное шифрование работает только на этапе проверки сертификата.
Общий процесс HTTPS разделен на этапы проверки сертификата и передачи данных.
Принцип и технологическая схема передачи протокола HTTPS следующие:
На диаграмме выше показано:
① Этап проверки сертификата
Клиент инициирует HTTPS-запрос
Сервер возвращает сертификат HTTPS
Клиент проверяет, является ли сертификат законным, и выводит предупреждение, если он незаконен.
② Этап передачи данных
1. После проверки легальности сертификата локально генерируется случайное число.
2. Зашифруйте случайное число с помощью открытого ключа и передайте зашифрованное случайное число на сервер.
3. Сервер расшифровывает случайное число с помощью закрытого ключа.
4. Сервер создает алгоритм симметричного шифрования на основе случайных чисел, переданных клиентом, шифрует возвращаемое содержимое результата и затем передает его.
Fiddler — хороший инструмент для захвата пакетов. Он по умолчанию захватывает запросы протокола Http (это относительно просто, вы можете найти его самостоятельно в Baidu), но не захватывает сеансы протокола Https. Для захвата сеансов Https требуется дополнительная настройка. Как показано ниже:
В настоящее время передача данных как на веб-сайтах, так и в приложениях в основном использует передачу HTTPS, а передаваемые данные шифруются, что увеличивает сложность анализа пакетов данных. К счастью, Fiddler может не только перехватывать пакеты данных HTTP, но и получать пакеты HTTPS. Поскольку передача HTTPS требует использования сертификата CA, при захвате пакетов HTTPS требуются некоторые специальные настройки. Процесс перехвата HTTPS-сообщений Fiddler выглядит примерно следующим образом:
На диаграмме выше показано:
1) Клиент запрашивает установление соединения HTTPS и отправляет на сервер такую информацию, как протокол шифрования и список версий, поддерживаемых клиентом.
2) Fiddler принимает запрос клиента и отправляет тот же запрос на WEB-сервер, замаскированный под клиента.
3) После того, как WEB-сервер получает запрос Fiddler, он выбирает из запроса соответствующий протокол шифрования. И возвращает сертификат ЦС сервера, который включает информацию об открытом ключе.
4) После получения ответа от WEB-сервера Fiddler сохраняет сертификат сервера и самостоятельно подписывает сертификат CA, притворяется сервером и выдает сертификат клиенту.
5) Клиент проверяет действительность сертификата. (От этого шага зависит, сможет ли Fiddler перехватывать сообщения HTTPS).
6) Клиент генерирует симметричный ключ, шифрует его открытым ключом сертификата и отправляет на сервер.
7) После того, как Fiddler перехватывает запрос клиента, он использует закрытый ключ для расшифровки сообщения, получает симметричный ключ шифрования и использует открытый ключ в сертификате сервера для шифрования симметричного ключа и отправки его на WEB-сервер. В настоящее время произошла утечка симметричного ключа, и секретный ключ может быть использован в будущем для сопряжения данных, передаваемых между клиентом и сервером.
8) После получения зашифрованного симметричного ключа, отправленного клиентом, WEB-сервер использует закрытый ключ для его расшифровки, а также использует симметричный ключ для шифрования тестовых данных и передачи их клиенту.
9) Fiddler использует полученный ранее симметричный ключ для расшифровки сообщения.
10) После того, как клиент проверит правильность данных, устанавливается HTTPS-соединение, и клиент начинает отправлять на сервер бизнес-данные, зашифрованные с использованием симметричного ключа.
11) Fiddler использует полученный ранее симметричный ключ для расшифровки данных, отправленных клиентом, и повторно шифрует их перед отправкой клиенту.
По умолчанию Fiddler не перехватывает HTTPS-запросы, и его необходимо настроить.
Когда браузер обращается к веб-странице HTTPS, Fiddler может перехватывать множество запросов на подтверждение установления соединения. Например, при использовании браузера для доступа к https://www.baidu.com Fiddler может перехватывать множество запросов «Tunnel to». Как показано ниже:
1. При использовании Fiddler для захвата пакетов без дальнейшей настройки используйте браузеры FireFox и Chrome, чтобы открыть веб-страницу Baidu: https://www.baidu.com. Вы можете видеть информацию Baidu на панели сеанса, но просмотр ее — это панель мониторинга Fiddler. Появится желтое предупреждение «Расшифровка HTTPS отключена, нажмите, чтобы настроить» (перевод: расшифровка https отключена, нажмите, чтобы настроить). Что касается браузера IE, Microsoft официально объявила о прекращении его поддержки, поэтому Хун Гэ не будет здесь слишком подробно о нем рассказывать. Конечно, некоторые версии браузера Firefox также имеют особые условия, которые требуют дальнейшей настройки. Брат Хонг сообщит об этом позже. Как показано ниже:
На рисунке выше мы ясно видим, что в столбце «Хост» появляются слова «Туннель до...». Короче говоря, если в будущем в столбце «Хост» в списке сеансов появятся слова «Туннель до...». , это означает, что возникла проблема с сертификатом. Это невозможно. Захватите нужный сеанс. Чтобы захватить сеанс протокола https, нам нужно открыть конфигурацию и установить сертификат. В конце концов, многие веб-сайты в настоящее время используют протокол https. перед захватом пакета нам необходимо настроить сертификат, иначе мы не сможем его перехватить. Затем следуйте инструкциям Brother Hong, чтобы увидеть, как Fiddler настраивает сертификат.
1. Запустите Фиддлер,Затем нажмите на строку менюTools---->Options---->HTTPS . Как показано ниже:
2. Установите флажок «Захват». HTTPS CONNECTs» (захват HTTPS-соединений) и установите флажок «Расшифровать». HTTPS трафик» (расшифровать HTTPS-трафик), после чего появится диалоговое окно Просто нажмите ДА. Как показано ниже:
Постучите по доске! ! !
Если вы устанавливаете Fiddler впервые, обычно появляется всплывающее окно, связанное с установкой Сертификата. Если у некоторых друзей или детской обуви не появляется подсказка,Не беспокойтесь о том, чтобы разозлиться или волноваться,ты можешь нажатьActions---> Trust Root Сертификат (корневой сертификат Сертификата) отобразит точно такие же подсказки, связанные с установкой Сертификата. Как показано ниже:
3. После нажатия «Да» все всплывающие диалоговые окна просто будут нажимать «Да», как дурак, как показано ниже:
4. Всплывающее окно «Добавлено Fiddler's root certificate to the Machine Root list» (добавьте сертификат Fiddler в список корневых каталогов компьютера) , нажмите «ОК». Как показано ниже:
5. В завершение напишите следующее: «Игнорировать server certificate ошибки (небезопасно)» игнорировать ошибки сертификата сервера (небезопасно) и «проверить for certificate revocation (Сертификат снимите) эти два параметра также проверяются. Как показано ниже:
На этом этапе сертификат также установлен на Fiddler.
1. Мы можем нажать «Действия» и выбрать «Открыть». Windows Certificate вариант менеджера, Откройте Диспетчер сертификатов Windows для просмотра. Как показано ниже:
2. Откройте диспетчер сертификатов Windows. Затем нажмите на строку меню действовать--->Находить Сертификат Затем введитеFiddler Сертификат будет найден (если объяснений нет, установка не удалась), как показано ниже:
3. Сертификат называется DO_NOT_TRUST_FiddlerRoot. Вы можете это проверить. Как показано ниже:
1.WIN+R, чтобы открыть запуск,Введите certmgr.msc и нажмите Enter.,Нажмите“доверенный корень Сертификаторган, выдавший документ--->Нажмите“Сертификат”。Проверять,Как показано ниже:
После установки сертификата вам все равно необходимо настроить доверие. Конкретные шаги заключаются в следующем:
1.Прямой выборTools--->Options---->HTTPS---->Actions--->Trust Root Certificate . Как показано ниже:
2. Просто нажмите «ОК» или «Да» в появившемся диалоговом окне, как показано на рисунке ниже:
Хорошо, вот и все, все готово! Теперь, если все пойдет не так, вы можете нормально сканировать пакеты HTTPS.
Постучите по доске! ! !
Если это по-прежнему не работает, лучше всего сбросить сертификат. Выберите «Сбросить все сертификаты в действиях», затем нажмите «ОК», чтобы удалить сертификат, настроенный Fiddler, и, наконец, повторно выполните предыдущие шаги.
HTTPS решает проблему атак «человек посередине» в эпоху HTTP с точки зрения протокола. Однако атаки «человек посередине» HTTPS могут также возникать, когда пользователи активно доверяют поддельным сертификатам (например, для этого требуется ранняя версия 12306). Доверие сертификатов вручную). Процесс HTTPS-атаки «человек посередине» выглядит следующим образом:
Вышеописанное представляет собой принцип атаки «человек посередине» HTTPS, поэтому для захвата пакетов HTTPS требуется доверие к сертификату. Таким образом, операционная система имеет встроенный открытый ключ авторитетного центра сертификации для обеспечения безопасности цифровых подписей и цифровых сертификатов. Для проведения HTTPS-атаки «человек посередине» необходимо вручную доверять поддельному сертификату злоумышленника.
Поскольку процесс связи между посредником и сервером является законным, законный веб-сайт возвращает зашифрованные данные через установленный безопасный канал. Посредник расшифровывает контент, используя алгоритм симметричного шифрования, установленный на законном веб-сайте.
Посредник шифрует и передает данные, возвращаемые формальным содержанием, с помощью алгоритма симметричного шифрования, установленного клиентом. Клиент расшифровывает возвращаемые данные результата с помощью алгоритма симметричного шифрования, установленного посредником.
Из-за отсутствия проверки сертификата, хотя клиент и инициирует HTTPS-запрос, клиент не подозревает, что его сеть была перехвачена и весь передаваемый контент был украден посредником.
Сегодня брат Хонг кратко объяснил и поделился принципами https и практикой захвата сетевых пакетов. ли HTTPS невосприимчив к посредникам?Брат Хун здесь настроен скептически.,Если некоторые пользователи плохо осведомлены о безопасности,Хотя сейчас все сайты используют протокол https.,Но все равно легко попасться. Инструмент захвата пакетов Fiddler здесь выступает в роли посредника.,Если мы доверяем Сертификату посредника,Итак, поздравляю,Получил удар. Ладно, уже поздно. Давай остановимся здесь сегодня.,Спасибо всем за терпение при чтении! ! !
Проблемы, с которыми вы столкнетесь:
Экспорт сертификата завершается неудачей, и появляется следующее сообщение: Невозможно настроить Windows для доверия корню Fiddler.... Как показано на рисунке ниже:
Решение:
оказатьсяfiddler->Панель инструментовtools->options,Затем выберите HTTPS,НажмитеCertEnroll engine, выберите MakeCert и нажмите «ОК», чтобы сохранить. Наконец, не забудьте перезапустить Fiddler! ! !