Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

AWG_PSK_INVALID_PAYLOAD Сетевое оборудование и VPN

AmneziaWG: Ошибка Pre-Shared Key (PSK) в обфусцированном рукопожатии

Обновлено: 25.08.2026 · Официальная документация ↗
  • Рукопожатие не может завершиться, несмотря на корректность публичных и приватных ключей интерфейса.
  • В отладочном журнале wireguard-go фиксируется: Keypair negotiation failed: invalid PSK mac2 calculation.
  • Клиент отправляет запросы, но сервер фиксирует ошибки дешифрации симметричного конверта.
  • Соединение мгновенно разрывается сразу после отправки первого пакета Handshake Initiation.

1. Роль Pre-Shared Key в защите от квантовых атак и DPI

В AmneziaWG симметричный ключ PresharedKey подмешивается в криптографический протокол Noise IKpsk2. Если в конфиге указан невалидный PSK или длина ключа не равна строго 32 байтам (256 бит), процесс дешифрации сессионных ключей терпит сбой.

2. Проверка и генерация корректного PSK

# Генерация нового 256-битного PSK ключа через утилиту awg
awg genpsk > /tmp/preshared.key
cat /tmp/preshared.key

# Альтернативная генерация через OpenSSL
openssl rand -base64 32

3. Проверка синтаксиса в конфигурационных файлах

Убедитесь, что PSK прописан в секции [Peer] и совпадает до символа на обеих сторонах:

# Серверный конфиг awg0.conf
[Peer]
PublicKey = <Client_Public_Key>
PresharedKey = dGhpcyBpcyBhIHZhbGlkIDMyLWJ5dGUgcHNrIGtleSE=
AllowedIPs = 10.8.0.2/32

# Клиентский конфиг
[Peer]
PublicKey = <Server_Public_Key>
PresharedKey = dGhpcyBpcyBhIHZhbGlkIDMyLWJ5dGUgcHNrIGtleSE=
Endpoint = 203.0.113.10:51820
AllowedIPs = 0.0.0.0/0

4. Тестирование соединения без PSK (для локализации проблемы)

Закомментируйте строчку PresharedKey на клиенте и сервере, перезапустите интерфейсы и проверьте, поднимается ли базовый Handshake.

💡 Практика специалистов: Если вы редактируете конфигурационные файлы в текстовых редакторах Windows (Notepad), сохраняйте файлы строго в кодировке UTF-8 без BOM, чтобы избежать внедрения паразитных невидимых байтов в заголовок PSK ключа.

Частые вопросы (FAQ)

Является ли параметр PresharedKey обязательным в AmneziaWG?

Нет, PSK опционален. Однако его использование крайне рекомендуется в качестве дополнительного слоя постквантовой защиты и защиты от активного зондирования DPI.

Почему при ошибке PSK в логах нет явного сообщения 'Wrong Key'?

Протокол Noise намеренно спроектирован так, чтобы не выдавать наружу явных сообщений об ошибках аутентификации ради противодействия тайминг-атакам.

Могут ли пробелы или символы перевода строки испортить ключ PSK?

Да, невидимые символы CRLF (перевод строки Windows) или пробелы в конце строки Base64 делают ключ невалидным при парсинге.

Можно ли использовать один PSK для всех клиентов сервера?

Технически да, но с точки зрения безопасности каждому пиру следует генерировать свой собственный уникальный PresharedKey.

Полезные материалы
Рекомендуем