Cloudflare реализовала шифрование для SNI в процессе TLS-рукопожатия
Зашифрованный Server Name Indication снижает риск раскрытия имени хоста, с которым соединяется клиент.
В понедельник, 24 сентября, компания Cloudflare сообщила о добавлении поддержки зашифрованного Server Name Indication – механизма, усложняющего отслеживание активности пользователя в браузере. Зашифрованный Server Name Indication (encrypted SNI, ESNI) снижает риск раскрытия имени хоста, с которым соединяется клиент. В настоящее время ESNI является экспериментальным проектом и представляет собой расширение протокола TLS 1.3 и более поздних версий, где реализована возможность доставки сертификатов через зашифрованную часть TLS-рукопожатия.
Механизм работает путем публикации сервером открытого ключа в видимой для клиента записи DNS перед установкой соединения. С помощью ключа клиент может зашифровать Server Name Indication, тем самым защитив его в процессе передачи. После доставки в пункт назначения Server Name Indication расшифровывается. Процесс генерирования ключей поверх недоверенного канала осуществляется с использованием алгоритма Диффи-Хеллмана.
Для защиты незашифрованных DNS-запросов IP-адресов сайтов Cloudflare реализовала несколько технических решений. В частности, компания добавила поддержку DNS of TLS (DoT) и DNS over HTTPS (DoH), совмещенных с собственным сервисом DNS-резолвинга (1.1.1.1), благодаря чему DNS-запросы теперь скрыты от посторонних глаз.
Server Name Indication – расширение протокола TLS, позволяющее клиентам сообщать имя хоста, с которым он желает соединиться во время рукопожатия. Таким образом, сервер способен предоставлять несколько сертификатов на одном IP-адресе и TCP-порту, поэтому несколько HTTPS-сайтов или других сервисов поверх TLS могут работать на одном IP-адресе без использования одного и того же сертификата на всех сайтах.