Народный

Технологии цензуры

SNI-блокировка — фильтрация TLS по Server Name Indication

Самый распространённый механизм блокировки веб-сайтов через DPI: цензор читает домен из открытого TLS SNI-поля и сравнивает его с черным списком, без расшифровки самого трафика.

Определение

SNI-блокировка — это техника цензуры, при которой DPI извлекает значение поля Server Name Indication из открытого ClientHello-пакета TLS-handshake’а и сравнивает его со списком запрещённых доменов; при матче соединение блокируется (через RST-injection или drop). Это самый дешёвый и распространённый способ фильтрации HTTPS-трафика в 2026 году — работает почти везде, где есть DPI.

Механика стала возможной из-за того, что SNI (RFC 6066, 2011) передаётся в TLS-handshake в открытом виде, чтобы веб-сервер с виртуальным хостингом понял, какой сертификат отдавать. То, что задумывалось как удобство для multi-tenant хостинга, стало главной дырой приватности HTTPS.

Как работает

DPI не нужно расшифровывать TLS, чтобы прочитать SNI — это plaintext-поле. Цепочка:

  1. ClientHello. Клиент шлёт серверу TLS-handshake. В extension’е server_name лежит plaintext домен (vpn-rating.xyz).
  2. DPI парсит ClientHello. На магистрали мониторящий пакеты движок видит TLS-handshake (порт 443, magic-byte 0x16 0x03 0x01 или 0x16 0x03 0x03), парсит extension list, достаёт SNI.
  3. Сравнение со списком. Бинарный поиск по отсортированному hash-list заблокированных доменов или wildcard-match (*.protonvpn.ch).
  4. Действие.
    • RST-injection — DPI шлёт обеим сторонам TCP RST.
    • Drop / null-route — пакет молча отбрасывается, клиент видит timeout.
    • Redirect — некоторые провайдеры (Иран, Туркменистан) редиректят на свою заглушку.

Variants:

  • Full match. Точное совпадение домена с blacklist’ом (facebook.com).
  • Suffix match. Совпадение по суффиксу (*.facebook.com).
  • Regex match. Современные ТСПУ-имплементации поддерживают regex ((amnezia|wireguard|proton).*).
  • Combined match. SNI + JA3 + IP — для уменьшения false-positives.

Применение в России 2026

ТСПУ реализует SNI-блокировку для подавляющего большинства публичных VPN-сервисов и социальных сетей. Заблокированные SNI на конец мая 2026 включают:

  • *.protonvpn.com, *.protonvpn.ch, *.nordvpn.com, *.expressvpn.com
  • *.openvpn.net (страница загрузки клиента — SNI достаточен)
  • *.amneziavpn.org, *.outline.network
  • LinkedIn, Instagram, Facebook (полные домены и subdomain)
  • В разное время — TG-DC, Discord-CDN, Cloudflare-edge (ip-block, не SNI)

Обходы:

  • ECH (Encrypted ClientHello). RFC 9180. SNI шифруется ECH-ключом домена. DPI видит SNI = cloudflare-ech.com (общий outer SNI). Внутри — реальный inner SNI к запретному сайту. Поддержка с Chromium 117+, Firefox 119+, на стороне сервера — Cloudflare и единичные хостинги. ТСПУ начал блокировать ECH-трафик целиком в 2024–2025, но фоном (не везде).
  • Domain Fronting. SNI = whitelisted-домен (azureedge.net), Host-header в HTTPS = настоящий. Большие облака закрыли в 2018, единичные edge’и (CDN77, Yandex) ещё держат.
  • VPN с маскировкой SNI. VLESS Reality — SNI = реальный whitelisted-сайт (microsoft.com), сервер прокси переписывает handshake. DPI не отличает от обычного HTTPS к Microsoft.
  • NaiveProxy, TLS-in-TLS защищённые протоколы — SNI к фасадному CDN.

Юзеру: если в браузере открывается https://www.google.com, но не открывается https://protonvpn.com с того же IP — это SNI-блок. Тест: curl -v --resolve protonvpn.com:443:<some-IP> https://protonvpn.com (если падает, значит DPI читает именно SNI а не IP).

Связанные термины

SNI — само поле. ECH — главное лекарство. DPI и TSPU — инфраструктура атаки. Domain Fronting — старая защита. VLESS Reality — современный обход.

Источники