Perché WireGuard «arriverà» nel kernel di Linux?

Alla fine di luglio, gli sviluppatori del tunnel VPN WireGuard hanno proposto un insieme di patch, 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.

Perché WireGuard «arriverà» nel kernel di Linux?
/ фото Tambako The Jaguar CC

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 una alternativa semplificata 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 le parole Per gli sviluppatori, WireGuard è facile da configurare, e la sicurezza del protocollo è garantita da algoritmi crittografici comprovati. Quando si cambia rete: 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 hanno pensato a una versione portatile dello strumento per dispositivi Android. L'applicazione è ancora incompleta, ma è già possibile provarla. Per farlo, è necessario diventare uno dei tester.

In generale, WireGuard gode di una notevole popolarità e è stato implementato adottato da diversi fornitori di VPN, come Mullvad e AzireVPN. Sono stati pubblicati online un gran numero guide per la configurazione di questa soluzione. Ad esempio, ci sono guide, create dagli utenti, e ci sono guide, preparate dagli autori del progetto..

Dettagli tecnici

In documentazione ufficiale (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.

Perché WireGuard «arriverà» nel kernel di Linux?
/ фото Anders Hojbjerg CC

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 non utilizza interfaccia per lavorare con il fornitore di crittografia CryptoAPI. Al suo posto, viene utilizzato un cifrario a flusso ChaCha20, una funzione crittografica Poly1305 e proprie funzioni di hash crittografiche. La chiave segreta viene generata utilizzando

La chiave segreta viene generata utilizzando il protocollo Diffie-Hellman basata su una curva ellittica. Curve25519Nell'hashing vengono utilizzate funzioni di hash BLAKE2 e SipHash. Grazie al formato dei timestamp TAI64N il protocollo scarta i pacchetti con un valore di timestamp inferiore, prevenendo così DoS- e attacchi di replay..

A tal fine, WireGuard utilizza la funzione ioctl per il controllo dell'input/output (precedentemente veniva utilizzata Netlink), il che rende il codice più chiaro e semplice. Puoi verificarlo dando un'occhiata a al codice di configurazione..

Piani degli sviluppatori

Attualmente, WireGuard è un modulo out-of-tree del kernel. Ma l'autore del progetto, Jason Donenfeld afferma, 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 supporta è 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 ben poco è 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 intendono 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": DPDK, FPGA, così come molte altre interessanti novità. Tutte elencate nella lista delle cose da fare degli autori del progetto.

P.S. Altri articoli dal nostro blog aziendale:

La nostra principale area di attività è fornire servizi cloud:

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

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS | ProHoster