«У меня же HTTPS, зелёный замочек — что ещё нужно» — распространённое заблуждение. HTTPS закрывает многое, но не всё, что видно сети, к которой вы подключены.
DNS-запрос — первый шаг, который часто не защищён
Перед тем как открыть сайт, устройство спрашивает DNS-сервер: какому IP-адресу соответствует это доменное имя. Если этот запрос идёт в открытом виде — а по умолчанию часто так и есть, — сеть видит доменное имя ещё до того, как начнётся само HTTPS-соединение.
Это касается каждого сайта, который вы открываете за сессию — DNS-запросы формируют довольно точную картину того, чем вы пользуетесь, даже если содержимое каждой отдельной страницы зашифровано.
SNI: имя хоста в открытом виде даже при HTTPS
На старте HTTPS-соединения браузер отправляет серверу поле SNI (Server Name Indication) — имя хоста, к которому подключается. Это нужно, чтобы сервер понял, какой сертификат выдать, если на одном IP размещено несколько сайтов.
SNI по историческим причинам передаётся в открытом виде в классическом TLS-рукопожатии. Значит, сеть видит имя хоста, даже когда содержимое страницы дальше полностью зашифровано.
Метаданные: объём и тайминг
Даже без доступа к содержимому сеть видит объём переданных данных, длительность соединения и его частоту. Этого достаточно, чтобы с высокой вероятностью отличить, скажем, видеозвонок от текстовой переписки — по паттерну трафика, а не по содержимому.
Что не защищено, если сайт вообще без HTTPS
Меньшинство сайтов до сих пор отдаёт часть содержимого по обычному HTTP. В этом случае сеть — и любой, кто технически способен её прослушивать, — видит содержимое страницы целиком: текст, изображения, данные форм, если они не защищены дополнительно.
Что меняется с VPN
Зашифрованный туннель переносит весь этот набор проблем на один уровень выше: DNS-запросы и SNI по-прежнему существуют, но идут внутри туннеля, до VPN-узла — локальная сеть отеля или кафе видит только зашифрованный поток к одному адресу, а не имена доменов и не объём трафика по каждому сайту отдельно.
Вопросы по теме
Значит, обычный HTTPS ничего не защищает?
Защищает — содержимое конкретной страницы: текст, изображения, данные форм при отправке. Не защищает метаданные вокруг соединения: DNS-запрос, SNI, объём и тайминг трафика.
Может ли сеть подменить DNS-ответ?
Технически да, если DNS-запросы идут в открытом виде и сеть настроена на подмену ответов — это отдельный класс атак, DNS spoofing. VPN, который заворачивает DNS-запросы внутрь туннеля, убирает эту точку у локальной сети.
VPN скрывает вообще всё?
Нет — сеть, к которой вы подключены, по-прежнему видит сам факт подключения к VPN-узлу. А то, что видит уже сам VPN-узел на выходе в интернет, зависит от его политики логирования, а не от протокола шифрования.