Jason A. Donenfeld, autore di VPN WireGuard, un nel kernel OpenBSD come driver «wg» per il protocollo WireGuard, specifico per l'interfaccia di rete e strumenti operanti nello spazio utente. OpenBSD è diventato il secondo sistema operativo dopo con pieno e integrato supporto per WireGuard. L'inclusione di WireGuard è attesa nella versione OpenBSD 6.8.
Le patch includono un driver per il kernel OpenBSD, modifiche agli strumenti ifconfig e tcpdump con supporto per le funzionalità di WireGuard, documentazione e piccole modifiche per integrare WireGuard con il resto del sistema. Il driver utilizza un'implementazione proprietaria degli algoritmi , e , così come l'implementazione SipHash già presente nel kernel OpenBSD.
L'implementazione è compatibile con tutti i client ufficiali di WireGuard per Linux, Windows, macOS, *BSD, iOS e Android. I test delle performance su un laptop dello sviluppatore (Lenovo x230) hanno mostrato una larghezza di banda di 750 mbit/s. A titolo di confronto, isakmpd con impostazioni di base ike psk fornisce una larghezza di banda di 380 mbit/s.
Nello sviluppo del driver per il kernel OpenBSD sono state scelte alcune soluzioni architettoniche simili a quelle del driver per Linux, ma il driver è stato principalmente progettato per OpenBSD, tenendo conto delle specifiche di questo sistema e dell'esperienza acquisita nella creazione del driver per Linux. Con l'accordo dell'autore originale di WireGuard, il codice del nuovo driver è completamente distribuito sotto la licenza libera ISC.
Il driver si integra strettamente con lo stack di rete OpenBSD e utilizza sottosistemi esistenti, il che ha permesso di rendere il codice molto compatto (circa 3000 righe di codice). Tra le differenze si nota anche una diversa suddivisione dei componenti del driver rispetto a Linux: le interfacce specifiche per OpenBSD sono state spostate in file «if_wg.*», il codice di protezione contro DoS in «wg_cookie.*» e la logica di accordo delle connessioni e crittografia in «wg_noise.*».
Fonte: opennet.ru
