rilascio simbolico di VPN , che ha segnato la consegna dei componenti WireGuard nel kernel principale e la stabilizzazione dello sviluppo. Il codice incluso nel kernel di Linux un'ulteriore revisione di sicurezza condotta da un'agenzia indipendente specializzata in tali controlli. L'audit non ha rivelato alcun problema.
Poiché WireGuard è ora sviluppato nel kernel principale di Linux, è stato preparato un repository . Il repository include codice WireGuard retroportato e uno strato compat.h per garantire la compatibilità con i vecchi kernel. Si segnala che finché ci saranno sviluppatori e la necessità da parte degli utenti, la versione separata delle patch continuerà a essere mantenuta attiva. Nella sua forma attuale, la versione separata di WireGuard può essere utilizzata con i kernel di e , ed è disponibile anche come patch per i kernel di Linux e . Le distribuzioni che utilizzano i kernel più recenti, come Arch, Gentoo e
Fedora 32, avranno la possibilità di utilizzare WireGuard con l'aggiornamento del kernel 5.6.
Il principale processo di sviluppo ora si svolge nel repository , che include l'intero albero del kernel Linux con modifiche dal progetto Wireguard. Le patch di questo repository saranno esaminate per l'inclusione nel kernel principale e trasferite regolarmente nei rami net/net-next. Lo sviluppo di utilità e script eseguibili in spazio utente, come wg e wg-quick, avviene nel repository , che può essere utilizzato per creare pacchetti nelle distribuzioni.
Ricordiamo che il VPN WireGuard è implementato utilizzando tecniche di crittografia moderne, garantisce prestazioni molto elevate, è facile da usare, privo di complicazioni e ha dimostrato la sua efficacia in vari grandi implementazioni che gestiscono elevate quantità di traffico. Il progetto è in sviluppo dal 2015, ha superato un audit e metodi di crittografia applicati. Il supporto per WireGuard è già integrato in NetworkManager e systemd, e le patch per il kernel sono incluse nel core delle distribuzioni , Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, e .
In WireGuard, the concept of routing by encryption keys is applied, which involves binding a private key to each network interface and using it to link public keys. The exchange of public keys to establish a connection is analogous to SSH. To negotiate keys and connect without launching a separate user-space daemon, the Noise_IK mechanism is used from , similar to maintaining authorized_keys in SSH. Data transmission is carried out through encapsulation in UDP packets. It supports changing the VPN server's IP address (roaming) without breaking the connection, with automatic client reconfiguration.
Per la crittografia il cifrario a flusso e l'algoritmo di autenticazione dei messaggi (MAC) , sviluppati da Daniel Bernstein (), Tanja Lange
(Tanja Lange) and Peter Schwabe. ChaCha20 and Poly1305 are positioned as faster and more secure alternatives to AES-256-CTR and HMAC, with a software implementation that allows achieving fixed execution time without requiring special hardware support. The Diffie-Hellman protocol on elliptic curves is used for generating a shared secret key in the implementation of , proposta anche da Daniel Bernstein. Per l'hashing viene utilizzato l'algoritmo .
In the old WireGuard ha dimostrato prestazioni con una larghezza di banda superiore di 3,9 volte e una reattività 3,8 volte maggiore rispetto a OpenVPN (AES a 256 bit con HMAC-SHA2-256). Rispetto a IPsec (ChaCha20+Poly1305 a 256 bit e AES-256-GCM-128), WireGuard mostra un lieve vantaggio in termini di prestazioni (13-18%) e una riduzione della latenza (21-23%). I risultati dei test riportati sul sito del progetto riguardano una vecchia implementazione isolata di WireGuard e sono stati etichettati come di qualità insufficiente. Da quando sono stati condotti i test, il codice di WireGuard e IPsec è stato ulteriormente ottimizzato e ora funziona più velocemente. Non è stata ancora effettuata una test più completo che copra l'implementazione integrata nel kernel. Tuttavia, si segnala che WireGuard in alcune situazioni continua a superare IPsec grazie al supporto multi-threading, mentre OpenVPN rimane molto lento.
Fonte: opennet.ru
