VPN WireGuard è stato accettato nel ramo net-next ed è previsto per l'inclusione nel kernel Linux 5.6

David Miller (David S. Miller), responsabile del sottosistema di rete del kernel Linux, ha accolto ha incluso nella branch net-next patch con l'implementazione dell'interfaccia VPN del progetto WireGuard. All'inizio del prossimo anno, le modifiche accumulate nel ramo net-next costituiranno la base per il rilascio del kernel Linux 5.6.

Negli ultimi anni ci sono stati tentativi di integrare il codice di WireGuard nel kernel principale, ma senza successo a causa della dipendenza dalle proprie implementazioni delle funzioni crittografiche, che erano progettate per migliorarne le performance. Inizialmente, queste funzioni erano sono offerti per il kernel come API di basso livello aggiuntiva, Zinc, che nel tempo potrebbe sostituire l'SSL Crypto API standard.

Dopo negoziazioni alla conferenza Kernel Recipes, i creatori di WireGuard a settembre hanno preso una decisione compromissoria per convertire le loro patch all'uso del Crypto API esistente nel kernel, a cui gli sviluppatori di WireGuard avevano sollevato preoccupazioni riguardo alle performance e alla sicurezza generale. Si è deciso di continuare a sviluppare API Zinc, ma come progetto a sé stante.

A novembre, gli sviluppatori del kernel hanno adottato hanno risposto con un compromesso e hanno accettato di trasferire parti del codice da Zinc nel kernel principale. In sostanza, alcuni componenti di Zinc saranno trasferiti nel kernel, ma non come API separata, bensì come parte del Crypto API. Ad esempio, nel Crypto API sono già sono inclusi preparate in WireGuard implementazioni rapide degli algoritmi ChaCha20 e Poly1305.

In vista del previsto inserimento di WireGuard nel kernel principale, il fondatore del progetto ha annunciato ha annunciato la ristrutturazione del repository. Per semplificare lo sviluppo, il monolitico repository 'WireGuard.git', progettato per un'esistenza separata, sarà sostituito da tre repository distinti, più adatti per organizzare il lavoro con il codice nel kernel principale:

  • wireguard-linux.git — un albero completo del kernel con modifiche dal progetto Wireguard, le patch di questo verranno revisionate per l'inclusione nel kernel e trasferite regolarmente nei rami net/net-next.
  • wireguard-tools.git — un repository per strumenti e script eseguiti nello spazio utente, come wg e wg-quick. Questo repository può essere utilizzato per creare pacchetti per le distribuzioni.
  • wireguard-linux-compat.git — un repository con una versione del modulo fornita separatamente dal kernel e includente uno strato compat.h per garantire la compatibilità con i vecchi kernel. Lo sviluppo principale sarà condotto nel repository wireguard-linux.git, ma finché ci sarà richiesta da parte degli utenti, la versione separata delle patch sarà anche mantenuta in una forma operativa.

Ricordiamo che il VPN WireGuard è implementato utilizzando tecniche di crittografia moderne, garantisce prestazioni molto elevate, è facile da usare, privo di complicazioni e ha dimostrato la sua efficacia in vari grandi implementazioni che gestiscono elevate quantità di traffico. Il progetto è in sviluppo dal 2015, ha superato un audit e la verifica formale metodi di crittografia applicati. Il supporto per WireGuard è già integrato in NetworkManager e systemd, e le patch per il kernel sono incluse nel core delle distribuzioni Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph e ALT.

In WireGuard, the concept of routing by encryption keys is applied, which involves binding a private key to each network interface and using it to link public keys. The exchange of public keys to establish a connection is analogous to SSH. To negotiate keys and connect without launching a separate user-space daemon, the Noise_IK mechanism is used from Noise Protocol Framework, simile al mantenimento di authorized_keys in SSH. Il trasferimento dei dati avviene tramite incapsulamento in pacchetti UDP. È supportato il cambio dell'indirizzo IP del server VPN (roaming) senza interrompere la connessione e una riassegnazione 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 (Daniel J. Bernstein), Tanja Lange
(Tanja Lange) and Peter Schwabe. ChaCha20 and Poly1305 are positioned as faster and more secure alternatives to AES-256-CTR and HMAC, with a software implementation that allows achieving fixed execution time without requiring special hardware support. The Diffie-Hellman protocol on elliptic curves is used for generating a shared secret key in the implementation of Curve25519, proposta anche da Daniel Bernstein. Per l'hashing viene utilizzato l'algoritmo BLAKE2s (RFC7693).

Durante testing le performance di WireGuard hanno dimostrato una capacità di throughput superiore del 3.9 volte e una reattività superiore del 3.8 volte rispetto a OpenVPN (AES a 256 bit con HMAC-SHA2-256). Rispetto a IPsec (ChaCha20+Poly1305 a 256 bit e AES-256-GCM-128), WireGuard mostra un leggero vantaggio in termini di performance (13-18%) e una riduzione della latenza (21-23%). I test sono stati eseguiti utilizzando implementazioni rapide di algoritmi di crittografia sviluppate dal progetto — la transizione al Crypto API standard del kernel potrebbe portare a un deterioramento delle performance.

VPN WireGuard è stato accettato nel ramo net-next ed è previsto per l'inclusione nel kernel Linux 5.6

Fonte: opennet.ru

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