WireGuard «arriverà» nel kernel Linux — perché?

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

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

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 una alternativa 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 gli esperti, i principali problemi dell'Internet delle cose sono le password facilmente indovinabili (spesso sono presenti password di fabbrica preimpostate, accessibili pubblicamente) e i firmware obsoleti dei dispositivi. In migliori dei casi, gli aggiornamenti vengono pubblicati con notevoli ritardi, nel peggiore — non vengono rilasciati affatto (a volte la possibilità di aggiornamento non è nemmeno prevista a livello tecnico). Di conseguenza, molti dispositivi IoT vengono compromessi attraverso modi banali, come vulnerabilità nell'interfaccia web. Quasi tutte queste vulnerabilità sono critiche, ma il produttore ha possibilità estremamente limitate di creare rapidamente una patch e distribuirla come aggiornamento. Per i programmatori, WireGuard è facile da configurare, e la sicurezza del protocollo è raggiunta grazie a algoritmi crittografici collaudati. Quando si cambia rete: 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 hanno pensato anche a una versione portatile dello strumento per dispositivi Android. L'applicazione è attualmente in fase di sviluppo, ma è già possibile provarla. Per questo bisogna diventare uno dei tester.

In generale, WireGuard gode di una notevole popolarità ed è stato è stato implementato adottato da alcuni fornitori di VPN, ad esempio Mullvad e AzireVPN. In rete sono disponibili un gran numero di 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 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.

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

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 non utilizza un'interfaccia per lavorare con il fornitore di crittografia CryptoAPI. Invece, viene utilizzato un cifrario a flusso ChaCha20, crittografico autenticazione Poly1305 e proprie funzioni hash crittografiche.

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

. WireGuard utilizza la funzione ioctl per il controllo dell'input/output (in precedenza veniva usato Netlink), il che rende il codice più pulito e semplice. È possibile verificarlo dando un'occhiata a codice di configurazione.

Piani degli sviluppatori

Attualmente WireGuard è un modulo del kernel esterno. Ma l'autore del progetto, Jason Donenfeld sottolinea, 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 supporta è 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 è poco probabile 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 vogliono 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": DPDK, FPGA, così come molte altre cose interessanti. Tutte sono elencate nel to-do list degli autori del progetto.

P.S. Altri articoli dal nostro blog aziendale:

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

Infrastruttura virtuale (IaaS) | Hosting PCI DSS | Cloud FZ-152 | Hosting SAP | Storage 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