Alla fine di luglio, gli sviluppatori del tunnel VPN WireGuard hanno proposto , che renderanno il loro software per la creazione di tunnel VPN parte del nucleo Linux. Tuttavia, la data precisa di attuazione di questa "idea" rimane ancora sconosciuta. Nel seguito, parleremo di questo strumento in modo più dettagliato.
/ фото
Breve panoramica del progetto
WireGuard è un tunnel VPN di nuova generazione, creato da Jason Donenfeld, capo dell'azienda Edge Security. Il progetto è stato sviluppato come e veloce a OpenVPN e IPsec. La prima versione del prodotto conteneva solo 4.000 righe di codice. A titolo di confronto, OpenVPN conta circa 120.000 righe, mentre IPSec ne ha 420.000.
Secondo Per gli sviluppatori, WireGuard è facile da configurare, e la sicurezza del protocollo è garantita . : Wi-Fi, LTE o Ethernet, è necessario riconnettersi ogni volta al server VPN. I server WireGuard non interrompono la connessione, anche se l'utente ottiene un nuovo indirizzo IP.
Nonostante WireGuard sia stato inizialmente progettato per il nucleo Linux, gli sviluppatori a una versione portatile dello strumento per dispositivi Android. L'applicazione è ancora incompleta, ma è già possibile provarla. Per farlo, è necessario .
In generale, WireGuard gode di una notevole popolarità e è stato adottato da diversi fornitori di VPN, come Mullvad e AzireVPN. Sono stati pubblicati online di questa soluzione. Ad esempio, , create dagli utenti, e ci sono guide, .
Dettagli tecnici
In (p. 18) è stato notato che la capacità di throughput di WireGuard è quattro volte superiore a quella di OpenVPN: 1011 Mbit/s contro 258 Mbit/s rispettivamente. WireGuard supera anche la soluzione standard per Linux IPsec, che ha 881 Mbit/s. È anche più facile da configurare.
Dopo lo scambio delle chiavi (la connessione VPN viene inizializzata quasi come in SSH) e l'instaurazione della connessione, WireGuard si occupa autonomamente di tutte le altre operazioni: non è necessario preoccuparsi della routing, del controllo dello stato, ecc. Ulteriori sforzi nella configurazione saranno necessari solo se si desidera utilizzare la crittografia simmetrica.

/ фото
Per l'installazione, è necessario un sistema con un kernel Linux "superiore" a 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, la compilazione autonoma dai sorgenti non è difficile. È sufficiente creare l'interfaccia e generare la chiave pubblica e privata:
$ sudo ip link add dev wg0 type wireguard
$ wg genkey | tee privatekey | wg pubkey > publickey
WireGuard interfaccia per lavorare con il fornitore di crittografia . Al suo posto, viene utilizzato un cifrario a flusso , una funzione crittografica La chiave segreta viene generata utilizzando
La chiave segreta viene generata utilizzando basata su una curva ellittica. Nell'hashing vengono utilizzate e . Grazie al formato dei timestamp il protocollo scarta i pacchetti con un valore di timestamp inferiore, prevenendo così e .
A tal fine, WireGuard utilizza la funzione ioctl per il controllo dell'input/output (precedentemente veniva utilizzata ), il che rende il codice più chiaro e semplice. Puoi verificarlo dando un'occhiata a .
Piani degli sviluppatori
Attualmente, WireGuard è un modulo out-of-tree del kernel. Ma l'autore del progetto, Jason Donenfeld , ha dichiarato che è giunto il momento di una piena attuazione nel kernel Linux. Poiché è più semplice e affidabile di altre soluzioni. Jason in questo senso è stato persino elogiato da Linus Torvalds — ha descritto il codice di WireGuard come un "capolavoro".
Ma per ora, nessuno parla di date precise per l'integrazione di WireGuard nel kernel. E è probabile che accada con l'uscita del kernel Linux di agosto 4.18. Tuttavia, c'è una possibilità che ciò avvenga nel prossimo futuro: nella versione 4.19 o 5.0.
Quando WireGuard sarà aggiunto al kernel, gli sviluppatori completare l'applicazione per dispositivi Android e iniziare a sviluppare un'app per iOS. Inoltre, è previsto di completare le implementazioni in Go e Rust e portarle su macOS, Windows e BSD. È anche prevista l'implementazione di WireGuard per sistemi più "esotici": , , così come molte altre interessanti novità. Tutte elencate nella degli autori del progetto.
P.S. Altri articoli dal nostro blog aziendale:
La nostra principale area di attività è fornire servizi cloud:
| | | | | |
Fonte: habr.com
