VPN WireGuard a fost acceptat în ramura net-next și este programat să fie inclus în kernel-ul Linux 5.6

David Miller (David S. Miller), responsabil pentru subsistemul de rețea al nucleului Linux, admis la ramura net-următoarea petice cu implementarea interfeței VPN din proiect WireGuard. La începutul anului viitor, modificările acumulate în ramura net-next vor forma baza pentru lansarea nucleului Linux 5.6.

Încercările de a împinge codul WireGuard în nucleul principal au fost făcute în ultimii câțiva ani, dar au rămas nereușite din cauza faptului că au fost legate de implementări proprietare ale funcțiilor criptografice care au fost folosite pentru a îmbunătăți performanța. Inițial, aceste funcții au fost propus pentru nucleu ca un API Zinc suplimentar de nivel scăzut, care ar putea înlocui în cele din urmă API-ul Crypto standard.

În urma discuțiilor de la conferința Kernel Recipes, creatorii WireGuard din septembrie a luat o decizie de compromis transferați-vă patch-urile pentru a utiliza Crypto API-ul disponibil în nucleu, la care dezvoltatorii WireGuard au reclamații în domeniul performanței și securității generale. S-a decis continuarea dezvoltării Zinc API, dar ca proiect separat.

În noiembrie, dezvoltatorii de kernel a mers ca răspuns la un compromis și a fost de acord să transfere o parte a codului de la Zinc în nucleul principal. În esență, unele componente Zinc vor fi mutate în nucleu, dar nu ca un API separat, ci ca parte a subsistemului Crypto API. De exemplu, API-ul Crypto deja inclus implementări rapide ale algoritmilor ChaCha20 și Poly1305 pregătiți în WireGuard.

În legătură cu viitoarea livrare a WireGuard în nucleul principal, fondatorul proiectului a anunțat despre restructurarea depozitului. Pentru a simplifica dezvoltarea, depozitul monolitic „WireGuard.git”, care a fost conceput pentru a exista izolat, va fi înlocuit cu trei depozite separate, mai potrivite pentru organizarea muncii cu cod în nucleul principal:

  • wireguard-linux.git - un arbore nucleu complet cu modificări din proiectul Wireguard, patch-uri din care vor fi revizuite pentru includerea în nucleu și transferate regulat în ramurile net/net-next.
  • wireguard-tools.git - un depozit pentru utilitare și scripturi rulate în spațiul utilizatorului, cum ar fi wg și wg-quick. Depozitul poate fi folosit pentru a crea pachete pentru distribuții.
  • wireguard-linux-compat.git - un depozit cu o variantă a modulului, furnizat separat de kernel și care include stratul compat.h pentru a asigura compatibilitatea cu nucleele mai vechi. Dezvoltarea principală va fi efectuată în depozitul wireguard-linux.git, dar atâta timp cât există o oportunitate și o nevoie în rândul utilizatorilor, o versiune separată a patch-urilor va fi, de asemenea, acceptată în formă de lucru.

Să vă reamintim că VPN WireGuard este implementat pe baza unor metode moderne de criptare, oferă performanțe foarte ridicate, este ușor de utilizat, fără complicații și s-a dovedit într-o serie de implementări mari care procesează volume mari de trafic. Proiectul se dezvoltă din 2015, a fost auditat și verificare formală metodele de criptare utilizate. Suportul WireGuard este deja integrat în NetworkManager și systemd, iar corecțiile de kernel sunt incluse în distribuțiile de bază Debian instabil, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraf и ALT.

WireGuard folosește conceptul de rutare a cheilor de criptare, care implică atașarea unei chei private la fiecare interfață de rețea și utilizarea acesteia pentru a lega cheile publice. Cheile publice sunt schimbate pentru a stabili o conexiune într-un mod similar cu SSH. Pentru a negocia cheile și a vă conecta fără a rula un daemon separat în spațiul utilizatorului, mecanismul Noise_IK de la Cadrul protocolului de zgomotsimilar cu menținerea authorized_keys în SSH. Transmiterea datelor se realizează prin încapsulare în pachete UDP. Acceptă schimbarea adresei IP a serverului VPN (roaming) fără a deconecta conexiunea și reconfigurarea automată a clientului.

Pentru criptare utilizat stream cipher ChaCha20 și algoritm de autentificare a mesajelor (MAC) Poly1305, proiectat de Daniel Bernstein (Daniel J. Bernstein), Tanya Lange
(Tanja Lange) și Peter Schwabe. ChaCha20 și Poly1305 sunt poziționate ca analogi mai rapidi și mai siguri ai AES-256-CTR și HMAC, a căror implementare software permite obținerea unui timp de execuție fix fără utilizarea suportului hardware special. Pentru a genera o cheie secretă partajată, în implementare este utilizat protocolul Diffie-Hellman cu curbă eliptică Curve25519, propus tot de Daniel Bernstein. Algoritmul folosit pentru hashing este BLAKE2s (RFC7693).

la testarea Performanță WireGuard a demonstrat un debit de 3.9 ori mai mare și o capacitate de răspuns de 3.8 ori mai mare comparativ cu OpenVPN (AES de 256 de biți cu HMAC-SHA2-256). În comparație cu IPsec (256-bit ChaCha20+Poly1305 și AES-256-GCM-128), WireGuard prezintă o ușoară îmbunătățire a performanței (13-18%) și o latență mai mică (21-23%). Testele au fost efectuate folosind implementări rapide ale algoritmilor de criptare dezvoltați de proiect - transferul la API-ul Crypto standard al nucleului poate duce la performanțe mai slabe.

VPN WireGuard a fost acceptat în ramura net-next și este programat să fie inclus în kernel-ul Linux 5.6

Sursa: opennet.ru

Adauga un comentariu