Протоколы
WireGuard-obfs — обфускации WireGuard для обхода DPI
Семейство модификаций WireGuard, скрывающих сигнатуру протокольного handshake'а: добавление случайного padding, junk-пакетов, рандомизация длин — реализованы в AmneziaWG, WireProxy, mlkem-wg и других форках.
Определение
WireGuard-obfs — это собирательное название набора модификаций (форков и параллельных реализаций) WireGuard, решающих одну общую задачу: скрыть характерную сигнатуру handshake-сообщений протокола от DPI. Базовый WireGuard имеет хорошо известные magic-bytes в первых пакетах (тип сообщения 0x01 для initiator, фиксированная длина 148 байт, паттерн ChaCha20+Poly1305 nonce), что делает его легко детектируемым.
В России и Иране базовый WireGuard работает нестабильно с 2023 года: ТСПУ детектирует handshake и шлёт ICMP unreachable, ломая UDP-state. WireGuard-obfs — это попытки сообщества вернуть протокол в строй.
Как работает
Все imple WireGuard-obfs работают на одном уровне: меняют байтовое представление первых handshake-пакетов и/или добавляют шум, не трогая криптографию. Конкретные техники:
- Junk packets. Перед настоящим handshake клиент шлёт N случайных UDP-пакетов случайной длины. DPI начинает state-tracking «странной сессии», не успевает классифицировать.
- Initial packet padding. Handshake-init пакет (148 байт в ванилле) дополняется случайным padding’ом до variable длины (200–800 байт). Это ломает signature-match по точной длине.
- Magic-byte XOR. Первые байты handshake (
0x01000000,0x02000000для типов сообщений) XOR-ятся со случайным per-session salt, согласованным заранее. - Junk header. Перед первыми пакетами клиент шлёт «junk header» — псевдо-HTTP, фейк-DNS или просто рандом. Если DPI ожидает WireGuard-сигнатуру с первого пакета, она не сработает.
- Random response timing. Сервер задерживает первый ответ на случайное время (10–500 мс), чтобы сбить тайминг-анализ.
Конкретные реализации:
- AmneziaWG — самый известный форк, разработан командой Amnezia VPN. Поддерживает все 5 техник + параметризацию через S1/S2/H1-H4 параметры. Используется в Amnezia, FastNetMon, mullvad-test-fork. Открытая спецификация.
- WireProxy с obfs-mode. Не сам WG, а user-space proxy с обфусцированным handshake.
- mlkem-wg. Эксперимент с post-quantum + obfs (Mullvad).
- OpenVPN-over-WG. Не обфускация но related: VPN-провайдер раскатывает WG туннель и поверх него ещё OpenVPN с TLS-обфускацией.
Не путать с obfs4. Obfs4 — это transport для Tor, никак не связан с WireGuard кроме общей идеи «скрыть сигнатуру».
Применение в России 2026
WireGuard-obfs (в основном через AmneziaWG) — основной способ использовать WG в РФ в 2026. Стандартные сценарии:
- Свой VPS с AmneziaVPN. Amnezia-клиент поднимает на VPS AmneziaWG сервер, конфигурирует под whitelist’ом обфускационных параметров. Один из самых надёжных setup’ов для РФ.
- Mullvad / IVPN с AmneziaWG. Некоторые публичные VPN-сервисы подключили AmneziaWG как опцию для российских юзеров.
- TG-боты обхода. Некоторые приватные сервисы выдают AmneziaWG конфиги для Telegram-юзеров.
Параметры обфускации (S1, S2, H1-H4):
- S1 — junk packets count (1–10), число случайных пакетов перед handshake.
- S2 — junk packets size (10–1000 байт), длина каждого.
- H1-H4 — magic bytes XOR-key для разных типов сообщений (initiator, responder, cookie, transport).
ТСПУ научилось распознавать стандартный AmneziaWG-конфиг (с default S1=4, S2=148), поэтому ротация параметров важна. Хороший провайдер использует случайные параметры на пользователя.
Минусы:
- Throughput. Junk-пакеты съедают 5–10% bandwidth.
- Установка handshake. На 50–200 мс медленнее ванильного WG.
- MTU-tuning. Из-за padding’а нужно понижать MTU клиента (обычно 1280).
- Меньше клиентов. Не все WG-клиенты поддерживают AmneziaWG (только AmneziaVPN, Wireguard-tools fork, отдельные mobile-apps).
Юзеру: если VPS-based WG VPN перестал работать в РФ — первым шагом попробовать AmneziaWG. Если не помогает — переходить на VLESS Reality.
Связанные термины
WireGuard — базовый протокол. AmneziaWG — главная имплементация obfs. Obfuscation — общая категория. DPI и TSPU — противники.
Источники
- AmneziaWG specification — открытый спек.
- WireGuard paper — оригинал, чтобы понять что обфусцируется.
- Censored Planet — WireGuard blocking analysis — измерения блокировок WG.