Rilasciati VPN WireGuard per Windows e WireGuardNT 1.0

Jason A. Donenfeld, autore di VPN WireGuard, ha presentato il primo significativo rilascio del software client WireGuard per Windows 1.0, insieme ai driver WireGuardNT 1.0. VPN WireGuard per i kernel di Windows 10 e 11, che supporta le architetture AMD64, x86 e ARM64. Il codice dei componenti per il kernel di Windows è distribuito sotto licenza GPLv2, mentre il software client è sotto licenza MIT.

Il porting si basa sul codice sorgente principale dell'implementazione di WireGuard per kernel Linux, adattato per utilizzare le entità del kernel di Windows e lo stack di rete NDIS. Rispetto all'implementazione wireguard-go, che opera nello spazio utente e utilizza l'interfaccia di rete Wintun, WireGuardNT presenta un notevole aumento delle prestazioni grazie all'eliminazione delle operazioni di cambio di contesto e copia del contenuto dei pacchetti dal kernel allo spazio utente. Analogamente alle implementazioni per Linux, OpenBSD e FreeBSD, in WireGuardNT tutta la logica di elaborazione del protocollo opera direttamente a livello dello stack di rete.

La versione 1.0 segna una sorta di traguardo, risolvendo vari problemi e raggiungendo obiettivi come: l'utilizzo della funzione NdisWdfGetAdapterContextFromAdapterHandle() al posto della meno sicura memorizzazione dello stato del driver nel campo Riservato e l'uso di offset non documentati; il monitoraggio corretto e tempestivo della dimensione MTU (Maximum Transmission Unit) attraverso l'intercettazione delle chiamate di sistema; e l'integrazione nel codice dello standard C23.

Ricordiamo che il VPN WireGuard è stato implementato secondo moderne tecniche di crittografia, offre prestazioni molto elevate, è semplice da utilizzare, privo di complicazioni e si è dimostrato efficace in diversi importanti progetti che gestiscono grandi volumi di traffico. Il progetto è in sviluppo dal 2015, ha superato audit e verifiche formali delle tecniche di crittografia utilizzate. In WireGuard viene applicato un concetto di routing basato sulle chiavi di crittografia, che implica l'associazione di una chiave privata a ciascuna interfaccia di rete e l'utilizzo per collegare le chiavi pubbliche.

Lo scambio di chiavi pubbliche per stabilire una connessione avviene per analogia con SSH. Per il protocollo di scambio delle chiavi e la connessione senza l'avvio di un demone separato nello spazio utente, viene utilizzato il meccanismo Noise_IK del Noise Protocol Framework, simile alla gestione di authorized_keys in SSH. La trasmissione dei dati avviene tramite incapsulamento in pacchetti UDP. È supportato il cambio Indirizzi IP di server VPN (roaming) senza interruzione della connessione con riconfigurazione automatica del client.

Per la crittografia viene utilizzato il cifrario a flusso ChaCha20 e l'algoritmo di autenticazione dei messaggi (MAC) Poly1305, sviluppati da Daniel Bernstein, Tanja Lange e Peter Schwabe. ChaCha20 e Poly1305 sono posizionati come alternative più veloci e sicure a AES-256-CTR e HMAC, la cui implementazione software consente di ottenere tempi di esecuzione fissi senza richiedere supporto hardware speciale. Per generare una chiave segreta condivisa viene impiegato il protocollo di Diffie-Hellman su curve ellittiche con implementazione Curve25519, anch'esso proposto da Daniel Bernstein. Per l'hashing viene utilizzato l'algoritmo BLAKE2s (RFC7693).

Fonte: opennet.ru

Acquista un hosting affidabile per siti con protezione DDoS, server VPS VDS 🔥 Acquista un hosting affidabile per siti con protezione DDoS, server VPS VDS | ProHoster