A fine luglio, gli sviluppatori del tunnel VPN WireGuard hanno proposto , che renderanno il loro software per l'organizzazione di tunnel VPN parte del kernel Linux. Tuttavia, la data esatta di attuazione dell'«idea» rimane ancora sconosciuta. Nel seguito parleremo più approfonditamente di questo strumento.
/ фото
Breve introduzione al progetto
WireGuard è un tunnel VPN di nuova generazione, creato da Jason Donenfeld, capo dell'azienda Edge Security. Il progetto è stato sviluppato come semplice e veloce a OpenVPN e IPsec. La prima versione del prodotto conteneva solo 4.000 righe di codice. A titolo di confronto, OpenVPN ha circa 120.000 righe, mentre IPsec ne conta 420.000.
Secondo Per i programmatori, WireGuard è facile da configurare, e la sicurezza del protocollo è raggiunta . : Wi-Fi, LTE o Ethernet, è necessario riconnettersi ogni volta al server VPN. I server WireGuard, invece, non interrompono la connessione, anche se l'utente riceve un nuovo indirizzo IP.
Nonostante WireGuard sia stato originariamente progettato per il kernel Linux, gli sviluppatori anche a una versione portatile dello strumento per dispositivi Android. L'applicazione è attualmente in fase di sviluppo, ma è già possibile provarla. Per questo bisogna .
In generale, WireGuard gode di una notevole popolarità ed è stato adottato da alcuni fornitori di VPN, ad esempio Mullvad e AzireVPN. In rete sono disponibili di questa soluzione. Ad esempio, , create dagli utenti, e ci sono guide, .
Dettagli tecnici
In (p.18) è stato osservato che la larghezza di banda di WireGuard è quattro volte superiore a quella di OpenVPN: 1011 Mbit/s contro 258 Mbit/s rispettivamente. WireGuard supera anche la soluzione standard IPsec per Linux, che ha 881 Mbit/s. Inoltre, è superiore per semplicità di configurazione.
Dopo lo scambio di chiavi (la connessione VPN viene inizializzata quasi come in SSH) e stabilita la connessione, WireGuard risolve autonomamente tutte le altre questioni: non è necessario preoccuparsi del routing, del controllo dello stato, ecc. Ulteriori sforzi per la configurazione saranno necessari solo se si desidera utilizzare la crittografia simmetrica.

/ фото
Per l'installazione è necessario un pacchetto con un kernel Linux "superiore" alla versione 4.1. Può essere trovato nei repository delle principali distribuzioni di Linux.
$ sudo add-apt-repository ppa:hda-me/wireguard
$ sudo apt update
$ sudo apt install wireguard-dkms wireguard-tools
Come notano i redattori di xakep.ru, la compilazione autonoma dai sorgenti non è complicata. È sufficiente sollevare l'interfaccia e generare le chiavi pubbliche e private:
$ sudo ip link add dev wg0 type wireguard
$ wg genkey | tee privatekey | wg pubkey > publickey
WireGuard un'interfaccia per lavorare con il fornitore di crittografia . Invece, viene utilizzato un cifrario a flusso , crittografico Poly1305 e proprie funzioni hash crittografiche.
La chiave segreta viene generata utilizzando basato su una curva ellittica . Durante l'hashing vengono utilizzate e . Grazie al formato dei timestamp il protocollo scarta i pacchetti con un valore di timestamp inferiore, prevenendo così e .
. WireGuard utilizza la funzione ioctl per il controllo dell'input/output (in precedenza veniva usato ), il che rende il codice più pulito e semplice. È possibile verificarlo dando un'occhiata a .
Piani degli sviluppatori
Attualmente WireGuard è un modulo del kernel esterno. Ma l'autore del progetto, Jason Donenfeld , ha affermato che è già giunto il momento per una vera implementazione nel kernel Linux. Essendo più semplice e affidabile rispetto ad altre soluzioni. Jason a tal proposito è stato persino elogiato da Linus Torvalds stesso, che ha definito il codice di WireGuard "un'opera d'arte".
Ma nessuno parla ancora delle date esatte per l'implementazione di WireGuard nel kernel. E che ciò avvenga con l'uscita del kernel Linux di agosto 4.18. Tuttavia, è possibile che accada nel prossimo futuro: nella versione 4.19 o 5.0.
Quando WireGuard sarà aggiunto al kernel, gli sviluppatori ottimizzare l'app per i dispositivi Android e iniziare a scrivere un'app per iOS. Inoltre, è previsto di completare le implementazioni in Go e Rust e di portarle su macOS, Windows e BSD. Si prevede anche l'implementazione di WireGuard per sistemi più "esotici": , , così come molte altre cose interessanti. Tutte sono elencate nel degli autori del progetto.
P.S. Altri articoli dal nostro blog aziendale:
La principale direzione della nostra attività è la fornitura di servizi cloud:
| | | | | |
Fonte: habr.com
