David Miller (), som er ansvarlig for Linux-kernens netværkssystem, i net-next-grenen med implementeringen af VPN-grænsefladen fra projektet . I begyndelsen af det kommende år vil ændringerne, der ophobes i net-next-grenen, danne grundlaget for udgivelsen af Linux-kernen 5.6.
Forsøg på at fremme WireGuard-koden til den primære kernen er blevet gjort i de seneste år, men har været uden held på grund af afhængigheden af proprietære implementeringer af kryptografiske funktioner, der blev anvendt for at forbedre ydeevnen. I starten blev disse funktioner til kernen som et supplementalt lavniveau API Zinc, som med tiden kunne erstatte standard Crypto API.
Efter forhandlinger på konferencen Kernel Recipes, tog skaberne af WireGuard i september om at omdanne deres patches til at bruge den eksisterende Crypto API i kernen, som udviklerne af WireGuard har indvendinger imod med hensyn til ydeevne og generel sikkerhed. API Zinc blev besluttet at blive videreudviklet, men som et separat projekt.
I november indgik kerneludviklerne forberedt hurtige implementeringer af algoritmerne ChaCha20 og Poly1305 i WireGuard. I forbindelse med den kommende integration af WireGuard i den primære kerne, har projektets grundlægger
omstrukturering af biblioteket. For at forenkle udviklingen vil det monolitiske bibliotek 'WireGuard.git', der var beregnet til at eksistere separat, blive afløst af tre separate biblioteker, der bedre passer til organiseringen af arbejdet med koden i den primære kerne: — et komplet kerne-træ med ændringer fra Wireguard-projektet, hvis patches vil blive gennemgået for inklusion i kernen og regelmæssigt overført til net/net-next-grene.
- — et bibliotek til brugerpladsværktøjer og scripts, såsom wg og wg-quick. Biblioteket kan bruges til at oprette pakker til distributioner.
- — et repository til brugte brugerpladsværktøjer og scripts, såsom wg og wg-quick. Repository'en kan bruges til at oprette pakker til distributioner.
- — et repository med en version af modulet, der leveres adskilt fra kernen og inkluderer laget compat.h for at sikre kompatibilitet med ældre kerner. Den primære udvikling vil finde sted i repositoryet wireguard-linux.git, men så længe der er muligheder og behov fra brugerne, vil en separat version af patchene også blive vedligeholdt.
Det er værd at bemærke, at VPN WireGuard er baseret på moderne krypteringsmetoder, tilbyder meget høj ydeevne, er nem at bruge, fri for komplekse funktioner og har vist sig effektiv i flere store implementeringer, der håndterer store mængder trafik. Projektet har været under udvikling siden 2015, har gennemgået revision og anvendte krypteringsmetoder. Støtte til WireGuard er allerede integreret i NetworkManager og systemd, og patches til kernen indgår i grundkomponenterne i distributioner , Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, og .
WireGuard anvender konceptet med nøglebaseret routing, som indebærer at tilknytte et privat nøgle til hver netværksgrænseflade og anvende åbne nøgler til at etablere forbindelser. Udvekslingen af åbne nøgler til forbindelsesoprettelse foregår på lignende vis som SSH. Til aftale nøgler og forbindelser uden at starte en separat daemon i brugerland bruges Noise_IK-mekanismen fra , som ligner opretholdelsen af authorized_keys i SSH. Dataoverførsel foregår gennem inkapsulering i UDP-pakker. Skift af IP-adresse på VPN-serveren (roaming) understøttes uden afbrydelse af forbindelsen og med automatisk genkonfiguration af klienten.
Til kryptering strømcypher og algoritme til autentificering af meddelelser (MAC) , udviklet af Daniel Bernstein (), Tanja Lange
(Tanja Lange) og Peter Schwabe. ChaCha20 og Poly1305 præsenteres som hurtigere og sikrere alternativer til AES-256-CTR og HMAC, hvis softwareimplementering muliggør en fast udførelsestid uden at kræve særlig hardwareunderstøttelse. Protokollen for at generere en delt hemmelig nøgle anvender Diffie-Hellman på elliptiske kurver i implementeringen , som også foreslået af Daniel Bernstein. Hashing udføres ved brug af algoritmen .
Ved WireGuard har vist en 3,9 gange højere båndbredde og 3,8 gange højere responsivitet sammenlignet med OpenVPN (256-bit AES med HMAC-SHA2-256). Sammenlignet med IPsec (256-bit ChaCha20+Poly1305 og AES-256-GCM-128) er der en lille præstationsfordel ved WireGuard (13-18%) og reduceret latenstid (21-23%). Testene er udført ved brug af hurtige implementeringer af krypteringsalgoritmer udviklet af projektet — overgangen til den standard Crypto API i kernen kan medføre et fald i ydeevnen.
Kilde: opennet.ru
