Действительно ли HTTPS невосприимчив к посредникам?
Действительно ли HTTPS невосприимчив к посредникам?

1. Введение

Поскольку в последние годы крупные веб-сайты уделяют все больше внимания безопасности, они перешли на протокол https. В отличие от дюжины лет назад, протокол http в Интернете был прямо голым. HTTPS решает проблему атак «человек посередине» в эпоху HTTP с точки зрения протокола, но HTTPS также может вызывать атаки «человек посередине», когда пользователи активно доверяют поддельным сертификатам (например, ранняя версия 12306 требует ручного управления). доверие сертификатов), поэтому с этой точки зрения HTTPS является посредником, который нельзя полностью оставлять в покое.

2. Что такое HTTPS?

HTTPS — это зашифрованный HTTP. После использования HTTPS данные, передаваемые клиентом браузера и веб-сервером, шифруются, и только браузер и сервер знают их содержимое.

HTTPS = HTTP + TLS или SSL. Веб-сайты, использующие HTTPS, должны подать заявку на получение сертификата в центр цифровой сертификации (Центр сертификации, CA).

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

3. Принцип передачи по протоколу HTTPS.

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

Общий процесс HTTPS разделен на этапы проверки сертификата и передачи данных.

Принцип и технологическая схема передачи протокола HTTPS следующие:

На диаграмме выше показано:

① Этап проверки сертификата

Клиент инициирует HTTPS-запрос

Сервер возвращает сертификат HTTPS

Клиент проверяет, является ли сертификат законным, и выводит предупреждение, если он незаконен.

② Этап передачи данных

1. После проверки легальности сертификата локально генерируется случайное число.

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

3. Сервер расшифровывает случайное число с помощью закрытого ключа.

4. Сервер создает алгоритм симметричного шифрования на основе случайных чисел, переданных клиентом, шифрует возвращаемое содержимое результата и затем передает его.

4.Fiddler записывает сеанс протокола Http.

Fiddler — хороший инструмент для захвата пакетов. Он по умолчанию захватывает запросы протокола Http (это относительно просто, вы можете найти его самостоятельно в Baidu), но не захватывает сеансы протокола Https. Для захвата сеансов Https требуется дополнительная настройка. Как показано ниже:

5. Fiddler использует принцип 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 использует полученный ранее симметричный ключ для расшифровки данных, отправленных клиентом, и повторно шифрует их перед отправкой клиенту.

6.Fiddler записывает сеанс протокола HTTPS.

По умолчанию 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 настраивает сертификат.

6.1 Конфигурация сертификата 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.

6.2 Просмотр сертификата, установленного в Fiddler

6.2.1 Метод 1

1. Мы можем нажать «Действия» и выбрать «Открыть». Windows Certificate вариант менеджера, Откройте Диспетчер сертификатов Windows для просмотра. Как показано ниже:

2. Откройте диспетчер сертификатов Windows. Затем нажмите на строку меню действовать--->Находить Сертификат Затем введитеFiddler Сертификат будет найден (если объяснений нет, установка не удалась), как показано ниже:

3. Сертификат называется DO_NOT_TRUST_FiddlerRoot. Вы можете это проверить. Как показано ниже:

6.2.2 Метод 2

1.WIN+R, чтобы открыть запуск,Введите certmgr.msc и нажмите Enter.,Нажмите“доверенный корень Сертификаторган, выдавший документ--->Нажмите“Сертификат”。Проверять,Как показано ниже:

6.3 Доверительный сертификат

После установки сертификата вам все равно необходимо настроить доверие. Конкретные шаги заключаются в следующем:

1.Прямой выборTools--->Options---->HTTPS---->Actions--->Trust Root Certificate . Как показано ниже:

2. Просто нажмите «ОК» или «Да» в появившемся диалоговом окне, как показано на рисунке ниже:

Хорошо, вот и все, все готово! Теперь, если все пойдет не так, вы можете нормально сканировать пакеты HTTPS.

Постучите по доске! ! !

Если это по-прежнему не работает, лучше всего сбросить сертификат. Выберите «Сбросить все сертификаты в действиях», затем нажмите «ОК», чтобы удалить сертификат, настроенный Fiddler, и, наконец, повторно выполните предыдущие шаги.

7. HTTPS-атака «человек посередине»

HTTPS решает проблему атак «человек посередине» в эпоху HTTP с точки зрения протокола. Однако атаки «человек посередине» HTTPS могут также возникать, когда пользователи активно доверяют поддельным сертификатам (например, для этого требуется ранняя версия 12306). Доверие сертификатов вручную). Процесс HTTPS-атаки «человек посередине» выглядит следующим образом:

  1. Клиент подключается к порту 443 сервера по протоколу HTTPS.
  2. Сервер выдает клиенту собственный цифровой сертификат.
  3. Хакер похитил настоящий сертификат сервера и подделал поддельный сертификат для браузера.
  4. Браузер может обнаружить, что полученный сертификат веб-сайта является поддельным, но предпочитает доверять ему.
  5. Браузер генерирует случайный симметричный ключ A, шифрует его открытым ключом в поддельном сертификате и отправляет на сервер.
  6. Хакер также может перехватить этот запрос и получить симметричный ключ A браузера, чтобы он мог подслушивать или подделывать передаваемые данные.
  7. Хакер использует реальный открытый ключ сервера для шифрования симметричного ключа клиента A и отправки его на сервер.
  8. Сервер использует закрытый ключ для расшифровки этого симметричного ключа A, а затем связывается с хакером.
  9. Хакер использует симметричный ключ А для расшифровки данных сервера, а после взлома использует симметричный ключ А для шифрования и отправки их клиенту.
  10. Данные, полученные клиентом, уже небезопасны.

Вышеописанное представляет собой принцип атаки «человек посередине» HTTPS, поэтому для захвата пакетов HTTPS требуется доверие к сертификату. Таким образом, операционная система имеет встроенный открытый ключ авторитетного центра сертификации для обеспечения безопасности цифровых подписей и цифровых сертификатов. Для проведения HTTPS-атаки «человек посередине» необходимо вручную доверять поддельному сертификату злоумышленника.

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

Посредник шифрует и передает данные, возвращаемые формальным содержанием, с помощью алгоритма симметричного шифрования, установленного клиентом. Клиент расшифровывает возвращаемые данные результата с помощью алгоритма симметричного шифрования, установленного посредником.

Из-за отсутствия проверки сертификата, хотя клиент и инициирует HTTPS-запрос, клиент не подозревает, что его сеть была перехвачена и весь передаваемый контент был украден посредником.

8. Резюме

 Сегодня брат Хонг кратко объяснил и поделился принципами https и практикой захвата сетевых пакетов. ли HTTPS невосприимчив к посредникам?Брат Хун здесь настроен скептически.,Если некоторые пользователи плохо осведомлены о безопасности,Хотя сейчас все сайты используют протокол https.,Но все равно легко попасться. Инструмент захвата пакетов Fiddler здесь выступает в роли посредника.,Если мы доверяем Сертификату посредника,Итак, поздравляю,Получил удар. Ладно, уже поздно. Давай остановимся здесь сегодня.,Спасибо всем за терпение при чтении! ! !

Проблемы, с которыми вы столкнетесь:

Экспорт сертификата завершается неудачей, и появляется следующее сообщение: Невозможно настроить Windows для доверия корню Fiddler.... Как показано на рисунке ниже:

Решение:

оказатьсяfiddler->Панель инструментовtools->options,Затем выберите HTTPS,НажмитеCertEnroll engine, выберите MakeCert и нажмите «ОК», чтобы сохранить. Наконец, не забудьте перезапустить Fiddler! ! !

boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.