VPN WireGuard принят в основной состав OpenBSD

Джейсон Доненфилд (Jason A. Donenfeld), автор VPN WireGuard, объявил о принятии в основной состав OpenBSD драйвера ядра «wg» для протокола WireGuard, реализации специфичного сетевого интерфейса и изменений инструментария, работающего в пространстве пользователя. OpenBSD стала второй ОС после Linux с полной и интегрированной поддержкой WireGuard. Включение WireGuard ожидается в выпуске OpenBSD 6.8.

Патчи включают драйвер для ядра OpenBSD, изменения для утилит ifconfig и tcpdump с поддержкой функциональности WireGuard, документацию и мелкие изменения для интеграции WireGuard с остальной системой. В драйвере используется собственная реализация алгоритмов blake2s, hchacha20 и curve25519, а также уже присутствующие в ядре OpenBSD реализацию SipHash.

Реализация совместима со всеми официальными клиентами WireGuard для Linux, Windows, macOS, *BSD, iOS и Android. Тестирование производительности на ноутбуке разработчика (Lenovo x230) показало пропускную способность на уровне 750mbit/s. Для сравнения isakmpd с базовыми настройками ike psk обеспечивает пропускную способность 380mbit/s.

При разработке драйвера для ядра OpenBSD были выбраны некоторые схожие с драйвером для Linux архитектурные решения, но драйвер в первую очередь разрабатывался для OpenBSD, с оглядкой на специфику данной системы и учитывая опыт, полученный при создании драйвера для Linux. При согласии изначального автора WireGuard код нового драйвера целиком распространяется под свободной лицензией ISC.

Драйвер тесно интегрируется с сетевым стеком OpenBSD и использует существующие подсистемы, что позволило сделать код очень компактным (около 3000 строк кода). Из отличий также отмечается иное, чем для Linux, разделение компонентов драйвера: специфичные для OpenBSD интерфейсы вынесены в файлы «if_wg.*», код для защиты от DoS в «wg_cookie.*», а логика согласования соединений и шифрования в «wg_noise.*».

Источник: opennet.ru