VPN WireGuard har accepterats i net-next-grenen och är planerad att inkluderas i Linux 5.6-kärnan

David Miller (David S. Miller), ansvarig för nätverksundersystemet i Linux-kärnan, accepterad till nästa gren plåster med implementering av VPN-gränssnittet från projektet WireGuard. Tidigt nästa år kommer förändringar som samlats i net-next-grenen att ligga till grund för lanseringen av Linux-kärnan 5.6.

Försök att trycka in WireGuard-koden i huvudkärnan har gjorts under de senaste åren, men förblev misslyckade på grund av att de var knutna till proprietära implementeringar av kryptografiska funktioner som användes för att förbättra prestandan. Till en början var dessa funktioner föreslagen för kärnan som en ytterligare lågnivå Zink API, som så småningom kan ersätta standard Crypto API.

Efter diskussioner på Kernel Recipes-konferensen, skaparna av WireGuard i september fattade ett kompromissbeslut överför dina patchar för att använda Crypto API som finns i kärnan, till vilket WireGuard-utvecklarna har klagomål inom området prestanda och allmän säkerhet. Det beslutades att fortsätta utveckla Zinc API, men som ett separat projekt.

I november, kärnutvecklare åkte som svar på en kompromiss och gick med på att överföra en del av koden från Zinc till huvudkärnan. I huvudsak kommer vissa zinkkomponenter att flyttas in i kärnan, men inte som ett separat API, utan som en del av Crypto API-undersystemet. Till exempel, Crypto API redan ingår snabba implementeringar av ChaCha20- och Poly1305-algoritmerna förberedda i WireGuard.

I samband med den kommande leveransen av WireGuard i huvudkärnan, grundaren av projektet meddelat om omstrukturering av förvaret. För att förenkla utvecklingen kommer det monolitiska "WireGuard.git"-förrådet, som designades för att existera isolerat, att ersättas av tre separata förråd, bättre lämpade för att organisera arbete med kod i huvudkärnan:

  • wireguard-linux.git - ett komplett kärnträd med ändringar från Wireguard-projektet, från vilka patchar kommer att granskas för inkludering i kärnan och regelbundet överföras till net/net-next-grenarna.
  • wireguard-tools.git - ett arkiv för verktyg och skript som körs i användarutrymmet, som wg och wg-quick. Lagret kan användas för att skapa paket för distributioner.
  • wireguard-linux-compat.git - ett arkiv med en variant av modulen, levererad separat från kärnan och inklusive compat.h-lagret för att säkerställa kompatibilitet med äldre kärnor. Den huvudsakliga utvecklingen kommer att utföras i wireguard-linux.git repository, men så länge det finns en möjlighet och behov bland användarna kommer en separat version av patchar också att stödjas i fungerande form.

Låt oss påminna dig om att VPN WireGuard är implementerat på basis av moderna krypteringsmetoder, ger mycket hög prestanda, är lätt att använda, fri från komplikationer och har bevisat sig i ett antal stora installationer som bearbetar stora trafikvolymer. Projektet har utvecklats sedan 2015, har granskats och formell verifiering använda krypteringsmetoder. WireGuard-stöd är redan integrerat i NetworkManager och systemd, och kärnpatchar ingår i basdistributionerna Debian instabil, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, subgraph и ALT.

WireGuard använder konceptet med krypteringsnyckeldirigering, vilket innebär att man fäster en privat nyckel till varje nätverksgränssnitt och använder den för att binda de publika nycklarna. Publika nycklar utbyts för att upprätta en anslutning på liknande sätt som SSH. För att förhandla nycklar och ansluta utan att köra en separat demon i användarutrymmet, Noise_IK-mekanismen från Noise Protocol Frameworkliknande att underhålla auktoriserade_nycklar i SSH. Dataöverföring sker genom inkapsling i UDP-paket. Den stöder ändring av IP-adressen för VPN-servern (roaming) utan att koppla från anslutningen och automatiskt omkonfigurera klienten.

För kryptering används ström chiffer ChaCha20 och meddelandeautentiseringsalgoritm (MAC) Poly1305, designad av Daniel Bernstein (Daniel J. Bernstein), Tanya Lange
(Tanja Lange) och Peter Schwabe. ChaCha20 och Poly1305 är positionerade som snabbare och säkrare analoger till AES-256-CTR och HMAC, vars mjukvaruimplementering gör det möjligt att uppnå en fast exekveringstid utan användning av speciellt hårdvarustöd. För att generera en delad hemlig nyckel används det elliptiska kurvan Diffie-Hellman-protokollet i implementeringen Curve25519, också föreslagit av Daniel Bernstein. Algoritmen som används för hashning är BLAKE2s (RFC7693).

vid testning Prestanda WireGuard visade 3.9 gånger högre genomströmning och 3.8 gånger högre respons jämfört med OpenVPN (256-bitars AES med HMAC-SHA2-256). Jämfört med IPsec (256-bitars ChaCha20+Poly1305 och AES-256-GCM-128), visar WireGuard en liten prestandaförbättring (13-18%) och lägre latens (21-23%). Testerna utfördes med hjälp av snabba implementeringar av krypteringsalgoritmer som utvecklats av projektet - överföring till kärnans standard Crypto API kan leda till sämre prestanda.

VPN WireGuard har accepterats i net-next-grenen och är planerad att inkluderas i Linux 5.6-kärnan

Källa: opennet.ru

Lägg en kommentar