Ответ
При использовании HTTPS URL шифруется частично. Шифрование обеспечивается протоколом TLS, который инкапсулирует HTTP.
Что шифруется в TLS-туннеле:
- Путь (Path) и строка запроса (Query String): Часть URL после хоста и порта. Например, в
https://example.com/search?q=secretзашифрованы/search?q=secret. - Тело запроса (Request Body): Все данные, отправляемые методами POST, PUT и т.д.
- Заголовки HTTP (Headers): Включая cookies, authorization tokens, user-agent.
- Статус и тело ответа (Response).
Что НЕ шифруется и видно на сетевом уровне:
- Доменное имя (Hostname): Оно раскрывается в процессе:
- DNS-запроса (если не используется DNS over HTTPS/ TLS).
- ClientHello пакета TLS в расширении SNI (Server Name Indication), необходимо для того, чтобы сервер представил правильный сертификат при размещении нескольких сайтов на одном IP.
- IP-адрес назначения.
- Номер порта (обычно 443).
Практические последствия для DevOps/безопасности:
- Мониторинг и фильтрация: Провайдеры или корпоративные файрволы могут видеть, к каким доменам вы обращаетесь (через SNI/DNS), но не видят полный URL или данные.
- Угрозы: Атакующий в позиции "человек посередине" (MITM) может узнать, какие сайты посещает жертва.
- Меры усиления: Для сокрытия SNI можно использовать:
- Encrypted Client Hello (ECH) или его предшественник ESNI (Encrypted SNI), который шифрует имя сервера в TLS 1.3.
- DNS over HTTPS (DoH) или DNS over TLS (DoT) для шифрования DNS-запросов.
- VPN/Tor для маскировки всего трафика, включая IP-адрес.
Вывод: HTTPS защищает конфиденциальность передаваемых данных и параметров, но метаданные соединения (домен, IP) остаются видимыми.