Все статьи
Технологии

AmneziaWG: что такое obfuscation и почему провайдеры не блокируют

AmneziaWG прячет WireGuard под джанк-пакетами и переменной структурой. Разбираем какие именно параметры за что отвечают.

Обычный WireGuard блокируется потому, что его первый пакет (Handshake Initiation) имеет фиксированную структуру: 4 байта type=0x01, 4 байта sender_id, 32 байта unencrypted_ephemeral, и так далее. Эту последовательность DPI запоминает и ловит.

AmneziaWG добавляет несколько слоёв шума, чтоб эту последовательность размыть.

Параметр Junk (Jc, Jmin, Jmax)

Перед началом реального WireGuard-handshake клиент шлёт Jc (junk count) случайных пакетов случайной длины от Jmin до Jmax байт. DPI видит мусор, который никуда не ведёт — и теряет «зацепку».

Типично: Jc=4, Jmin=40, Jmax=70. Можно настраивать индивидуально.

Параметры S1, S2 — байты-наполнители

В Handshake Initiation добавляются S1 случайных байт до UDP-payload, и S2 байт после. Сдвигает позицию характерных байтов, чтобы DPI-сигнатуры «не цеплялись».

Параметры H1-H4 — изменение header magic

WireGuard в первом байте имеет тип пакета: 1=initiation, 2=response, 3=cookie, 4=data. DPI может смотреть «есть UDP-пакет с первым байтом 0x01 → возможно, WireGuard initiation».

AmneziaWG позволяет указать кастомные значения H1-H4 (32-битные числа) вместо стандартных 1-4. Каждый сервер может иметь свои уникальные H1-H4 → создать «одно правило DPI для всех AmneziaWG» нельзя.

Что это даёт

  • Нет фиксированной сигнатуры в первом пакете — DPI ничего не может матчить.
  • Каждое развёртывание уникально — нельзя добавить одно правило и накрыть всех.
  • Внешне трафик — это «странный UDP-поток с шифрованными данными». Таких потоков в интернете полно — игры, голос, видео-стримы. Блокировать их «по подозрению» — это положить много легитимного трафика.

Криптография

Внутри AmneziaWG использует ту же ChaCha20-Poly1305 (для AEAD) и X25519 (для key exchange), что обычный WireGuard. Скорость почти такая же — обфускация работает только в момент handshake, потом идёт чистый WireGuard.

Минусы

  • Чуть выше нагрузка на старте соединения за счёт junk-пакетов.
  • Не работает с обычными WireGuard-клиентами — нужен либо официальный Amnezia-клиент, либо наш WGate, либо AmneziaWG-aware сборка WireGuard.

WProxy использует AmneziaWG только в Android-приложении WGate. Параметры obfuscation мы подбираем автоматически под текущую ситуацию с блокировками — вам не надо настраивать руками.

Попробовать WProxy

Один аккаунт — пять протоколов

MTProto, Hysteria, VLESS, AmneziaWG и Whitelist — пять протоколов под разные задачи, каждый подключается отдельно. Регистрация бесплатная, на старте хватит 100 ₽ чтобы попробовать.

Приложение WGate для Android

AmneziaWG и Whitelist-VPN в один тап. Только Android.

Скачать WGate.apk

Читать дальше