Вышла версия WireGuard 1.0 для Windows с поддержкой нескольких архитектур

Джейсон Доненфилд представил первую крупную версию клиентского ПО WireGuard для Windows — 1.0, а также драйверы WireGuardNT 1.0, совместимые с ядрами Windows 10 и 11 на архитектурах AMD64, x86 и ARM64. Компоненты для ядра Windows распространяются под лицензией GPLv2, а клиентское ПО — под MIT.

WireGuard 1.0 для Windows базируется на коде реализации для Linux, адаптированном под сетевой стек NDIS и сущности ядра Windows. По сравнению с wireguard-go, работающим в пользовательском пространстве, WireGuardNT обеспечивает значительно большую производительность за счёт исключения операций переключения контекста и копирования данных между ядром и пользователем. Логика протокола выполняется непосредственно на уровне сетевого стека, подобно версиям для Linux, OpenBSD и FreeBSD.

В этом релизе решены важные задачи: применяется более безопасный способ хранения состояния драйвера через NdisWdfGetAdapterContextFromAdapterHandle(), реализован точный контроль MTU через перехват системных вызовов и использован стандарт C23. WireGuard, разработанный с 2015 года, применяет современные методы шифрования, включая ChaCha20 и Poly1305, а также протоколы Curve25519 и BLAKE2s, обеспечивая высокую скорость и безопасность.

Обмен ключами в WireGuard напоминает SSH, используя Noise_IK из Noise Protocol Framework для установления соединения без дополнительного демона. Передача данных происходит через UDP с поддержкой роуминга — смены IP VPN-сервера без разрыва соединения. WireGuard зарекомендовал себя как простое и надёжное решение для крупных проектов с высоким трафиком.