Implementeringen af VPN WireGuard til Windows-kernen er præsenteret

Jason A. Donenfeld, skaberen af VPN WireGuard, har præsenteret projektet WireGuardNT, der udvikler en højtydende VPN-port til WireGuard til Windows-kernen, kompatibel med Windows 7, 8, 8.1 og 10, og understøtter arkitekturerne AMD64, x86, ARM64 og ARM. Implementeringskoden distribueres under GPLv2. Den nye driver er allerede inkluderet i WireGuard-klienten til Windows, men er indtil videre markeret som eksperimentel og ikke aktiveret som standard.

Porten er baseret på den veldokumenterede kodebase fra den primære implementation af WireGuard til Linux-kernen, som er oversat til brugen af Windows-kernens entiteter og netværksstakken NDIS. I forhold til den tidligere tilgængelige Windows-implementation wireguard-go, der kører i brugerrummet og bruger netværksgrænsefladen Wintun, adskiller WireGuardNT sig ved en væsentlig forbedring af ydeevnen ved at undgå kontekstskift og kopiering af pakkeindhold fra kernen til brugerrummet. Ligesom i implementeringerne til Linux, OpenBSD og FreeBSD arbejder al protokolbehandling direkte på niveauet af netværksstakken i WireGuardNT.

Selvom specifikke optimeringer endnu ikke er blevet gennemført, har WireGuardNT allerede opnået en maksimal dataoverførselshastighed på 7.5Gbps i det nuværende testmiljø med Ethernet. På virkelige bruger-systemer med Wi-Fi er ydeevnen betydeligt lavere, men adskiller sig lidt fra direkte dataoverførsel. For eksempel, i et system med et trådløst kort Intel AC9560 var båndbredden uden WireGuard 600Mbps og forblev også på 600Mbps med WireGuardNT, mens den med wireguard-go/Wintun var 95Mbps.

Lad os minde om, at VPN WireGuard er baseret på moderne krypteringsteknikker, tilbyder meget høj ydeevne, er let at bruge, fri for kompleksiteter og har vist sig at være effektiv i en række store implementeringer, der håndterer store mængder trafik. Projektet har været under udvikling siden 2015 og har gennemgået revision og formel verifikation af de anvendte krypteringsmetoder. WireGuard anvender konceptet med nøglebaseret routing, som involverer tildeling af en privat nøgle til hver netværksgrænseflade og anvendelse til at knytte offentlige nøgler sammen.

Nøgleudvekslingen til opsætning af forbindelsen sker på tilsvarende måde som med SSH. For at forhandle nøgler og oprette forbindelse uden at starte en separat brugerlanddaemon anvendes Noise_IK-mekanismen fra Noise Protocol Framework, som ligner vedligeholdelsen af authorized_keys i SSH. Dataoverførsel sker gennem indkapsling i UDP-pakker. Skift understøttes IP-adresser VPN-servere (roaming) uden afbrydelse af forbindelsen med automatisk genkonfiguration af klienten.

Til kryptering anvendes stream cipher ChaCha20 og message authentication algorithm (MAC) Poly1305, udviklet af Daniel Bernstein, Tanja Lange og Peter Schwabe. ChaCha20 og Poly1305 præsenteres som hurtigere og sikrere alternativer til AES-256-CTR og HMAC, hvis softwareimplementering gør det muligt at opnå en fast udførelsestid uden at involvere specialiseret hardwareunderstøttelse. Protokollen for generation af den fælles hemmelige nøgle anvender Diffie-Hellman på elliptiske kurver med implementeringen Curve25519, også foreslået af Daniel Bernstein. Hashing anvender algoritmen BLAKE2s (RFC7693).

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster