A fost prezentată implementarea VPN WireGuard pentru kernelul Windows

Jason A. Donenfeld, autorul VPN WireGuard, a prezentat proiectul WireGuardNT, care dezvoltă un port de înaltă performanță pentru VPN WireGuard destinat nucleului Windows, compatibil cu Windows 7, 8, 8.1 și 10, și suportând arhitecturi AMD64, x86, ARM64 și ARM. Codul de implementare este distribuit sub licența GPLv2. Noua drivere a fost deja inclusă în clientul WireGuard pentru Windows, dar este marcată în prezent ca experimentale și nu este activată în mod implicit.

Portul se bazează pe o bază de cod bine testată a implementării de bază WireGuard pentru nucleul Linux, care a fost adaptată pentru a utiliza entitățile nucleului Windows și stiva de rețea NDIS. Comparativ cu implementarea anterioară pentru Windows, wireguard-go, care rulează în spațiul utilizatorului și folosește interfața de rețea Wintun, WireGuardNT oferă o creștere semnificativă a performanței prin eliminarea operațiunilor de comutare a contextului și a copierea conținutului pachetelor din nucleu în spațiul utilizatorului. La fel ca în implementările pentru Linux, OpenBSD și FreeBSD, în WireGuardNT toată logica de procesare a protocolului funcționează direct la nivelul stivei de rețea.

Deși optimizările specifice nu au fost încă realizate, WireGuardNT a reușit deja să atingă o performanță maximă a transferului de date la nivel de 7.5Gbps în medii de testare existente cu Ethernet. Pe sistemele reale ale utilizatorilor cu Wi-Fi, performanța este semnificativ mai mică, dar nu se distinge prea mult de transferul direct de date. De exemplu, pe un sistem cu un adaptor wireless Intel AC9560, lățimea de bandă fără WireGuard a fost de 600Mbps, iar cu WireGuardNT a rămas tot la 600Mbps, în timp ce utilizarea wireguard-go/Wintun avea 95Mbps.

Reamintim că VPN WireGuard este implementat pe baza metodologiilor moderne de criptare, oferă performanțe foarte ridicate, este ușor de utilizat, fără complicații și s-a dovedit fiabil în numeroase implementări majore care procesează volume mari de trafic. Proiectul este în dezvoltare din 2015, a trecut auditul și verificarea formală a metodelor de criptare aplicate. WireGuard utilizează conceptul de rutare pe baza cheilor de criptare, ceea ce implică legarea unui cheie privată la fiecare interfață de rețea și utilizarea acesteia pentru asociarea cheilor publice.

Schimbul de chei publice pentru stabilirea conexiunii se realizează similar cu SSH. Pentru negocierea cheilor și conectarea fără a lansa un daemon separat în spațiul utilizatorului, se aplică mecanismul Noise_IK din Noise Protocol Framework, similar cu menținerea authorized_keys în SSH. Transferul de date se face prin encapsularea în pachete UDP. Se suportă schimbarea adrese IP Servere VPN (roaming) fără întreruperea conexiunii cu reconfigurarea automată a clientului.

Pentru criptare se utilizează cifra pe flux ChaCha20 și algoritmul de autentificare a mesajelor (MAC) Poly1305, dezvoltați de Daniel Bernstein, Tanja Lange și Peter Schwabe. ChaCha20 și Poly1305 sunt considerate analogi mai rapizi și mai siguri ai AES-256-CTR și HMAC, a căror implementare software permite obținerea unui timp de execuție fix fără a necesita suport hardware specializat. Pentru generarea cheii secrete comune, se folosește protocolul Diffie-Hellman pe curbe eliptice în implementarea Curve25519, de asemenea propusă de Daniel Bernstein. Algoritmul BLAKE2s (RFC7693) este utilizat pentru hashing.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster