Технологии цензуры
SNI — Server Name Indication
Расширение TLS, в котором браузер открыто передаёт имя домена в первом пакете handshake. Главная мишень DPI: даже зашифрованное соединение раскрывает, куда вы идёте.
Определение
SNI (Server Name Indication) — поле в первом TLS-сообщении (ClientHello), в котором клиент в открытом виде передаёт hostname, к которому подключается. Введено в RFC 6066 (2011), нужно потому, что один IP-адрес может обслуживать сотни сайтов через SNI-routing — сервер должен понять, какой сертификат подсунуть, ещё до того, как handshake завершится.
Парадокс SNI: TLS защищает содержимое сессии, но цель сессии (домен) передаётся открытым текстом. Именно по SNI DPI определяет, какой сайт открывает пользователь, и принимает решение блокировать или нет.
Почему SNI — главная мишень цензуры
Современная HTTPS-блокировка работает на 95% по SNI. Схема: DPI-устройство видит ClientHello, парсит SNI-поле, сверяет hostname со списком запрещённых. Если совпадение — пакет дропается или соединение получает TCP RST. Сертификат не проверяется, TLS не дешифруется, никакого MITM — просто чтение open-text поля внутри зашифрованного пакета.
ТСПУ и Великий Китайский Файрвол (GFW) используют одну и ту же логику. В РФ блокировка по SNI применяется к доменам Instagram, Facebook, LinkedIn, ряду VPN-сайтов; замедление YouTube — точно так же по *.googlevideo.com.
Как обходят SNI-блокировку
- ECH (Encrypted ClientHello) — преемник ESNI, шифрует SNI целиком. Браузер передаёт только public-key-server’а, реальный hostname скрыт. На 2026 поддерживается в Firefox и Chrome (под флагом), серверная сторона — Cloudflare. ТСПУ пока пропускает ECH, но мониторит распространение.
- SNI fragmentation — клиент дробит ClientHello на несколько TCP-сегментов так, чтобы SNI-поле оказалось разорвано между пакетами. DPI без stateful-reassembly не успевает собрать целевое имя.
- Domain Fronting — клиент пишет в SNI безопасный «фасадный» домен (был Google App Engine, сейчас рандомные CF-domains), а реальный target указывает в зашифрованном HTTP Host-header. Главные CDN (Google, Amazon, Cloudflare) запретили эту технику в 2018, но осколки остались.
- VLESS Reality — самый практичный обход 2026. Клиент пишет в SNI имя настоящего стороннего сайта (microsoft.com, www.bing.com), реальный туннель открывается на тот же IP, но к VPN-серверу. Reality-сервер проксирует «контрольный» TLS-handshake к настоящему microsoft.com, чтобы fingerprint совпадал.
Что видит обычный пользователь
Если сайт «не открывается через мобильный интернет, но открывается через VPN» — почти всегда это блокировка по SNI на ТСПУ. Если VPN перестал подключаться через час после установки — DPI распознал sni-паттерн handshake’а самого VPN (а не цели).
Проверить через какой именно SNI пройдёт ваш VPN — стандартная диагностика. Утилиты curl --resolve, openssl s_client -servername, расширения для Wireshark покажут SNI-поле в первом пакете.
Источники
- RFC 6066 — раздел 3 «Server Name Indication».
- draft-ietf-tls-esni — текущая спецификация ECH (2024).
- GFW Report — публикации о SNI-based blocking measurements.
Связанные термины
- DPI — основной потребитель SNI-данных.
- ECH — преемник, шифрующий SNI.
- VLESS Reality — практический обход.
- TLS 1.3 — версия TLS, в которой ECH работает корректно.