VPN WireGuard hè stata accettata in u ramu net-next è hè prevista per l'inclusione in u kernel Linux 5.6.

David Miller (David S. Miller), rispunsevuli di u sottosistema di rete di u kernel Linux, accettatu à u ramu net-next patchs cù l'implementazione di l'interfaccia VPN da u prugettu WireGuard. A principiu di l'annu dopu, i cambiamenti accumulati in u ramu net-next formanu a basa per a liberazione di u kernel Linux 5.6.

I tentativi di spinghje u codice WireGuard in u kernel principale sò stati fatti annantu à l'ultimi anni, ma ùn anu micca successu per esse ligatu à implementazioni proprietarii di funzioni criptografiche chì sò stati utilizati per migliurà u rendiment. In principiu, sti funzioni eranu prupostu per u kernel cum'è un Zinc API di livellu bassu supplementu, chì puderia eventualmente rimpiazzà l'API Crypto standard.

Dopu à discussioni in a cunferenza Kernel Recipes, i creatori di WireGuard in settembre hà fattu una decisione di cumprumissu trasferisce i vostri patch per utilizà l'API Crypto dispunibule in u core, à quale i sviluppatori di WireGuard anu lagnanza in u campu di u rendiment è a sicurità generale. Hè statu decisu di cuntinuà à sviluppà l'API Zinc, ma cum'è un prughjettu separatu.

In u Novembre, i sviluppatori di kernel andò in risposta à un cumprumissu è accunsenu à trasfiriri parte di u codice da Zinc à u kernel principale. Essenzialmente, certi cumpunenti di Zinc seranu spustati in u core, ma micca cum'è una API separata, ma cum'è parte di u subsistema Crypto API. Per esempiu, l'API Crypto digià inclusu implementazioni veloci di l'algoritmi ChaCha20 è Poly1305 preparati in WireGuard.

In cunnessione cù a prossima consegna di WireGuard in u core principale, u fundatore di u prugettu annunziatu circa a ristrutturazione di u repository. Per simplificà u sviluppu, u repository monoliticu "WireGuard.git", chì hè statu cuncepitu per esse isolatu, serà rimpiazzatu da trè repositori separati, più adattati per urganizà u travagliu cù u codice in u kernel principale:

  • wireguard-linux.git - un arbulu di kernel cumpletu cù cambiamenti da u prughjettu Wireguard, patches da quale seranu rivisioni per l'inclusione in u kernel è regularmente trasferitu à e rami net/net-next.
  • wireguard-tools.git - un repository per utilità è scripts eseguiti in u spaziu di l'utilizatori, cum'è wg è wg-quick. U repositariu pò esse usatu per creà pacchetti per distribuzioni.
  • wireguard-linux-compat.git - un repository cù una variante di u modulu, furnitu separatamente da u kernel è cumprendi a capa compat.h per assicurà a cumpatibilità cù i kernel più vechji. U sviluppu principalu serà realizatu in u repository wireguard-linux.git, ma sempre chì ci hè una opportunità è bisognu trà l'utilizatori, una versione separata di i patches serà ancu supportata in forma di travagliu.

Ricordemu chì VPN WireGuard hè implementatu nantu à a basa di i metudi di criptografia muderni, furnisce un rendimentu assai altu, hè faciule d'utilizà, senza cumplicazioni è hà pruvatu in una quantità di grandi implementazioni chì processanu grandi volumi di trafficu. U prughjettu si sviluppa dapoi u 2015, hè statu auditatu è verificazione formale i metudi di criptografia utilizati. U supportu WireGuard hè digià integratu in NetworkManager è systemd, è i patches di kernel sò inclusi in e distribuzioni di basa. Debian instabile, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Sottografu и ALT.

WireGuard usa u cuncettu di u routing di chjave di criptografia, chì implica l'attachete una chjave privata à ogni interfaccia di rete è l'utilizanu per ligà i chjavi publichi. I chjavi publichi sò scambiati per stabilisce una cunnessione in modu simili à SSH. Per negozià e chjave è cunnette senza eseguisce un daemon separatu in u spaziu di l'utilizatori, u mecanismu Noise_IK da Quadru di protocolu di rumoresimile à mantene autorizate_keys in SSH. A trasmissione di dati hè realizata per incapsulazione in pacchetti UDP. Supporta cambià l'indirizzu IP di u servitore VPN (roaming) senza disconnecting a cunnessione è automaticamente reconfiguring u cliente.

Per a criptografia si usa criptu di flussu ChaCha20 è l'algoritmu di autentificazione di missaghju (MAC) Poly1305, cuncepitu da Daniel Bernstein (Daniel J. Bernstein), Tanya Lange
(Tanja Lange) è Petru 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à una chjave secreta spartuta, u protocolu Diffie-Hellman di curva ellittica hè utilizatu in l'implementazione Curve25519, prupostu ancu da Daniel Bernstein. L'algoritmu utilizatu per l'hashing hè BLAKE2s (RFC7693).

à prova Rendimentu WireGuard hà dimustratu 3.9 volte più altu è una risposta 3.8 volte più altu cumparatu cù OpenVPN (256-bit AES cù HMAC-SHA2-256). Comparatu à IPsec (256-bit ChaCha20 + Poly1305 è AES-256-GCM-128), WireGuard mostra una ligera migliione di rendiment (13-18%) è una latenza più bassa (21-23%). I testi sò stati realizati utilizendu implementazioni veloci di algoritmi di criptografia sviluppati da u prugettu - u trasferimentu à l'API Crypto standard di u kernel pò purtà à un rendimentu peghju.

VPN WireGuard hè stata accettata in u ramu net-next è hè prevista per l'inclusione in u kernel Linux 5.6.

Source: opennet.ru

Add a comment