25.09.2020

В ядро NetBSD добавлена поддержка VPN WireGuard


Разработчики проекта NetBSD сообщили о включении в основной состав ядра NetBSD драйвера wg с реализацией протокола WireGuard. NetBSD стала третей ОС после Linux и OpenBSD с интегрированной поддержкой WireGuard. Также предложены сопутствующие команды для настройки VPN — wg-keygen и wgconfig. В конфигурации ядра по умолчанию (GENERIC) драйвер пока не активирован и требует явного указания в настройках «pseudo-device wg».

Дополнительно можно отметить публикацию корректирующего обновления пакета wireguard-tools 1.0.20200820, включающего работающие в пространстве пользователя утилиты, такие как wg и wg-quick. В новом выпуске проведена подготовка IPC к предстоящей поддержке WireGuard в операционной системе FreeBSD. Осуществлено разделение по разным файлам специфичного для разных платформ кода. В unit-файл для systemd добавлена поддержка команды «reload», что позволяет запускать конструкции вида «systemctl reload wg-quick at wgnet0».

Напомним, что VPN WireGuard реализован на основе современных методов шифрования, обеспечивает очень высокую производительность, прост в использовании, лишён усложнений и хорошо зарекомендовал себя в ряде крупных внедрений, обрабатывающих большие объёмы трафика. Проект развивается с 2015 года, прошёл аудит и формальную верификацию применяемых методов шифрования. Поддержка WireGuard уже интегрирована в NetworkManager и systemd, а патчи для ядра входят в базовый состав дистрибутивов Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph и ALT.

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

Для шифрования используется потоковый шифр ChaCha20 и алгоритм аутентификации сообщений (MAC) Poly1305, разработанные Дэниелом Бернштейном (Daniel J. Bernstein), Таней Ланге (Tanja Lange) и Питером Швабе (Peter Schwabe). ChaCha20 и Poly1305 позиционируются как более быстрые и безопасные аналоги AES-256-CTR и HMAC, программная реализация которых позволяет добиться фиксированного времени выполнения без задействования специальной аппаратной поддержки. Для генерации совместного секретного ключа применяется протокол Диффи-Хеллмана на эллиптических кривых в реализации Curve25519, также предложенной Дэниелом Бернштейном. Для хеширования используются алгоритм BLAKE2s (RFC7693).

Источник: https://www.opennet.ru/opennews/art.shtml?num=53596

Добавить комментарий