Для чего придумали HTTP и HTTPS
Что проверяют
Понимаете ли вы, что HTTPS это тот же HTTP внутри TLS, и что именно он защищает, а что нет.
Как отвечать
HTTP это протокол передачи гипертекста: текстовый запрос-ответ поверх TCP, придуман для обмена документами и ссылками между ними. Он не помнит предыдущий запрос, поэтому масштабируется, а состояние держат cookie и токены.
HTTPS это тот же HTTP, но внутри защищённого канала TLS. Он даёт три вещи:
- шифрование: посредник видит адрес сервера и объём трафика, но не содержимое и не путь запроса;
- целостность: изменённые по дороге данные будут отвергнуты. Без этого провайдеры вставляли рекламу в чужие страницы;
- подлинность: сертификат подтверждает, что сервер именно тот, за кого себя выдаёт, и это защищает от подмены.
Как устанавливается: рукопожатие TLS согласует версию и шифры, сервер присылает сертификат, клиент проверяет его по цепочке доверия, стороны получают общий сеансовый ключ. Дальше идёт обычный HTTP.
Почему сегодня везде HTTPS: часть возможностей браузера без него просто выключена (геолокация, камера, сервис-воркеры), поисковики учитывают его в ранжировании, а сертификаты бесплатны и выпускаются автоматически.
Где спотыкаются
Говорят, что HTTPS «шифрует сайт». Он защищает канал, а не хранилище: дыра в приложении остаётся дырой.
Считают, что HTTPS скрывает домен. Имя сервера видно, скрыто содержимое.
Путают шифрование и подпись сертификата.
Не знают, что порт 443 это соглашение, а не часть протокола.