WireGuard va „veni” în nucleul Linux — de ce?

La sfârșitul lunii iulie, dezvoltatorii tunelului VPN WireGuard au propus un set de patch-uri, care vor face software-ul lor pentru organizarea tunelurilor VPN parte din nucleul Linux. Cu toate acestea, data exactă a implementării „ideii” rămâne deocamdată necunoscută. Sub rest, vom discuta mai detaliat despre acest instrument.

WireGuard va „veni” în nucleul Linux — de ce?
/ фото Tambako The Jaguar CC

Pe scurt despre proiect

WireGuard este un tunel VPN de nouă generație, creat de Jason Donenfeld, șeful companiei Edge Security. Proiectul a fost dezvoltat ca o alternativă simplificată și rapidă la OpenVPN și IPsec. Prima versiune a produsului conținea doar 4 mii de linii de cod. Spre comparație, OpenVPN are aproximativ 120 de mii de linii, iar IPSec — 420 de mii.

După vorbelor lor Dezvoltatorii WireGuard l-au configurat ușor, iar securitatea protocolului este obținută prin algoritmi criptografici verificați. La schimbarea rețelei: Wi-Fi, LTE sau Ethernet, trebuie să te reconectezi la serverul VPN de fiecare dată. Serverele WireGuard nu întrerup conexiunea, chiar dacă utilizatorul primește o nouă adresă IP.

Deși WireGuard este proiectat inițial pentru nucleul Linux, dezvoltatorii s-au ocupat și de o versiune portabilă a instrumentului pentru dispozitivele Android. Aplicația este încă în dezvoltare, dar poate fi încercată deja. Pentru asta, trebuie să devii unul dintre testeri.

În general, WireGuard se bucură de o popularitate destul de mare și a fost a fost implementat adoptat de mai mulți furnizori de VPN, precum Mullvad și AzireVPN. Pe internet au fost publicate o mulțime de ghiduri de configurare a această soluție. De exemplu, există ghiduri, create de utilizatori, iar există ghiduri, pregătite de autorii proiectului.

Detalii tehnice

În documentația oficială (p. 18) se menționează că lățimea de bandă a WireGuard este de patru ori mai mare decât cea a OpenVPN: 1011 Mbps față de 258 Mbps, respectiv. WireGuard depășește și soluția standard pentru Linux, IPsec — aceasta are 881 Mbps. De asemenea, îl depășește în ceea ce privește simplitatea configurării.

După schimbul de chei (conexiunea VPN se inițiază aproape ca în SSH) și stabilirea conexiunii, WireGuard rezolvă singur toate celelalte sarcini: nu trebuie să te îngrijorezi cu privire la rutare, monitorizarea stării etc. Vor fi necesare eforturi suplimentare pentru configurare doar în cazul în care dorești să utilizezi criptarea simetrică.

WireGuard va „veni” în nucleul Linux — de ce?
/ фото Anders Hojbjerg CC

Pentru instalare, aveți nevoie de o distribuție cu kernel Linux „mai vechi” de 4.1. O puteți găsi în repozitoarele distribuțiilor principale de Linux.

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

După cum menționează editorii xakep.ru, compilarea autonomă din codul sursă nu este complicată. Este suficient să ridicați interfața și să generați cheile publice și private:

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

WireGuard nu folosește interfața pentru lucrul cu furnizorul de criptografie CryptoAPI. În schimb, se utilizează un algoritm de criptare de flux ChaCha20, criptografic inserție de imitație Poly1305 și funcții hash criptografice proprii.

Cheia secretă este generată folosind protocolul Diffie-Hellman pe baza unei curbe eliptice Curve25519. La hashare se utilizează funcții hash BLAKE2 și SipHash. Datorită formatului marcajelor temporale TAI64N protocolul elimină pachetele cu o valoare timestamp mai mică, prevenind astfel atacurile DoS- și replay.

În acest context, WireGuard folosește funcția ioctl pentru controlul intrărilor/ieșirilor (în trecut s-a folosit Netlink), ceea ce face codul mai curat și mai simplu. Puteți verifica acest lucru observând codul de configurare.

Planurile dezvoltatorilor

Până acum, WireGuard este un modul kernel extern. Dar autorul proiectului, Jason Donenfeld spune, a declarat că este timpul pentru o implementare completă în kernelul Linux. Deoarece este mai simplu și mai fiabil decât alte soluții. Jason, în acest sens, susține chiar a fost lăudat de Linus Torvalds — el a numit codul WireGuard „o operă de artă”.

Dar nimeni nu vorbește încă despre datele exacte ale implementării WireGuard în kernel. Și cu greu se va întâmpla cu lansarea kernelului Linux din august 4.18. Totuși, există o șansă că se va întâmpla în viitorul foarte apropiat: în versiunea 4.19 sau 5.0.

Când WireGuard va fi adăugat în kernel, dezvoltatorii vor dori să finalizeze aplicația pentru dispozitivele Android și să înceapă să scrie o aplicație pentru iOS. În plus, se preconizează finalizarea implementărilor în Go și Rust și portarea acestora pe macOS, Windows și BSD. De asemenea, se planifică implementarea WireGuard pentru sisteme mai „exotice”: DPDK, FPGA, precum și multe alte lucruri interesante. Toate acestea sunt enumerate în lista de sarcini a autorilor proiectului.

P.S. Încă câteva articole din blogul nostru corporativ:

Principalul nostru domeniu de activitate este furnizarea de servicii cloud:

Infrastructură virtuală (IaaS) | Hosting PCI DSS | Cloud FZ-152 | Hosting SAP | Stocare virtuală | Criptarea datelor în cloud | Stocare cloud

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster