Что такое HTTPS и что означает буква S в HTTPS?
Что проверяют
Понимаете ли вы разницу между HTTP и HTTPS на уровне, достаточном для проверки, а не для пересказа определения. Вопрос про букву намеренно простой: за ним обычно идёт продолжение о том, что именно вы проверяете в защищённом соединении и как.
Как отвечать
Буква S это Secure: тот же HTTP, но поверх TLS. Соединение даёт три вещи. Шифрование: перехватчик видит поток байтов, а не адреса страниц, пароли и содержимое форм. Подтверждение подлинности: сертификат, выданный доверенным центром, говорит, что на том конце именно этот домен. Целостность: изменение данных по дороге не проходит незаметно, соединение обрывается.
Дальше стоит перейти к проверкам. Что смотрит тестировщик: все ли переходы с незащищённого адреса заканчиваются перенаправлением на защищённый, нет ли смешанного содержимого, когда страница тянет картинку или скрипт по открытому протоколу, не истекает ли сертификат в ближайшее время и покрывает ли он поддомены, приходит ли заголовок строгой транспортной безопасности, стоят ли у сессионной куки флаги Secure и HttpOnly, не уезжают ли чувствительные значения параметрами адреса, ведь адрес целиком оседает в логах и истории.
Где спотыкаются
Считают, что HTTPS скрывает всё. Имя домена уходит открытым при согласовании соединения, размеры и время запросов видны со стороны, а защита касается только канала: уязвимый ввод, слабая авторизация и лишние данные в ответе остаются ровно там, где были.
Путают шифрование с аутентификацией. Самоподписанный сертификат тоже шифрует, но не доказывает, что на том конце нужный сервер, поэтому предупреждение браузера нельзя закрывать словами про тестовый стенд.
Не понимают, почему приложение перестаёт работать под перехватывающим прокси. Инструмент подменяет сертификат своим, и клиент с закреплением сертификата справедливо рвёт соединение: это ожидаемое поведение защиты, а не дефект сборки.