Jason A. Donenfeld, WireGuardi VPN autor, tutvustas Windowsi jaoks WireGuardi klientprogrammi esimest olulist väljaannet 1.0, samuti WireGuardNT 1.0 draivereid. VPN WireGuard Windows 10 ja 11 südamikele, mis toetab AMD64, x86 ja ARM64 arhitektuure. Südamike komponendi kood on levitatud GPLv2 litsentsi alusel ja klientprogrammi kood MIT litsentsi alusel.
Port põhineb WireGuardi tuum Linuxi rakenduse koodibaasil, mis on kohandatud Windowsi südamike ja NDIS võrgu steki entiteetide kasutamiseks. Erinevalt wireguard-go rakendusest, mis töötab kasutajaruumi ja kasutab Wintun võrguliidest, pakub WireGuardNT märkimisväärset jõudluse paranemist konteksti vaheüleminekute ja pakettide sisu kopeerimise eemaldamise kaudu südamikust kasutajaruumi. Nagu ka Linuxi, OpenBSD ja FreeBSD rakendustes, töötab WireGuardNTis kõik protokolli töötlemise loogika otse võrgu steki tasandil.
Versioon 1.0 on tähistatud kui omamoodi verstapost, mis toodab lahendusi mitmetele probleemidele ja saavutab seatud eesmärke, nagu: NdisWdfGetAdapterContextFromAdapterHandle() funktsiooni kasutamine vähem ohutu draiveri oleku hoidmise asemel Reserved väljas ja dokumenteerimata nihkeid; õige ja kiire MTU (Maximum Transmission Unit) suuruse jälgimine süsteemikõnede pealtkuulamise kaudu; C23 standardi koodi kaasamine.
Tuletame meelde, et WireGuardi VPN rakendus põhineb kaasaegsetel krüpteerimismeetoditel, pakub väga head jõudlust, on lihtne kasutada, vaba keerukustest ja on kindlalt tõestatud mitmes suures rakendamises, mis töötlevad suuri andmemahtusid. Projekt on arenenud alates 2015. aastast, läbinud auditi ja formaalse valideerimise kasutatavate krüpteerimismeetodite osas. WireGuard kasutab krüpteerimisvõtmete marsruutimise kontseptsiooni, mis hõlmab iga võrgu liidese eravõtme sidumist ja avalike võtmete sidumist.
Ühenduse loomise avatud võtmete vahetus toimub SSH-i sarnaselt. Võtmete kokkuleppimiseks ja ühenduse loomiseks ilma eraldi kasutaja ruumi deemonit käitata kasutatakse Noise Protocol Frameworki Noise_IK mehhanismi, mis sarnaneb SSH autoriseeritud võtmete haldamisega. Andmed edastatakse UDP-pakettidesse kapseldatuna. Toetatakse vahetust IP-aadressid VPN-serveri (roaming) ühenduse katkestamata üleminek koos kliendi automaatse ümberkonfigureerimisega.
Krüpteerimiseks kasutatakse voogkrüptograafiat ChaCha20 ja sõnumite autentimise algoritmi (MAC) Poly1305, mille on välja töötanud Daniel Bernstein, Tanja Lange ja Peter Schwabe. ChaCha20 ja Poly1305 on esitatud kiiremate ja turvalisemate alternatiividena AES-256-CTR ja HMAC-le, mille programmiline teostus võimaldab saavutada fikseeritud täitmise aega ilma spetsiaalse riistvaratoe kaasamiseta. Ühise salajase võtme genereerimiseks kasutatakse elliptiliste kõverate põhjalikku Diffie-Hellmani protokolli Curve25519 teostuses, mille on samuti välja pakkunud Daniel Bernstein. Hashimise jaoks kasutatakse algoritmi BLAKE2s (RFC7693).
Allikas: opennet.ru
