WireGuard “arriverà” al kernel Linux: perché?

Alla fine di luglio hanno proposto gli sviluppatori del tunnel VPN WireGuard set di toppe, che renderà il loro software di tunneling VPN parte del kernel Linux. Tuttavia, la data esatta di attuazione dell’“idea” rimane sconosciuta. Sotto il taglio parleremo di questo strumento in modo più dettagliato.

WireGuard “arriverà” al kernel Linux: perché?
/ foto Tambako Il Giaguaro CC

Brevemente sul progetto

WireGuard è un tunnel VPN di nuova generazione creato da Jason A. Donenfeld, CEO di Edge Security. Il progetto è stato sviluppato come semplificato e un'alternativa veloce a OpenVPN e IPsec. La prima versione del prodotto conteneva solo 4mila righe di codice. Per fare un confronto, OpenVPN ha circa 120mila linee e IPSec - 420mila.

Su secondo sviluppatori, WireGuard è facile da configurare e viene raggiunta la sicurezza del protocollo attraverso comprovati algoritmi crittografici. Quando si cambia rete: Wi-Fi, LTE o Ethernet devono riconnettersi ogni volta al server VPN. I server WireGuard non interrompono la connessione, anche se l'utente ha ricevuto un nuovo indirizzo IP.

Nonostante WireGuard sia stato originariamente progettato per il kernel Linux, gli sviluppatori curato e su una versione portatile dello strumento per dispositivi Android. L'applicazione non è ancora completamente sviluppata, ma puoi provarla subito. Per questo hai bisogno diventare uno dei tester.

In generale, WireGuard è piuttosto popolare e lo è persino stato implementato diversi provider VPN, come Mullvad e AzireVPN. Pubblicato in linea un gran numero guide di installazione questa decisione. Per esempio, ci sono le guide, creati dagli utenti, e sono presenti guide, preparato dagli autori del progetto.

Dettagli tecnici

В documentazione ufficiale (p. 18) si nota che il throughput di WireGuard è quattro volte superiore a quello di OpenVPN: 1011 Mbit/s contro 258 Mbit/s, rispettivamente. WireGuard è anche più avanti rispetto alla soluzione standard per Linux IPsec: ha 881 Mbit/s. Lo supera anche nella facilità di installazione.

Dopo che le chiavi sono state scambiate (la connessione VPN viene inizializzata in modo molto simile a SSH) e la connessione è stata stabilita, WireGuard gestisce tutte le altre attività da solo: non è necessario preoccuparsi del routing, del controllo dello stato, ecc. Ulteriori sforzi di configurazione saranno solo richiesto se si desidera utilizzare la crittografia simmetrica.

WireGuard “arriverà” al kernel Linux: perché?
/ foto Anders Hojbjerg CC

Per l'installazione avrai bisogno di una distribuzione con un kernel Linux precedente alla 4.1. Può essere trovato nei repository delle principali distribuzioni Linux.

$ sudo add-apt-repository ppa:hda-me/wireguard
$ sudo apt update
$ sudo apt install wireguard-dkms wireguard-tools

Come notano gli editori di xakep.ru, anche l'autoassemblaggio dai testi originali è facile. È sufficiente aumentare l'interfaccia e generare chiavi pubbliche e private:

$ sudo ip link add dev wg0 type wireguard
$ wg genkey | tee privatekey | wg pubkey > publickey

Gabbia di protezione non usa interfaccia per lavorare con un provider di crittografia CriptoAPI. Viene invece utilizzato un codice a flusso ChaCha20, crittografico inserto d'imitazione Poly1305 e funzioni hash crittografiche proprietarie.

La chiave segreta viene generata utilizzando Protocollo Diffie-Hellman basato sulla curva ellittica Curve25519. Durante l'hashing, usano funzioni hash BLAKE2 и SipHash. A causa del formato timestamp TAI64N il protocollo scarta quindi i pacchetti con un valore di timestamp più piccolo prevenire DoS- и ripetere gli attacchi.

In questo caso, WireGuard utilizza la funzione ioctl per controllare l'I/O (precedentemente utilizzata Collegamento di rete), che rende il codice più pulito e semplice. Puoi verificarlo guardando codice di configurazione.

Piani per sviluppatori

Per ora, WireGuard è un modulo del kernel fuori dall'albero. Ma l'autore del progetto è Jason Donenfeld parla, che è giunto il momento per la piena implementazione nel kernel Linux. Perché è più semplice e affidabile rispetto ad altre soluzioni. Jason a questo proposito поддерживает anche lo stesso Linus Torvalds ha definito il codice WireGuard un’“opera d’arte”.

Ma nessuno parla delle date esatte per l'introduzione di WireGuard nel kernel. E quasi questo avverrà con il rilascio del kernel Linux di agosto 4.18. Tuttavia, esiste la possibilità che ciò accada in un futuro molto prossimo: nella versione 4.19 o 5.0.

Quando WireGuard viene aggiunto al kernel, gli sviluppatori хотят finalizzare l'applicazione per dispositivi Android e iniziare a scrivere un'applicazione per iOS. Ci sono anche piani per completare le implementazioni in Go e Rust e portarle su macOS, Windows e BSD. Si prevede inoltre di implementare WireGuard per più “sistemi esotici”: DPK, FPGA, oltre a molte altre cose interessanti. Sono tutti elencati in lista di cose da fare autori del progetto.

PS Alcuni altri articoli dal nostro blog aziendale:

La direzione principale della nostra attività è la fornitura di servizi cloud:

Infrastruttura virtuale (IaaS) | Hosting PCI DSS | Nuvola FZ-152 | Hosting SAP | Archiviazione virtuale | Crittografia dei dati nel cloud | Archiviazione nel cloud

Fonte: habr.com

Aggiungi un commento