От каких типов атак защищает HTTPS
Что проверяют
Понимаете ли вы, что именно даёт TLS, и где проходит граница его ответственности. Фронтендеру это нужно не ради теории: от того же понимания зависят флаги кук, смешанный контент и список браузерных API, которые по открытому http просто недоступны.
Как отвечать
TLS решает три задачи, и все атаки, от которых он защищает, сводятся к ним:
- конфиденциальность: трафик зашифрован, поэтому сосед по открытому Wi-Fi или провайдер не прочитают тело, путь, заголовки и куки. Отсюда закрыты пассивное прослушивание и кража сессионной куки;
- целостность: подменить или дописать что-то в ответе на лету не выйдет, провайдерская вставка рекламы и стороннего скрипта отпадает;
- аутентификация сервера: сертификат подтверждает, что домен именно тот. Это и закрывает классического «человека посередине», а HSTS добавляет защиту от принудительного отката на http.
Сильный ответ обязательно называет и обратную сторону. HTTPS ничего не знает про XSS, CSRF, инъекции и дырявую авторизацию: это ваш код, и шифрование канала его не чинит. Не спасает он и от фишинга, потому что злоумышленник спокойно получит валидный сертификат на свой похожий домен. Наблюдателю по-прежнему видны адрес сервера, объём и тайминги трафика, а имя хоста утекает в SNI, пока не включён ECH.
Где спотыкаются
Записывают в список защиту от подмены DNS. Протокол ничего не делает с резолвингом: он лишь не даст соединению состояться, если предъявленный сертификат не подходит домену, и предупреждение покажет браузер.
Считают сертификат доверенного центра подтверждением честности сайта. Обычный сертификат подтверждает только контроль над доменом, выдаётся бесплатно за минуты и о владельце не говорит ничего.
Останавливаются на «данные шифруются» и не упоминают целостность и аутентификацию. Дальше разговор уходит в вопрос, зачем тогда куке флаг Secure, если всё и так по https, и ответа не находится.