Una nova implementazione VPN, WireGuard, hè stata aghjunta à a basa di codice FreeBSD.

L'arbulu di fonte FreeBSD hè statu aghjurnatu cù una nova implementazione di VPN WireGuard, basatu annantu à u codice di u modulu di u kernel pruduciutu cumuna da i squadre di sviluppu core FreeBSD è WireGuard cù cuntributi di Jason A. Donenfeld, autore di VPN WireGuard, è John H. Baldwin ), un sviluppatore ben cunnisciutu di GDB è FreeBSD, chì hà implementatu u supportu per SMP è NUMA in u kernel FreeBSD in u principiu di l'anni 2000. Dopu chì u driver hè accettatu in FreeBSD (sys/dev/wg), u so sviluppu è u so mantenimentu seranu da quì in avanti in u repository FreeBSD.

Prima chì u codice hè accettatu, una rivisione completa di i cambiamenti hè stata realizata cù u supportu di a Fundazione FreeBSD, durante a quale l'interazzione di u driver cù u restu di i sottosistemi di u kernel hè stata ancu analizata è a pussibilità di utilizà primitive criptografiche furnite da u kernel. hè statu valutatu.

Per utilizà l'algoritmi criptografici richiesti da u driver, l'API di u criptu-sottosistema di u kernel FreeBSD hè stata allargata, à quale hè statu aghjuntu un arnese chì permette l'usu di algoritmi chì ùn sò micca supportati in FreeBSD per mezu di a criptografia-API standard, utilizendu l'implementazione di l'algoritmi. l'algoritmi necessarii da a libreria libsodium. Di l'algoritmi integrati in u driver, solu u codice per calculà l'hash Blake2 hè lasciatu, postu chì l'implementazione di questu algoritmu furnitu in FreeBSD hè ligata à una dimensione di hash fissu.

Inoltre, durante u prucessu di rivisione, l'ottimisazione di u codice hè stata realizata, chì hà permessu di aumentà l'efficienza di a distribuzione di carica in CPU multi-core (l'equilibriu uniforme di l'assignazione di criptografia di pacchetti è funzioni di decryption à i core CPU hè stata assicurata). In u risultatu, l'overhead durante u processu di pacchetti era vicinu à quellu di l'implementazione di u driver Linux. U codice furnisce ancu a capacità di utilizà u driver ossl per accelerà l'operazioni di criptografia.

A cuntrariu di u tentativu precedente di integrà WireGuard in FreeBSD, a nova implementazione usa l'utilità standard wg, invece di una versione mudificata di ifconfig, chì permette di unificà a cunfigurazione in Linux è FreeBSD. L'utilità wg, cum'è u cunduttore, hè inclusu in u codice fonte FreeBSD, chì hè statu pussibule cambiendu a licenza per u codice wg (u codice hè avà dispunibule sottu a licenza MIT è GPL). L'ultimu tentativu di include WireGuard in FreeBSD hè statu fattu in 2020, ma hà finitu in un scandalu, per via di u quale u codice digià aghjuntu hè statu eliminatu per via di una qualità bassa, un travagliu trascuratu cù buffers, l'usu di stub invece di cuntrolli, implementazione incompleta. di u protocolu è a violazione di a licenza GPL.

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 prugettu hè sviluppatu da u 2015, è hè statu sottumessu à un auditu è ​​verificazione formale di i metudi di criptografia utilizati. 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 di u Noise Protocol Framework hè utilizatu, simile à 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 the connection with automatic client reconfiguration.

A criptografia usa u cifru ChaCha20 stream è l'algoritmu d'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à una chjave sicreta spartuta, u protocolu Diffie-Hellman di curva ellittica hè utilizatu in l'implementazione Curve25519, pruposta ancu da Daniel Bernstein. L'algoritmu BLAKE2s (RFC7693) hè utilizatu per l'hashing.

Source: opennet.ru

Add a comment