Джейсон Доненфилд (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
