Технологии цензуры
RST-injection — атака сбросом TCP-соединений
Активная техника DPI: цензор подделывает и шлёт обеим сторонам TCP-пакет с флагом RST после детекта подозрительного трафика, что моментально рвёт сессию без участия конечных узлов.
Определение
RST-injection — это активная цензурная атака, при которой посредник (DPI на магистрали) видит подозрительный TCP-поток и отправляет с подменённым source-IP пакет с флагом RST обеим сторонам соединения, заставляя их немедленно разорвать связь. Сам DPI при этом не в режиме in-line (не пропускает пакет через себя), он в режиме mirror — копию трафика анализирует, а решение реализует вбросом отдельных пакетов.
Атака известна с начала 2000-х и долгое время была главным инструментом GFW для блокировки Tor-bridge’ей и OpenVPN. На 2026 ТСПУ массово использует RST-injection против WireGuard UDP-handshake (через ICMP unreachable вместо RST), VLESS без Reality и nepoxa OpenVPN.
Как работает
RST-injection эксплуатирует базовую особенность TCP: любая сторона может разорвать соединение пакетом с флагом RST, и протокол обязан принять его без аутентификации. DPI на магистрали:
- Зеркалирует трафик. Магистральный маршрутизатор копирует пакеты на отдельный DPI-сервер (tap/SPAN port).
- Детектирует «подозрительность». Парсер DPI ищет TLS-handshake с подозрительным SNI, VLESS-сигнатуру, JA3-fingerprint xray-core, или просто IP из чёрного списка.
- Формирует RST. Получив (src_ip, src_port, dst_ip, dst_port, current_seq), DPI генерирует два TCP-пакета:
src=client_ip, dst=server_ipс RST и валидным seq — заставляет сервер закрыть state.src=server_ip, dst=client_ipс RST — заставляет клиент закрыть state.
- Отправляет в обе стороны. Пакеты идут с того же магистрального узла, что и легитимный трафик, обычно опережая ACK сервера на 1–50 мс.
- TCP-стек обеих сторон закрывает сессию. Reconnect-логика клиента — обычно бесполезна, потому что RST повторится.
UDP-вариант. Для UDP-протоколов (WireGuard, Hysteria-2, QUIC) RST не работает — нет понятия «соединение». Аналог — отправка ICMP Type 3 Code 3 (Destination Unreachable, Port Unreachable). Корректный UDP-стек закрывает socket, что эквивалентно RST.
Применение в России 2026
ТСПУ применяет RST-injection как реакцию первого уровня против сигнатурного DPI-сработки. Симптомы:
- Соединение к VPS живёт 5–30 секунд, потом резко рвётся.
- В логах nginx — внезапные 408/499 или connection reset by peer.
- В Wireshark — RST из ниоткуда, ttl сильно отличается от TTL легитимного трафика сервера (это признак вброса).
Защиты:
- Reality. VLESS Reality маскирует handshake под TLS к whitelisted-сайту — RST не срабатывает.
- Obfs4 / Shadowsocks-2022. Случайные первые байты + AEAD без plaintext-сигнатур не дают DPI зацепиться.
- MTU-tuning. На некоторых ТСПУ-узлах RST срабатывает только на пакеты с длиной выше threshold. Снижение MTU до 1280 иногда помогает (паллиатив, не лечение).
- Защита от UDP-блока. Для WireGuard и Hysteria-2 — AmneziaWG-обфускация хешей handshake, чтобы DPI не понял какой протокол.
Юзеру: если соединение к VPS стабильно рвётся через 10–30 сек после установки и Wireshark показывает RST с подозрительным TTL — это RST-injection. Не помогает смена IP, помогает смена протокола.
Связанные термины
DPI и TSPU — слой, где живёт injection-логика. Active probing — родственная активная техника. SNI-блокировка — частая причина срабатывания RST. Reality — основная защита 2026 года.
Источники
- Clayton, Murdoch, Watson — Ignoring the Great Firewall of China (2006), классическое описание RST-injection.
- GFW Report — TCP RST attacks — современные измерения.
- OONI Probe — детекция RST-injection в РФ и других странах.