VPN WireGuard je prihvaćen u net-next granu i predviđen je za uključivanje u Linux 5.6 kernel

David Miller (David S. Miller), odgovoran za mrežni podsustav jezgre Linuxa, prihvatio na net-sljedeću granu zakrpe uz implementaciju VPN sučelja iz projekta WireGuard. Početkom sljedeće godine, promjene akumulirane u ogranku net-next tvorit će osnovu za izdanje Linux kernela 5.6.

Pokušaji ubacivanja WireGuard koda u glavnu jezgru bili su tijekom proteklih nekoliko godina, ali su ostali neuspješni jer je bio vezan za vlasničke implementacije kriptografskih funkcija koje su korištene za poboljšanje performansi. U početku su te funkcije bile zaprosio za kernel kao dodatni Zinc API niske razine, koji bi s vremenom mogao zamijeniti standardni Crypto API.

Nakon rasprava na konferenciji Kernel Recipes, kreatori WireGuarda u rujnu donio kompromisnu odluku prenesite svoje zakrpe za korištenje Crypto API-ja dostupnog u jezgri, na koji WireGuard programeri imaju pritužbi u području performansi i opće sigurnosti. Odlučeno je nastaviti razvijati Zinc API, ali kao zaseban projekt.

U studenom, programeri kernela otišao kao odgovor na kompromis i pristali na prijenos dijela koda iz Zinca u glavnu jezgru. U biti, neke Zinc komponente bit će premještene u jezgru, ali ne kao zasebni API, već kao dio podsustava Crypto API. Na primjer, već Crypto API uključeno brze implementacije ChaCha20 i Poly1305 algoritama pripremljenih u WireGuardu.

U vezi s nadolazećom isporukom WireGuarda u glavnoj jezgri, osnivaču projekta najavio o restrukturiranju repozitorija. Kako bi se pojednostavio razvoj, monolitno spremište "WireGuard.git", koje je dizajnirano da postoji izolirano, bit će zamijenjeno s tri odvojena spremišta, prikladnija za organiziranje rada s kodom u glavnoj jezgri:

  • wireguard-linux.git - cjelovito stablo kernela s promjenama iz projekta Wireguard, čije će se zakrpe pregledavati radi uključivanja u kernel i redovito prenositi na net/net-next grane.
  • žičani čuvari-alati.git - repozitorij za pomoćne programe i skripte koje se izvode u korisničkom prostoru, kao što su wg i wg-quick. Repozitorij se može koristiti za izradu paketa za distribucije.
  • wireguard-linux-compat.git - repozitorij s varijantom modula, koji se isporučuje odvojeno od kernela i uključuje sloj compat.h kako bi se osigurala kompatibilnost sa starijim kernelima. Glavni razvoj odvijat će se u repozitoriju wireguard-linux.git, ali sve dok postoji prilika i potreba među korisnicima, zasebne verzije zakrpa također će biti podržane u radnom obliku.

Podsjetimo, VPN WireGuard implementiran je na temelju suvremenih metoda enkripcije, pruža vrlo visoke performanse, jednostavan je za korištenje, bez komplikacija i dokazao se u nizu velikih implementacija koje obrađuju velike količine prometa. Projekt se razvija od 2015., prošao je reviziju i formalna provjera korištene metode šifriranja. Podrška za WireGuard već je integrirana u NetworkManager i systemd, a zakrpe kernela uključene su u osnovne distribucije Debian nestabilan, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, subgraph и ALT.

WireGuard koristi koncept usmjeravanja ključeva za enkripciju, koji uključuje pripajanje privatnog ključa svakom mrežnom sučelju i njegovu upotrebu za vezanje javnih ključeva. Javni ključevi se razmjenjuju za uspostavljanje veze na sličan način kao SSH. Za dogovaranje ključeva i povezivanje bez pokretanja zasebnog demona u korisničkom prostoru, mehanizam Noise_IK iz Noise Protocol Frameworkslično održavanju authorized_keys u SSH. Prijenos podataka provodi se enkapsulacijom u UDP paketima. Podržava promjenu IP adrese VPN poslužitelja (roaming) bez prekida veze i automatsku rekonfiguraciju klijenta.

Za šifriranje polovan potočna šifra ChaCha20 i algoritam provjere autentičnosti poruke (MAC) Poly1305, dizajnirao Daniel Bernstein (Daniel J. Bernstein), Tanya Lange
(Tanja Lange) i Peter Schwabe. ChaCha20 i Poly1305 pozicionirani su kao brži i sigurniji analozi AES-256-CTR i HMAC, čija softverska implementacija omogućuje postizanje fiksnog vremena izvršenja bez upotrebe posebne hardverske podrške. Za generiranje zajedničkog tajnog ključa u implementaciji se koristi Diffie-Hellmanov protokol eliptične krivulje Curve25519, također predložio Daniel Bernstein. Algoritam koji se koristi za raspršivanje je BLAKE2s (RFC7693).

u testiranje Performanse WireGuard pokazao je 3.9 puta veću propusnost i 3.8 puta veću odzivnost u usporedbi s OpenVPN-om (256-bitni AES s HMAC-SHA2-256). U usporedbi s IPsec-om (256-bitni ChaCha20+Poly1305 i AES-256-GCM-128), WireGuard pokazuje malo poboljšanje performansi (13-18%) i nižu latenciju (21-23%). Testovi su provedeni korištenjem brzih implementacija algoritama šifriranja razvijenih u okviru projekta - prijenos na standardni Crypto API kernela može dovesti do lošijih performansi.

VPN WireGuard je prihvaćen u net-next granu i predviđen je za uključivanje u Linux 5.6 kernel

Izvor: opennet.ru

Dodajte komentar