VPN WireGuard è integrato in OpenBSD

Jason A. Donenfeld, autore di VPN WireGuard, annunciato о accettazione nel driver principale del kernel OpenBSD "wg" per il protocollo WireGuard, implementazione interfaccia di rete specifica e cambiamento toolkit in esecuzione nello spazio utente. OpenBSD è diventato il secondo sistema operativo successivo Linux con supporto completo e integrato per WireGuard. Si prevede che WireGuard sarà incluso nella versione OpenBSD 6.8.

Le patch includono un driver per il kernel OpenBSD, modifiche alle utilità ifconfig e tcpdump per supportare la funzionalità WireGuard, documentazione e modifiche minori per integrare WireGuard con il resto del sistema. Il driver utilizza la propria implementazione di algoritmi Blake2s, hchacha20 и curva25519, così come l'implementazione di SipHash già presente nel kernel di OpenBSD.

L'implementazione è compatibile con tutti i client WireGuard ufficiali per Linux, Windows, macOS, *BSD, iOS e Android. I test delle prestazioni sul laptop dello sviluppatore (Lenovo x230) hanno mostrato un throughput a 750mbit/s. Per fare un confronto, isakmpd con le impostazioni di base ike psk fornisce un throughput di 380mbit/s.

Durante lo sviluppo del driver per il kernel OpenBSD, sono state scelte alcune soluzioni architetturali simili al driver per Linux, ma il driver è stato sviluppato principalmente per OpenBSD, tenendo presente le specificità di questo sistema e tenendo conto dell'esperienza acquisita nella creazione del driver per Linux. Con il consenso dell'autore originale di WireGuard, l'intero codice per il nuovo driver è distribuito sotto la licenza ISC gratuita.

Il driver si integra perfettamente con lo stack di rete OpenBSD e utilizza i sottosistemi esistenti per mantenere il codice molto compatto (circa 3000 righe di codice). Tra le differenze c'è anche una diversa separazione dei componenti dei driver rispetto a Linux: le interfacce specifiche di OpenBSD vengono spostate nei file "if_wg.*", il codice per la protezione DoS si trova in "wg_cookie.*", e la negoziazione della connessione e la logica di crittografia è in “wg_noise.* ".

Fonte: opennet.ru

Aggiungi un commento