VPN WireGuard har antagits i net-next-grenen och planeras för inkludering i Linux-kÀrnan 5.6

David Miller (David S. Miller), som ansvarar för nÀtverksdelen av Linux-kÀrnan, har accepterats in i net-next-grenen patchar med implementeringen av VPN-grÀnssnittet frÄn projektet WireGuard. I början av nÀsta Är kommer de förÀndringar som samlats i nÀtverkets net-next-gren att ligga till grund för utgÄvan av Linux-kÀrna 5.6.

Försök att föra in WireGuard-koden i den huvudsakliga kÀrnan har gjorts under de senaste Ären, men har varit resultatlösa pÄ grund av kopplingar till egna implementeringar av kryptografiska funktioner som anvÀndes för att öka prestandan. I början var dessa funktioner har erbjudits för kÀrnan som en extra lÄg-nivÄ API Zinc, som med tiden skulle kunna ersÀtta det inbyggda Crypto API.

Efter förhandlingar pÄ konferensen Kernel Recipes fattade skaparna av WireGuard i september ett kompromissbeslut att överföra sina patchar till anvÀndning av det inbyggda Crypto API, som utvecklarna av WireGuard har klagomÄl pÄ nÀr det gÀller prestanda och allmÀn sÀkerhet. API Zinc beslutades att fortsÀtta utveckla, men som ett separat projekt.

I november gick kÀrnutvecklarna med ett gensvar pÄ kompromissen och gick med pÄ att överföra en del av koden frÄn Zinc till kÀrnan. I sjÀlva verket kommer vissa komponenter av Zinc att överföras till kÀrnan, men inte som en separat API, utan som en del av Crypto API. Till exempel till Crypto API redan Rust-bindningar för förberett i WireGuard snabba implementationer av algoritmerna ChaCha20 och Poly1305.

I samband med den kommande leveransen av WireGuard i kÀrnans huvudsakliga komponenter, meddelade projektets grundare meddelade om omstruktureringen av lagret. För att underlÀtta utvecklingen kommer den monolitiska lagern "WireGuard.git", som var avsedd för separat existens, att ersÀttas av tre separata lagrar, som passar bÀttre för att organisera arbetet med koden i den huvudsakliga kÀrnan:

  • wireguard-linux.git — hela kĂ€rntĂ€rningen med förĂ€ndringar frĂ„n Wireguard-projektet, vars patchar kommer att granskas för inkludering i kĂ€rnan och regelbundet flyttas till grenarna net/net-next.
  • wireguard-tools.git — ett arkiv för körbara anvĂ€ndarutrymmesverktyg och skript, sĂ„som wg och wg-quick. Arkivet kan anvĂ€ndas för att skapa paket för distributioner.
  • wireguard-linux-compat.git — ett arkiv med en modulversion som levereras separat frĂ„n kĂ€rnan och inkluderar ett lager av compat.h för att sĂ€kerstĂ€lla kompatibilitet med gamla kĂ€rnor. Huvudutvecklingen kommer att Ă€ga rum i arkivet wireguard-linux.git, men sĂ„ lĂ€nge det finns möjligheter och behov frĂ„n anvĂ€ndare kommer en separat version av patcharna att stödjas i fungerande skick.

Vi pÄminner om att VPN WireGuard bygger pÄ moderna krypteringsmetoder, erbjuder mycket hög prestanda, Àr lÀtt att anvÀnda, utan komplikationer och har visat sig vara pÄlitlig i flera stora implementeringar som hanterar stora trafikvolymer. Projektet har utvecklats sedan 2015, har genomgÄtt revision och formell verifiering av de tillÀmpade krypteringsmetoderna. Stödet för WireGuard Àr redan integrerat i NetworkManager och systemd, och patcharna för kÀrnan ingÄr i de grundlÀggande distributionerna Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph och ALT.

I WireGuard tillÀmpas en koncept av nyckelbaserad rutning, vilket innebÀr att varje nÀtverksgrÀnssnitt kopplas till en privat nyckel och anvÀnds för att lÀnka offentliga nycklar. Utbytet av offentliga nycklar för att etablera en anslutning sker pÄ liknande sÀtt som med SSH. För att samordna nycklar och anslutning utan att starta en separat daemon i anvÀndarutrymmet anvÀnds Noise_IK-mekanik. Noise Protocol Framework, liknande upprÀtthÄllandet av authorized_keys i SSH. Datatransmission sker genom inkapsling i UDP-paket. Stöd för byte av VPN-serverns IP-adress (roaming) utan att bryta anslutningen och automatisk omkonfiguration av klienten.

För kryptering funktionen unix_crypt, som tar emot det lösenord som anvÀndaren anger utan att utföra escape av specialtecken. I git-repositoriet strömmande krypteringsmetod ChaCha20 och meddelandeautentiseringsalgoritm (MAC) Poly1305, utvecklade av Daniel Bernstein (Daniel J. Bernstein), Tanja Lange
(Tanja Lange) och Peter Schwabe (Peter Schwabe). ChaCha20 och Poly1305 positioneras som snabbare och sÀkrare alternativ till AES-256-CTR och HMAC, vars programvaruimplementation möjliggör en fast körningstid utan att sÀrskild hÄrdvarustöd krÀvs. För att generera en gemensam hemlig nyckel anvÀnds protokollet Diffie-Hellman pÄ elliptiska kurvor i implementationen Curve25519, ocksÄ föreslagen av Daniel Bernstein. För hashing anvÀnds algoritmen BLAKE2s (RFC7693).

Vid testning prestandan för WireGuard har visat sig ha 3,9 gĂ„nger högre kapacitet och 3,8 gĂ„nger högre responsivitet jĂ€mfört med OpenVPN (256-bit AES med HMAC-SHA2-256). JĂ€mfört med IPsec (256-bit ChaCha20+Poly1305 och AES-256-GCM-128) visar WireGuard en liten prestandafordel (13-18%) och minskade latenser (21-23%). Tester gjordes med hjĂ€lp av projektets snabba implementationer av krypteringsalgoritmer — en övergĂ„ng till den standardiserade Crypto API i kĂ€rnan kan leda till sĂ€mre prestanda.

VPN WireGuard har antagits i net-next-grenen och planeras för inkludering i Linux-kÀrnan 5.6

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster