Jason A. Donenfeld, skrywer van VPN WireGuard, het die eerste beduidende vrystelling van kliëntsagteware aangebied WireGuard vir Windows 1.0, sowel as drywers WireGuardNT 1.0 с портом Skynprivaatnetwerk WireGuard vir die kern Windows 10 en 11, wat AMD64-, x86- en ARM64-argitekture ondersteun. Komponentkode vir die kern Windows word versprei onder die GPLv2-lisensie, en die kliëntsagteware onder die MIT-lisensie.
Порт основан на кодовой базе основной реализации WireGuard vir die kern Linux, wat omgeskakel is om kern-entiteite te gebruik Windows и сетевого стека NDIS. По сравнению с реализацией wireguard-go, wat in gebruikersruimte loop en die Wintun-netwerkkoppelvlak gebruik, WireGuardNT отличается существенным повышением производительности за счёт исключения операций переключения контекста и копирования содержимого пакетов из ядра в пространство пользователя. По аналогии с реализациями для Linux, OpenBSD en FreeBSD in WireGuardNT het alle protokolverwerkingslogika wat direk op die netwerkstapelvlak loop.
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 jou daaraan herinner dat VPN WireGuard Dit word geïmplementeer met behulp van moderne enkripsiemetodes, bied baie hoë werkverrigting, is maklik om te gebruik, is vry van komplikasies, en het homself bewys in 'n aantal grootskaalse implementerings wat groot volumes verkeer hanteer. Die projek is sedert 2015 in ontwikkeling en het 'n oudit en formele verifikasie van sy enkripsiemetodes ondergaan. WireGuard Die konsep van sleutelgebaseerde roetering word gebruik, wat behels dat 'n privaat sleutel aan elke netwerkkoppelvlak gebind word en publieke sleutels vir binding gebruik word.
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
