Протокол HTTPS (Hypertext Transfer Protocol Secure)
Одним из основных недостатков HTTP состоит в том, что все данные передаются в четком текст, что означает, что любой между источником и назначением может выполнять атаку "MITM" для просмотра переданных данных. Это главная проблема с банковскими и правительственными веб-сайтами, которые содержат конфиденциальные пользовательские данные. Это можно проверить с помощью сетевого анализатора, такого как Wireshark. В следующем примере демонстрирует эффект не подходящих безопасным коммуникациям между веб-браузером и веб-приложением. Если мы попытаем войти в небезопасный веб-сайт во время мониторинга сетевого трафика с использованием анализатора сетевого протокола графического пакета, например, Wireshark, мы можем видеть, что учетные данные для входа в систему могут быть перехвачены в ClearText. Это облегчает кому-то в одной сети (например, публичную беспроводную сеть), чтобы запечатлеть их и использовать их для вредоносных целей.
Как видно ниже, злоумышленник, который захватывает сетевой трафик, сможет просмотреть всю последовательность логина, показывая запрос входа в систему (наряду с прилагаемым именем пользователя и паролем) и перенаправление на страницу административной панели данных после успешной попытки входа в систему.
Эти недостатки породили протокол HTTPS (HTTP Secure). Когда этот протокол включен, вся связь между клиентом и веб-сервером, в который входит веб-приложение, зашифрован. Когда HTTPS реализован в веб-приложении, для любого перехвата становится невозможным перехватить и анализировать информацию о трафике и захвата, такие как учетные данные и другие конфиденциальные данные.
Сайты, которые обеспечены HTTPS, могут быть идентифицированы через https:// в URL (I.E., https://www.google.com), а также значок блокировки в адресной строке веб-браузера слева от URL.
Порт по умолчанию для HTTPS является 443, который предпочтительнее для браузеров, нежели HTTP-порту 80, при условии, что нет ошибок, которые позволяют пользователю просматривать небезопасную версию. Wireshark при просмотре в https://google.com показывает трафик, проходящий через зашифрованную сеть.
В приведенном выше примере мы видим, что весь трафик при просмотре к https://google.com зашифрован.
HTTPS Flow
Давайте посмотрим на то, как HTTPS работает на высоком уровне. При просмотре http://inlanefreigh.com браузер пытается разрешить домен и перенаправлять пользователь на веб-сервер, размещающийся на целевом сайте. Сначала отправляется запрос на порт 80, который является протоколом о незашифрованном HTTP. Сервер обнаруживает это и перенаправляет клиента для защиты портов HTTPS 443. Это сделано через 301, перемещенное навсегда навсегда.
Затем клиент (веб-браузер) отправляет пакет «Client Hello», давая информацию о себе. После этого сервер отвечает «Server Hello», а затем ключ обмена. Клиент проверяет этот ключ и отправляет один из его собственных. После этого инициируется зашифрованное рукопожатие для проверки, есть ли шифрование и передача работает правильно.
Как только рукопожатие завершится успешно, продолжается нормальная HTTP-связь, которая зашифрована после этого.
В зависимости от обстоятельств, злоумышленник может иметь возможность выполнить атаку понижения HTTP, которая понижает HTTPS Communication к HTTP. Это делается путем создания атаки MAN-MIND-MILE (MITM) и прокси. Успешная атака понижения приведет к передаче данных ClearText в HTTP, которые злоумышленник может регистрировать и позже изучить или манипулировать для вредоносных целей.