Jason A. Donenfeld, autore di VPN WireGuard, hà presentatu a prima versione significativa di u software client WireGuard di Windows 1.0, è ancu i driver WireGuardNT 1.0 cù portu VPN WireGuard per u core Windows 10 è 11, chì supportanu l'architetture AMD64, x86 è ARM64. Codice di cumpunente per u kernel Windows hè distribuitu sottu a licenza GPLv2, è u software cliente sottu a licenza MIT.
U portu hè basatu annantu à a basa di codice di l'implementazione principale WireGuard per u core Linux, chì hè statu cunvertitu per aduprà entità core Windows è a pila di rete NDIS. In paragone cù l'implementazione wireguard-go, chì funziona in u spaziu utilizatore è usa l'interfaccia di rete Wintun, WireGuardNT offre miglioramenti significativi di e prestazioni eliminendu u cambiamentu di cuntestu è a copia di u cuntenutu di i pacchetti da u kernel à u spaziu di l'utente. Simile à l'implementazioni per Linux, OpenBSD è FreeBSD in WireGuardNT hà tutta a logica di trasfurmazione di u protocolu chì funziona direttamente à u livellu di a pila di rete.
A versione 1.0 hè stata marcata cum'è una tappa impurtante, chì hà marcatu a risoluzione di una quantità di prublemi è a realizazione di i compiti previsti, cum'è: l'usu di a funzione NdisWdfGetAdapterContextFromAdapterHandle() invece di u almacenamentu menu sicuru di u statu di u driver in u campu Riservatu è l'usu di offset senza documentazione; tracciamentu currettu è rapidu di a dimensione MTU (Maximum Transmission Unit) per mezu di l'intercettazione di e chjamate di sistema; l'usu di u standard C23 in u codice.
Ricurdemuci chì VPN WireGuard Implementatu cù metudi di crittografia muderni, furnisce prestazioni assai elevate, hè faciule d'utilizà, hè senza cumplicazioni, è s'hè pruvatu in una quantità di implementazioni à grande scala chì gestiscenu grandi volumi di trafficu. U prugettu hè in sviluppu dapoi u 2015 è hè statu sottumessu à un audit è una verificazione formale di i so metudi di crittografia. WireGuard U cuncettu di routing basatu annantu à chjave hè utilizatu, chì implica ligà una chjave privata à ogni interfaccia di rete è aduprà chjave publiche per u ligame.
U scambiu di chjave publiche per stabilisce una cunnessione hè simile à SSH. Per negocià e chjave è cunnette si senza eseguisce un daemon separatu in u spaziu di l'utilizatore, si usa u mecanismu Noise_IK di u Noise Protocol Framework, simile à a manutenzione di authorized_keys in SSH. U trasferimentu di dati hè realizatu via incapsulazione in pacchetti UDP. A mudificazione hè supportata. indirizzi IP Servitori VPN (roaming) senza interruzzione di cunnessione cù riconfigurazione automatica di u cliente.
A criptografia usa u criptu di flussu ChaCha20 è l'algoritmu di autentificazione di missaghju Poly1305 (MAC), sviluppatu da Daniel J. Bernstein, Tanja Lange è Peter Schwabe. ChaCha20 è Poly1305 sò posizionati cum'è analoghi più veloci è più sicuri di AES-256-CTR è HMAC, l'implementazione di u software permette di ottene un tempu di esecuzione fissa senza l'usu di supportu hardware speciale. Per generà a chjave secreta spartuta, u protocolu Elliptic Curve Diffie-Hellman hè utilizatu in l'implementazione Curve25519, pruposta ancu da Daniel Bernstein. L'algoritmu BLAKE2s (RFC7693) hè utilizatu per l'hashing.
Source: opennet.ru
