amnezia-3-0/internals.md — новая заметка с внутренним устройством третьего
поколения, верифицированным по тегу v3.0.3 движка amneziawg-go:
- полный список параметров устройства с ключами UAPI и разделением на
серверные (обязаны совпадать) и клиентские;
- порядок сборки исходящего пакета и перестановка относительно 2.0:
место под паддинг S4 резервируется до шифрования, а не сдвигом готового
пакета вправо;
- механика header protection: ChaCha20 без аутентификации, nonce из первых
12 байт криптопаддинга, что именно шифруется у каждого типа сообщений;
- приёмный трюк с typeHash — шифрование блока нулей даёт первые 4 байта
потока ключа, которыми расшифровывается только поле типа;
- wire-format транспортного пакета и сообщения инициации;
- content padding и тайминги: где берётся PickOne, а где границы диапазона;
- keepalive теперь получает S4 и content padding —改善, не отмеченное
ни в README, ни в анонсах (в 2.0 keepalive весил ровно 32 байта);
- анализ: закрыты сигнатуры по содержимому и признак keepalive, остались
постоянные размеры рукопожатий, молчание на активное зондирование и
профиль потока данных;
- ловушки: сообщение об ошибке нумерует S-параметры с нуля, требование
≥12 распространяется на все четыре значения, README до 31 июля указывал 8.
Добавлена шапочная иллюстрация amnezia-3-0/attachments/awg3-header.webp
в reference.md; проставлены перекрёстные ссылки из reference.md,
client-5-0-0-5.md, amnezia-2-0/reference.md и protocols/00-overview.md.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>