WireGuard VPN accepteras i net-next branch och planeras för inkludering i Linux-kärnan 5.6

David Miller (David S. Miller), ansvarig för nätverksundersystemet i Linux-kärnan, accepterad till nästa gren plåster med implementeringen av VPN-gränssnittet från projektet WireGuard. Tidigt nästa år kommer förändringarna som ackumuleras i net-next-grenen att utgöra grunden för Linux-kärnan 5.6-utgåvan.

Försök att trycka in WireGuard-kod i huvudkärnan har gjorts under de senaste åren, men har misslyckats på grund av dess koppling 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 föredrag på Kernel Recipes-konferensen, WireGuards skapare i september fattade ett kompromissbeslut att översätta sina patchar för att använda Crypto API:et som finns tillgängligt i kärnan, vilket WireGuard-utvecklarna har klagomål på gällande prestanda och allmän säkerhet. Det beslutades att fortsätta utveckla Zinc API, men som ett separat projekt.

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

Med WireGuard på väg att skickas i huvudkärnan, projektets grundare meddelat om omstrukturering av förvar. 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 som är bättre lämpade för att organisera arbete med kod i huvudkärnan:

  • wireguard-linux.git — det fullständiga kärnträdet med ändringar från Wireguard-projektet, från vilka patchar kommer att granskas för inkludering i kärnan och regelbundet migreras till net/net-next-grenarna.
  • wireguard-tools.git — ett arkiv för runtime-verktyg och skript för användarutrymme, 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 version av modulen, som levereras separat från kärnan och inkluderar ett compat.h-lager för att säkerställa kompatibilitet med äldre kärnor. Den huvudsakliga utvecklingen kommer att utföras i wireguard-linux.git-arkivet, men så länge det finns möjlighet och efterfrågan från användare 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 Framework, liknande att underhålla auktoriserade_nycklar i SSH. Dataöverföring sker genom inkapsling i UDP-paket. Stöder ändring av IP-adressen för VPN-servern (roaming) utan att koppla från och automatisk omkonfigurering av 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 WireGuard uppvisade 3.9 gånger högre dataflöde 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) visade WireGuard en liten prestandafördel (13–18 %) och minskad latens (21–23 %). Testerna utfördes med hjälp av snabba implementeringar av krypteringsalgoritmer som utvecklats av projektet – att byta till kärnans standard Crypto API kan leda till försämrade resultat.

 WireGuard VPN accepteras i net-next branch och planeras för inkludering i Linux-kärnan 5.6

Källa: opennet.ru

Köp pålitlig hosting för webbplatser med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster