WireGuard VPN foar Windows en WireGuardNT 1.0 útbrocht

Jason A. Donenfeld, de auteur fan WireGuard VPN, hat de earste grutte release fan 'e WireGuard-kliïntsoftware foar Windows 1.0 útbrocht, lykas de WireGuardNT 1.0-stjoerprogramma's mei in poarte VPN WireGuard foar de Windows 10- en 11-kernel, dy't AMD64-, x86- en ARM64-arsjitektueren stipet. De komponintkoade fan 'e Windows-kernel is lisinsearre ûnder de GPLv2, en de kliïntsoftware is lisinsearre ûnder de MIT-lisinsje.

De port is basearre op 'e koadebasis fan 'e wichtichste WireGuard-ymplemintaasje foar de Linux-kernel, dy't omboud is om Windows-kernelentiteiten en de NDIS-netwurkstack te brûken. Yn ferliking mei de wireGuard-go-ymplemintaasje, dy't rint yn brûkersromte en de Wintun-netwurkynterface brûkt, biedt WireGuardNT wichtige prestaasjeferbetteringen troch kontekstwikselingen te eliminearjen en pakketynhâld fan 'e kernel nei brûkersromte te kopiearjen. Fergelykber mei de ymplemintaasjes foar Linux, OpenBSD en FreeBSD rint alle protokolferwurkingslogika yn WireGuardNT direkt op it netwurkstacknivo.

Ferzje 1.0 waard markearre as in mylpeal, en markearre de oplossing fan in oantal problemen en de ferfolling fan bedoelde taken, lykas: it gebrûk fan 'e NdisWdfGetAdapterContextFromAdapterHandle()-funksje ynstee fan 'e minder feilige opslach fan 'e stjoerprogrammastatus yn it fjild Reserved en it gebrûk fan net-dokumintearre offsets; korrekte en rappe folging fan 'e MTU (Maximum Transmission Unit)-grutte troch it ûnderskeppen fan systeemopropen; it gebrûk fan 'e C23-standert yn 'e koade.

Lit ús jo herinnerje dat VPN WireGuard wurdt ymplementearre op basis fan moderne fersiferingsmetoaden, leveret heul hege prestaasjes, is maklik te brûken, is frij fan komplikaasjes en hat himsels goed bewiisd yn in oantal grutte ymplemintaasjes dy't grutte folumes ferkear ferwurkje. It projekt is sûnt 2015 ûntwikkele en hat in kontrôle en formele ferifikaasje ûndergien fan 'e brûkte fersiferingsmetoaden. WireGuard brûkt it konsept fan kaai-basearre fersiferingsrouting, wêrby't it assosjearjen fan in privee kaai mei elke netwurkynterface en it brûken fan iepenbiere kaaien foar bining.

De útwikseling fan iepenbiere kaaien om in ferbining te meitsjen is fergelykber mei SSH. Om oer kaaien te ûnderhanneljen en te ferbinen sûnder in aparte daemon yn brûkersromte út te fieren, wurdt it Noise_IK-meganisme út it Noise Protocol Framework brûkt, fergelykber mei it ûnderhâld fan authorized_keys yn SSH. Gegevensoerdracht wurdt útfierd fia ynkapseling yn UDP-pakketten. Wizigjen wurdt stipe. IP adressen VPN-tsjinners (roaming) sûnder ferbiningsûnderbrekking mei automatyske kliïntkonfiguraasje.

De fersifering brûkt de ChaCha20 stream cipher en de Poly1305 berjocht autentikaasje algoritme (MAC), ûntwikkele troch Daniel J. Bernstein, Tanja Lange, en Peter Schwabe. ChaCha20 en Poly1305 wurde gepositioneerd as flugger en feiliger analogen fan AES-256-CTR en HMAC, de software-ymplemintaasje wêrfan it mooglik makket om in fêste útfieringstiid te berikken sûnder it brûken fan spesjale hardware-stipe. Om de dielde geheime kaai te generearjen, wurdt it Elliptic Curve Diffie-Hellman-protokol brûkt yn 'e Curve25519-ymplemintaasje, ek foarsteld troch Daniel Bernstein. It BLAKE2s (RFC7693) algoritme wurdt brûkt foar hashing.

Boarne: opennet.ru