symbolsk udgivelse af VPN , som markerede leveringen af WireGuard-komponenter i den primære kernel og stabiliseringen af udviklingen. Koden, der er inkluderet i Linux-kernen, en yderligere sikkerhedsrevision udført af et uafhængigt firma, der specialiserer sig i sådanne inspektioner. Revisionen afslørede ingen problemer.
Da WireGuard nu bliver udviklet i den primære Linux-kernel, er der for distributioner og brugere, der fortsætter med at bruge ældre versioner af kernen, forberedt et repository . Repositoryet inkluderer den backportede WireGuard-kode og et compat.h-lag for at sikre kompatibilitet med ældre kerner. Der er bemærket, at så længe der er mulighed for udviklere og behov hos brugerne, vil den adskilte version af patches blive vedligeholdt i funktionelt stand. I den nuværende tilstand kan den adskilte version af WireGuard anvendes med kerner fra og , og er også tilgængelig som patches til Linux-kernene. og Distributioner, der anvender de nyeste kerner, såsom Arch, Gentoo og
Fedora 32, vil få mulighed for at bruge WireGuard sammen med opdateringen til kerne 5.6.
Den primære udviklingsproces foregår nu i repositoryet , der inkluderer det komplette Linux-kuntre med ændringer fra Wireguard-projektet. Patches fra dette repository vil blive gennemgået for inklusion i den primære kerne og regelmæssigt overført til net/net-next-grenene. Udviklingen af brugerlands-værktøjer og scripts, såsom wg og wg-quick, foregår i repositoryet , som kan bruges til at oprette pakker i distributioner.
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 , der ligner vedligeholdelsen af authorized_keys i SSH. Dataoverførslen foregår ved inkapsulering i UDP-pakker. Skift af IP-adressen på VPN-serveren (roaming) understøttes uden afbrydelse af forbindelsen 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 , også foreslået af Daniel Bernstein. Der anvendes algoritmen .
Under den gamle WireGuard viste 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) viser WireGuard en lille præstationsfordel (13-18%) og reduceret forsinkelse (21-23%). Resultaterne af testene, der er offentliggjort på projektets hjemmeside, dækker den gamle adskilte implementering af WireGuard og er markeret som utilstrækkeligt kvalitetsmæssige. Siden testene blev udført, er koden for både WireGuard og IPsec blevet yderligere optimeret og fungerer nu hurtigere. En mere omfattende test, der dækker den integrerede implementering i kernen, er endnu ikke udført. Ikke desto mindre bemærkes det, at WireGuard i visse situationer stadig overhaler IPsec på grund af multi-trådning, mens OpenVPN forbliver meget langsomt.
Kilde: opennet.ru
