Censored► Показать
В России внедрён новый метод цензурной блокировки трафика, особенно на мобильных сетях. Он направлен на обнаружение и блокировку зашифрованных подключений (чаще всего — обходов блокировок вроде VLESS+Reality, Shadowsocks, HTTPS-прокси и т. д.).
Метод основан не на содержимом трафика, а на анализе поведения соединений:
⸻
Как работает блокировка:
1. Клиент подключается к серверу через HTTPS (TLS 1.3). Это может быть реальный сайт или трафик, замаскированный под HTTPS (например, VLESS с Reality имитирует HTTPS-соединение).
2. Если IP-адрес сервера подозрительный, например:
• он находится за границей (вне России),
• принадлежит хостинг-провайдеру (например, Hetzner, DigitalOcean),
• находится в AS (автономной системе), известной тем, что через неё идут обходы блокировок,
— то этот трафик попадает под подозрение.
3. Цензор отслеживает объём полученных данных по одному TCP-соединению.
Если клиент получает более ~15-20 КБ данных от сервера в рамках одного TCP-соединения, то:
⸻
Что делает цензор?
• Он не отправляет RST (reset) — то есть не разрывает соединение явно.
• Он просто перестаёт пропускать пакеты от сервера к клиенту.
• В результате клиент “висит” в ожидании ответа, но данных не поступает — соединение “замораживается”.
• Спустя какое-то время клиент получает timeout (истечение времени ожидания).
⸻
Почему это работает?
Цензор не анализирует содержимое трафика (так как всё зашифровано).
Он анализирует форму поведения соединения:
• Идёт ли трафик по TLS 1.3?
• Подключается ли клиент к “подозрительному” IP?
• Сколько данных сервер отдал клиенту в рамках одного TCP-соединения?
⸻
Как это обходят?
Если разбить большой объём данных на мелкие порции, и каждую порцию отправлять в новом TCP-соединении, то блокировка не срабатывает.
Пример:
• Вместо одного соединения, в котором клиент скачивает 50 МБ, создаётся много коротких соединений, каждое передаёт только 10-15 КБ.
• Это обходит фильтр, так как в каждом отдельном соединении цензор не видит превышения лимита.
• Но это значительно замедляет передачу данных, и создаёт аномально большое количество TCP-соединений, что само по себе может стать подозрительным.
⸻
Важно не путать:
• Это не TCP-фрагментация — разбивка на пакеты внутри одного соединения не помогает.
• Это не деление HTTP-запросов — если ты делаешь несколько HTTP-запросов в рамках одного соединения, это тоже не помогает.
• Надо именно создавать новые TCP-соединения для каждой части данных.
⸻
Вывод
Это форма поведенческой DPI-фильтрации (deep packet inspection), но без дешифровки — цензор анализирует:
• Кто подключается (IP),
• Какой протокол (TLS 1.3),
• Сколько данных отдано,
• И “замораживает” соединение, если что-то не понравилось.
Это затрудняет использование некоторых протоколов обхода блокировок, особенно в мобильных сетях.