Как HTTPS защищает трафик
HTTPS превращает открытый канал HTTP в защищённый: данные шифруются, а сайт подтверждает свою подлинность.
HTTPS — это HTTP поверх протокола TLS, который обеспечивает шифрование трафика, проверку подлинности сервера и защиту от подмены данных в пути.
Что не так с обычным HTTP
По HTTP данные идут открытым текстом. Любой на пути — оператор Wi-Fi в кафе, провайдер, узел в сети — может их прочитать и даже изменить. Пароль, отправленный по HTTP, виден всем посредникам. Поэтому современный веб перешёл на HTTPS почти повсеместно.
Три гарантии TLS
- Конфиденциальность. Трафик зашифрован — посредник видит лишь нечитаемый поток.
- Целостность. Если данные подменят в пути, это будет обнаружено.
- Аутентичность. Сертификат подтверждает, что вы говорите именно с нужным сайтом, а не с подставным.
Узнаёте? Это конфиденциальность, целостность и (через подпись) подтверждение источника — те самые свойства из раздела про криптографию, собранные в одном протоколе.
Как происходит TLS-рукопожатие
Перед обменом данными браузер и сервер выполняют handshake. Упрощённо:
- Браузер подключается и запрашивает защищённое соединение.
- Сервер присылает свой сертификат с открытым ключом.
- Браузер проверяет сертификат по цепочке доверия до корневого CA и что он выдан для этого домена.
- С помощью асимметрии стороны безопасно договариваются об общем сеансовом симметричном ключе.
- Дальше весь трафик шифруется быстрым симметричным ключом.
Это ровно та гибридная схема из урока про шифрование: асимметрией договорились о ключе, симметрией шифруем данные.
Браузер --- запрос защищённого соединения --> Сервер
Браузер <-- сертификат + открытый ключ ------- Сервер
[браузер проверяет сертификат по цепочке CA]
Браузер --- согласование сеансового ключа --> Сервер
[дальше — симметрично зашифрованный обмен данными]
Что означает замок в адресной строке
Замок говорит лишь о том, что соединение зашифровано и сертификат валиден для этого домена. Он не гарантирует, что сайт честный: фишинговый сайт тоже может иметь валидный HTTPS. Поэтому замок — про защиту канала, а не про добропорядочность владельца. Всегда проверяйте сам домен в адресной строке.
Практические следствия
- Никогда не передавайте пароли и токены по HTTP — только по HTTPS.
- Ставьте флаг
Secureна cookie, чтобы они не уходили по открытому каналу. - Заголовок HSTS заставляет браузер всегда использовать HTTPS для сайта.
- Следите за сроком сертификата — просроченный отпугнёт пользователей предупреждением.
Итог
- HTTP открыт; HTTPS добавляет шифрование, целостность и подтверждение подлинности сайта через TLS.
- Рукопожатие проверяет сертификат и согласует сеансовый ключ по гибридной схеме.
- Замок означает защищённый канал, но не честность владельца сайта.
- Секреты передавайте только по HTTPS, используйте Secure-cookie и HSTS.