Джейсон Доненфилд выпустил долгожданный релиз WireGuard 1.0 для Windows вместе с драйверами WireGuardNT 1.0, обеспечивающими работу VPN WireGuard на ядре Windows 10 и 11. Новая версия поддерживает архитектуры AMD64, x86 и ARM64. Код ядровых компонентов открыт под лицензией GPLv2, а клиентская часть доступна под MIT.
Реализация WireGuardNT базируется на ядровой версии WireGuard для Linux, адаптированной под Windows с использованием сетевого стека NDIS. В отличие от wireguard-go, который работает в пространстве пользователя и применяет сетевой интерфейс Wintun, WireGuardNT значительно повышает производительность за счёт устранения перключений контекста и копирования пакетов между ядром и пользователем. Логика обработки протокола выполняется непосредственно в сетевом стеке, как в версиях для Linux, OpenBSD и FreeBSD.
Версия 1.0 включает важные улучшения: использование безопасной функции NdisWdfGetAdapterContextFromAdapterHandle() вместо нбезопасного хранения состояния драйвера, корректный мониторинг MTU через перехват системных вызовов и внедрение стандарта C23 в код.
WireGuard использует современные криптографические методы, включая потоковый шифр ChaCha20 и MAC Poly1305, обеспечивающие высокую скорость и безопасность без аппаратной поддержки. Генерация секретного ключа происходит через протокол Диффи-Хеллмана на кривой Curve25519, а для хеширования применяется алгоритм BLAKE2s.
Обмен открытыми ключами реализован по аналогии с SSH с механизмом Noise_IK из Noise Protocol Framework, что позволяет устанавливать соединения без отдельного демона. Передача данных происходит по UDP с поддержкой роуминга — смены IP VPN-сервера без разрыва связи и с автоматической настройкой клиента.
WireGuard развивается с 2015 года и уже доказал свою эффективность в крупных сетевых внедрениях, предлагая простое и надёжное VPN-решение с высокой производительностью.