Jason A. Donenfeld, die outeur van WireGuard VPN, het die eerste groot weergawe van die WireGuard-kliëntsagteware vir Windows 1.0 vrygestel, sowel as die WireGuardNT 1.0-drywers met 'n poort ... Skynprivaatnetwerk WireGuard vir die Windows 10- en 11-kern, wat AMD64-, x86- en ARM64-argitekture ondersteun. Die Windows-kernkomponentkode word gelisensieer onder die GPLv2, en die kliëntsagteware word gelisensieer onder die MIT-lisensie.
Die poort is gebaseer op die kodebasis van die hoof WireGuard-implementering vir die Linux-kern, wat omgeskakel is om Windows-kern-entiteite en die NDIS-netwerkstapel te gebruik. In vergelyking met die wireGuard-go-implementering, wat in gebruikersruimte loop en die Wintun-netwerkkoppelvlak gebruik, bied WireGuardNT beduidende prestasieverbeterings deur konteksskakelaars uit te skakel en pakkie-inhoud van die kern na gebruikersruimte te kopieer. Soortgelyk aan die implementerings vir Linux, OpenBSD en FreeBSD, loop alle protokolverwerkingslogika in WireGuardNT direk op die netwerkstapelvlak.
Weergawe 1.0 is as 'n mylpaal gemerk, wat die oplossing van 'n aantal probleme en die vervulling van beoogde take aandui, soos: die gebruik van die NdisWdfGetAdapterContextFromAdapterHandle()-funksie in plaas van die minder veilige berging van die drywerstatus in die Gereserveerde veld en die gebruik van ongedokumenteerde verrekeninge; korrekte en vinnige opsporing van die MTU (Maksimum Transmissie-eenheid) grootte deur die onderskepping van stelseloproepe; die gebruik van die C23-standaard in die kode.
Laat ons u daaraan herinner dat VPN WireGuard geïmplementeer word op die basis van moderne enkripsiemetodes, baie hoë werkverrigting lewer, maklik is om te gebruik, vry van komplikasies en homself bewys het in 'n aantal groot implementerings wat groot volumes verkeer verwerk. Die projek ontwikkel sedert 2015, en het 'n oudit en formele verifikasie ondergaan van die enkripsiemetodes wat gebruik word. WireGuard gebruik die konsep van enkripsiesleutelroetering, wat behels dat 'n private sleutel aan elke netwerkkoppelvlak geheg word en dit gebruik om die publieke sleutels te bind.
Die uitruil van publieke sleutels om 'n verbinding te vestig, is soortgelyk aan SSH. Om sleutels te onderhandel en te verbind sonder om 'n aparte daemon in gebruikersruimte te laat loop, word die Noise_IK-meganisme van die Noise Protocol Framework gebruik, soortgelyk aan die instandhouding van authorized_keys in SSH. Data-oordrag word uitgevoer via inkapseling in UDP-pakkette. Verandering word ondersteun. IP-adresse VPN-bedieners (roaming) sonder verbindingsonderbreking met outomatiese kliëntherkonfigurasie.
Enkripsie gebruik die ChaCha20-stroomsyfer en die Poly1305-boodskapverifikasiealgoritme (MAC), ontwikkel deur Daniel J. Bernstein, Tanja Lange en Peter Schwabe. ChaCha20 en Poly1305 is geposisioneer as vinniger en veiliger analoë van AES-256-CTR en HMAC, waarvan die sagteware-implementering dit moontlik maak om 'n vaste uitvoeringstyd te bereik sonder die gebruik van spesiale hardeware-ondersteuning. Om 'n gedeelde geheime sleutel te genereer, word die elliptiese kurwe Diffie-Hellman protokol gebruik in die Curve25519 implementering, ook voorgestel deur Daniel Bernstein. Die BLAKE2s-algoritme (RFC7693) word vir hashing gebruik.
Bron: opennet.ru
