SNI (Server Name Indication)

RFC 6066 · открыт в ClientHello · главная мишень цензуры

Что это

SNI (Server Name Indication) — расширение TLS, добавленное в RFC 3546 (2003), актуальная версия в RFC 6066 (2011). Позволяет клиенту сообщить серверу, к какому именно домену он хочет подключиться, ещё до установки шифрованного канала.

Зачем нужен

Один IP-адрес может хостить сотни сайтов (shared hosting, CDN). Когда браузер подключается по HTTPS, сервер должен ответить правильным сертификатом для запрашиваемого домена. Без SNI сервер не знал бы, какой сертификат отдать.

Пример: на IP 93.184.216.34 висят и example.com, и example.org. Клиент говорит: SNI: example.com → сервер отдаёт сертификат для example.com.

Где живёт в TLS handshake

SNI отправляется в ClientHello — самое первое сообщение TLS-хэндшейка, которое идёт в открытом виде по сети. Это его главная проблема с точки зрения приватности и обхода блокировок.

Как SNI используется для блокировок

Провайдер / ТСПУ / DPI смотрят в SNI:

Это основа современных блокировок в РФ — DNS уже давно недостаточно (обходится DoH), а по IP блочить неудобно (CDN-адреса общие). SNI — прямое и точное совпадение.

Как скрыть SNI

ECH (Encrypted Client Hello)

ECH — новое TLS-расширение, шифрует часть ClientHello (включая SNI) через ключ, полученный из DNS HTTPS-записи. Внедряется в Firefox, частично в Chrome и Cloudflare. В РФ Cloudflare-ECH заблокировали в конце 2024 — cм. детали.

Reality: SNI как оружие

Reality использует SNI наоборот: клиент шлёт SNI популярного сайта (например Microsoft), и Reality-сервер этот сайт как раз и имитирует. Для ТСПУ трафик выглядит как честный HTTPS к Microsoft, потому что и SNI и сертификат — настоящие.

Domain Fronting

Старая техника: SNI = невинный сайт, но HTTP Host-заголовок (после TLS) — реальная цель. Работало на Google/AWS/Cloudfront, потом все крупные провайдеры это запретили (Google в 2018, AWS в 2019).

Что видно, а что нет

Без ECHС ECH
IP назначениявидновидно
SNI (домен)видно в открытуюзашифрован
ALPN (h2/h1)виднозашифрован
Данные (после handshake)шифршифр

См. также

← на главную
← на главную