Так как никто не предоставил захват провода, вот один.
Имя сервера (доменная часть URL-адреса) представлено в пакете ClientHello
, в виде обычного текста .
Ниже показан запрос браузера:
https://i.stack.imgur.com/path/?some=parameters&go=here
См. Этот ответ , чтобы узнать больше о полях версий TLS (их 3, а не версии, каждый из которых содержит номер версии!)
С https://www.ietf.org/rfc/rfc3546.txt:
3,1. Индикация имени сервера
[TLS] не предоставляет клиенту механизм, чтобы сообщить серверу
имя сервера, с которым он связывается. Может быть желательно для
клиенты предоставляют эту информацию для облегчения безопасного
подключения к серверам, на которых размещены несколько «виртуальных» серверов на
один базовый сетевой адрес.
Для предоставления имени сервера клиенты МОГУТ включать
расширение типа "имя_сервера" в (расширенном) клиенте привет.
Короче говоря:
FQDN (доменная часть URL) МОЖЕТ передаваться открытым внутри пакета ClientHello
, если используется расширение SNI
Остальная часть URL (/path/?some=parameters&go=here
) не имеет смысла находиться внутри ClientHello
, поскольку URL-адрес запроса является HTTP-компонентом (OSI Layer 7), поэтому он никогда не будет отображаться при рукопожатии TLS (Layer 4 или 5). Это будет позже в GET /path/?some=parameters&go=here HTTP/1.1
HTTP-запросе, ПОСЛЕ Установлен безопасный TLS-канал.
ИСПОЛНИТЕЛЬНОЕ РЕЗЮМЕ
Доменное имя МОЖЕТ быть передано в открытом виде (если расширение SNI используется при квитировании TLS), но URL (путь и параметры) всегда шифруются.
МАРТ 2019 ОБНОВЛЕНИЕ
Спасибо carlin.scott за то, что подняли этот.
Полезная нагрузка в расширении SNI теперь может быть зашифрована с помощью этого проекта RFC . Эта возможность существует только в TLS 1.3 (как опция, и его реализация возможна обоими сторонами), и обратной совместимости с TLS 1.2 и ниже не существует.
CloudFlare делает это, и вы можете прочитать больше о внутренностях здесь & mdash;
Если курица должна быть раньше яйца, куда вы положите курицу?
На практике это означает, что вместо передачи полного доменного имени в виде обычного текста (как показано в захвате Wireshark), теперь оно шифруется.
ПРИМЕЧАНИЕ: Это касается аспекта конфиденциальности больше, чем аспект безопасности, так как обратный поиск DNS МОЖЕТ в любом случае выявить целевой хост назначения.