Джейсон Доненфилд (Jason A. Donenfeld), автор VPN WireGuard, о в основной состав OpenBSD драйвера ядра «wg» для протокола WireGuard, специфичного сетевого интерфейса и инструментария, работающего в пространстве пользователя. OpenBSD стала второй ОС после с полной и интегрированной поддержкой WireGuard. Включение WireGuard ожидается в выпуске OpenBSD 6.8.
Патчи включают драйвер для ядра OpenBSD, изменения для утилит ifconfig и tcpdump с поддержкой функциональности WireGuard, документацию и мелкие изменения для интеграции WireGuard с остальной системой. В драйвере используется собственная реализация алгоритмов , и , а также уже присутствующие в ядре 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
