VPN WireGuard er blevet accepteret i net-næste-grenen og er planlagt til inklusion i Linux 5.6-kernen

David Miller (David S. Miller), ansvarlig for netværksundersystemet i Linux-kernen, accepteret til den næste gren plastre med implementering af VPN-grænsefladen fra projektet WireGuard. Tidligt næste år vil ændringer akkumuleret i net-næste-grenen danne grundlag for udgivelsen af ​​Linux-kernen 5.6.

Forsøg på at skubbe WireGuard-koden ind i hovedkernen er blevet gjort i løbet af de sidste par år, men forblev mislykkede på grund af at være bundet til proprietære implementeringer af kryptografiske funktioner, der blev brugt til at forbedre ydeevnen. Oprindeligt var disse funktioner foreslog for kernen som en ekstra lav-niveau zink API, som i sidste ende kunne erstatte standard Crypto API.

Efter diskussioner på Kernel Recipes-konferencen, skaberne af WireGuard i september truffet en kompromisbeslutning overfør dine patches for at bruge Crypto API, der er tilgængeligt i kernen, hvortil WireGuard-udviklerne har klager inden for ydeevne og generel sikkerhed. Det blev besluttet at fortsætte udviklingen af ​​Zinc API, men som et separat projekt.

I november, kernel udviklere gik som svar på et kompromis og accepterede at overføre en del af koden fra zink til hovedkernen. I det væsentlige vil nogle zinkkomponenter blive flyttet ind i kernen, men ikke som en separat API, men som en del af Crypto API-undersystemet. For eksempel allerede Crypto API inkluderet hurtige implementeringer af ChaCha20 og Poly1305 algoritmerne udarbejdet i WireGuard.

I forbindelse med den kommende levering af WireGuard i hovedkernen, grundlæggeren af ​​projektet объявил om omstrukturering af depotet. For at forenkle udviklingen vil det monolitiske "WireGuard.git"-lager, som er designet til at eksistere isoleret, blive erstattet af tre separate depoter, der er bedre egnet til at organisere arbejde med kode i hovedkernen:

  • wireguard-linux.git - et komplet kernetræ med ændringer fra Wireguard-projektet, hvorfra patches vil blive gennemgået for inklusion i kernen og regelmæssigt overført til net/net-next-grenene.
  • wireguard-tools.git - et lager for hjælpeprogrammer og scripts, der køres i brugerrummet, såsom wg og wg-quick. Depotet kan bruges til at oprette pakker til distributioner.
  • wireguard-linux-compat.git - et lager med en variant af modulet, leveret separat fra kernen og inklusive compat.h-laget for at sikre kompatibilitet med ældre kerner. Hovedudviklingen vil blive udført i wireguard-linux.git repository, men så længe der er mulighed og behov blandt brugerne, vil en separat version af patcherne også blive understøttet i arbejdsform.

Lad os minde dig om, at VPN WireGuard er implementeret på basis af moderne krypteringsmetoder, giver meget høj ydeevne, er nem at bruge, fri for komplikationer og har bevist sig selv i en række store implementeringer, der behandler store mængder trafik. Projektet har været under udvikling siden 2015, er blevet revideret og formel verifikation anvendte krypteringsmetoder. WireGuard-understøttelse er allerede integreret i NetworkManager og systemd, og kernepatches er inkluderet i basisdistributionerne Debian ustabil, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, delgraf и ALT.

WireGuard bruger konceptet med krypteringsnøgle routing, som involverer at knytte en privat nøgle til hver netværksgrænseflade og bruge den til at binde de offentlige nøgler. Offentlige nøgler udveksles for at etablere en forbindelse på samme måde som SSH. For at forhandle nøgler og oprette forbindelse uden at køre en separat dæmon i brugerrummet, kan Noise_IK-mekanismen fra Støjprotokolrammesvarende til at vedligeholde autoriserede_nøgler i SSH. Datatransmission udføres gennem indkapsling i UDP-pakker. Det understøtter ændring af IP-adressen på VPN-serveren (roaming) uden at afbryde forbindelsen og automatisk omkonfigurere klienten.

Til kryptering brugt stream chiffer ChaCha20 og meddelelsesgodkendelsesalgoritme (MAC) Poly1305, designet af Daniel Bernstein (Daniel J. Bernstein), Tanya Lange
(Tanja Lange) og Peter Schwabe. ChaCha20 og Poly1305 er placeret som hurtigere og sikrere analoger af AES-256-CTR og HMAC, hvis softwareimplementering gør det muligt at opnå en fast udførelsestid uden brug af speciel hardwaresupport. For at generere en delt hemmelig nøgle bruges den elliptiske kurve Diffie-Hellman protokol i implementeringen Curve25519, også foreslået af Daniel Bernstein. Algoritmen der bruges til hashing er BLAKE2s (RFC7693).

test Ydeevne WireGuard demonstrerede 3.9 gange højere gennemløb og 3.8 gange højere reaktionsevne 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 ydelsesforbedring (13-18%) og lavere latenstid (21-23%). Testene blev udført ved hjælp af hurtige implementeringer af krypteringsalgoritmer udviklet af projektet - overførsel til standard Crypto API af kernen kan føre til dårligere ydeevne.

VPN WireGuard er blevet accepteret i net-næste-grenen og er planlagt til inklusion i Linux 5.6-kernen

Kilde: opennet.ru

Tilføj en kommentar