AmneziaWG — модифицированный протокол WireGuard¶
AmneziaWG — это форк протокола VPN WireGuard, разработанный российской командой Amnezia VPN с целью обхода блокировок. В отличие от оригинального WireGuard, трафик которого легко распознаётся DPI-системами по характерной структуре рукопожатия, AmneziaWG модифицирует формат пакетов, делая VPN-соединение неотличимым от обычного HTTPS-трафика.
¶История и назначение
Проект Amnezia VPN создан российскими разработчиками как решение для обхода цензуры в интернете. Оригинальный протокол WireGuard, несмотря на высокую скорость и простоту, использует фиксированный формат пакетов: определённую структуру заголовков, известные значения полей и характерные размеры сообщений рукопожатия (handshake). Эти особенности позволяют системам глубокого анализа пакетов (DPI) с высокой точностью выявлять WireGuard-трафик и блокировать его на уровне провайдера.
В России и ряде других стран с развитой системой интернет-цензуры блокировки WireGuard стали массовыми. В ответ команда Amnezia разработала протокол AmneziaWG, который сохраняет архитектуру и криптографию WireGuard, но изменяет формат сетевых пакетов так, чтобы их нельзя было отличить от разрешённого трафика.
¶Технические особенности
AmneziaWG наследует от WireGuard криптографическую основу: Curve25519 для обмена ключами, ChaCha20-Poly1305 для шифрования, BLAKE2s для хеширования и SHA-256 для функции HMAC. Протокол использует тот же механизм Noise Protocol Framework для установления сессии.
Ключевые отличия от оригинального WireGuard:
- Переменные значения полей заголовков. В оригинальном WireGuard некоторые поля имеют фиксированные значения, которые служат «отпечатком» протокола. AmneziaWG позволяет задавать произвольные значения этих полей (так называемые junk-параметры), что скрывает сигнатуру.
- Случайная длина пакетов рукопожатия. AmneziaWG добавляет к сообщениям инициации и ответа на инициацию случайные данные, из-за чего размер пакетов перестаёт быть константным и DPI не может определить протокол по длине.
- Маскировка под другие протоколы. При правильной настройке параметров пакеты AmneziaWG могут выглядеть как трафик WireGuard, OpenVPN или даже как произвольные UDP-пакеты, совпадающие с разрешёнными протоколами.
- Обход по глубине пакета. Некоторые DPI-системы анализируют не только заголовки, но и содержимое. AmneziaWG шифрует всё полезное нагрузки, поэтому содержимое пакета не выдаёт протокол.
¶Настройка и использование
AmneziaWG реализован в виде модификации клиентов и серверов WireGuard. Официальные клиенты Amnezia VPN поддерживают протокол на Windows, macOS, Linux, Android и iOS. Также существует самостоятельная реализация для серверов на базе модифицированного ядра Linux (модуль amneziawg вместо wireguard).
Параметры, определяющие маскировку, задаются в конфигурационном файле клиента и сервера. Основные из них:
| Параметр | Назначение |
|---|---|
Jc | Количество junk-полей в заголовке |
Jmin | Минимальная длина junk-данных |
Jmax | Максимальная длина junk-данных |
S1–S2 | Размеры скрытия в заголовках |
H1–H4 | Режимы обработки заголовков |
Правильная комбинация этих параметров позволяет подобрать «отпечаток» пакетов, который не будет распознан DPI. Существуют готовые профили настроек для обхода блокировок в России, Иране, Китае и других странах.
¶Распространение
AmneziaWG получил широкое распространение в России после ужесточения блокировок VPN-протоколов в 2023–2024 годах, когда провайдеры начали массово ограничивать не только WireGuard, но и протоколы OpenVPN и VLESS. Протокол стал одним из основных способов обхода блокировок, наряду с Xray/VLESS и Shadowsocks.
Проект распространяется свободно, исходный код доступен на GitHub. Amnezia VPN позиционируется как некоммерческий инструмент, финансируемый за счёт пожертвований.
¶Ограничения
Протокол не гарантирует обход блокировок: при появлении у DPI-систем сигнатур конкретных конфигураций AmneziaWG блокировка становится возможной. Кроме того, использование нестандартных значений полей может снижать скорость соединения из-за дополнительной обработки пакетов. Протокол не является анонимным: провайдер или сторонний наблюдатель может видеть факт подключения к VPN-серверу, хотя содержимое трафика остаётся зашифрованным.
¶Источники
- Официальный сайт Amnezia VPN
- Репозиторий проекта AmneziaVPN на GitHub
- Документация AmneziaWG
- Материалы о работе DPI-систем и методах их обхода
