Išleistas „WireGuard VPN“, skirtas „Windows“, ir „WireGuardNT 1.0“

Jasonas A. Donenfeldas, „WireGuard VPN“ autorius, išleido pirmąją pagrindinę „WireGuard“ kliento programinės įrangos, skirtos „Windows 1.0“, versiją, taip pat „WireGuardNT 1.0“ tvarkykles su prievadu. VPT „WireGuard“, skirta „Windows 10“ ir „11“ branduoliams, palaikanti AMD64, x86 ir ARM64 architektūras. „Windows“ branduolio komponentų kodas licencijuotas pagal GPLv2 licenciją, o kliento programinė įranga – pagal MIT licenciją.

Šis prievadas pagrįstas pagrindinio „WireGuard“ įgyvendinimo „Linux“ branduolyje kodo baze, kuri buvo konvertuota naudoti „Windows“ branduolio objektus ir NDIS tinklo steko. Palyginti su „wireguard-go“ įgyvendinimu, kuris veikia vartotojo erdvėje ir naudoja „Wintun“ tinklo sąsają, „WireGuardNT“ siūlo reikšmingus našumo patobulinimus, nes pašalinami kontekstiniai jungikliai ir paketų turinys kopijuojamas iš branduolio į vartotojo erdvę. Panašiai kaip ir „Linux“, „OpenBSD“ ir „FreeBSD“ įgyvendinimuose, visa protokolų apdorojimo logika „WireGuardNT“ veikia tiesiogiai tinklo steko lygmenyje.

1.0 versija pažymėta kaip svarbus etapas, žymintis daugelio problemų sprendimą ir numatytų užduočių įvykdymą, pavyzdžiui: vietoj mažiau saugaus tvarkyklės būsenos saugojimo rezervuotame lauke ir nedokumentuotų poslinkių naudojimo naudojama funkcija „NdisWdfGetAdapterContextFromAdapterHandle()“; teisingas ir greitas MTU (maksimalaus perdavimo vieneto) dydžio stebėjimas perimant sistemos iškvietimus; C23 standarto naudojimas kode.

Primename, kad VPN WireGuard yra įdiegtas remiantis šiuolaikiniais šifravimo metodais, užtikrina labai aukštą našumą, yra paprastas naudoti, nesukelia komplikacijų ir puikiai pasitvirtino daugelyje didelių diegimų, apdorojančių didelius srautus. Projektas vystomas nuo 2015 m., atliktas auditas ir formalus naudojamų šifravimo metodų patikrinimas. „WireGuard“ naudoja raktu pagrįsto šifravimo maršruto parinkimo koncepciją, kuri apima privataus rakto susiejimą su kiekviena tinklo sąsaja ir viešųjų raktų naudojimą surišimui.

Viešųjų raktų keitimas ryšiui užmegzti yra panašus į SSH. Norint susitarti dėl raktų ir prisijungti nepaleidus atskiro demono vartotojo erdvėje, naudojamas „Noise_IK“ mechanizmas iš „Noise Protocol Framework“, panašiai kaip „authorized_keys“ priežiūra SSH. Duomenų perdavimas atliekamas kapsuliuojant į UDP paketus. Keitimas yra palaikomas. IP adresai VPN serveriai (tarptinklinis ryšys) be ryšio pertraukimo su automatiniu kliento konfigūravimu.

Šifravimui naudojamas ChaCha20 srauto šifras ir Poly1305 pranešimų autentifikavimo algoritmas (MAC), kurį sukūrė Daniel J. Bernstein, Tanja Lange ir Peter Schwabe. ChaCha20 ir Poly1305 yra išdėstyti kaip greitesni ir saugesni AES-256-CTR ir HMAC analogai, kurių programinė įranga leidžia pasiekti fiksuotą vykdymo laiką nenaudojant specialios aparatinės įrangos. Norint sugeneruoti bendrą slaptąjį raktą, Curve25519 diegime naudojamas Elipsinės kreivės Diffie-Hellman protokolas, kurį taip pat pasiūlė Daniel Bernstein. BLAKE2s (RFC7693) algoritmas naudojamas maišymui.

Šaltinis: opennet.ru