VPN WireGuard estis akceptita en la net-sekva branĉo kaj estas planita por inkludo en la Linukso 5.6 kerno

David Miller (David S. Miller), respondeca por la interkonekta subsistemo de la Linukso-kerno, akceptis al la reto-sekva branĉo flikiloj kun la efektivigo de la VPN-interfaco de la projekto WireGuard. Komence de la venonta jaro, ŝanĝoj akumulitaj en la net-next branĉo formos la bazon por la liberigo de la Linukso-kerno 5.6.

Provoj puŝi la WireGuard-kodon en la ĉefan kernon estis faritaj dum la lastaj jaroj, sed restis malsukcesaj pro esti ligitaj al proprietaj efektivigoj de kriptografiaj funkcioj, kiuj estis uzataj por plibonigi rendimenton. Komence, ĉi tiuj funkcioj estis proponis por la kerno kiel kroma malaltnivela Zinc-API, kiu povus eventuale anstataŭigi la norman Crypto-API.

Sekvante diskutojn ĉe la Kernel Recipes-konferenco, la kreintoj de WireGuard en septembro faris kompromisan decidon transdonu viajn diakilojn por uzi la Crypto-API disponeblan en la kerno, al kiu la programistoj de WireGuard havas plendojn en la kampo de rendimento kaj ĝenerala sekureco. Estis decidite daŭri evoluigi la Zinc API, sed kiel aparta projekto.

En novembro, kernaj programistoj iris responde al kompromiso kaj konsentis transdoni parton de la kodo de Zinc al la ĉefa kerno. Esence, iuj Zinc-komponentoj estos movitaj en la kernon, sed ne kiel aparta API, sed kiel parto de la Crypto API-subsistemo. Ekzemple, la Crypto API jam inkluzivita rapidaj efektivigoj de la ChaCha20 kaj Poly1305-algoritmoj preparitaj en WireGuard.

Lige kun la venonta livero de WireGuard en la ĉefa kerno, la fondinto de la projekto anoncita pri restrukturado de la deponejo. Por simpligi evoluon, la monolita deponejo "WireGuard.git", kiu estis desegnita por ekzisti izole, estos anstataŭigita per tri apartaj deponejoj, pli taŭgaj por organizi laboron kun kodo en la ĉefa kerno:

  • wireguard-linux.git - kompleta kerno-arbo kun ŝanĝoj de la Wireguard-projekto, diakiloj el kiuj estos reviziitaj por inkluziviĝo en la kerno kaj regule transdonitaj al la net/net-next branĉoj.
  • wireguard-tools.git - deponejo por iloj kaj skriptoj rulitaj en uzantspaco, kiel wg kaj wg-quick. La deponejo povas esti uzata por krei pakaĵojn por distribuoj.
  • wireguard-linux-compat.git - deponejo kun varianto de la modulo, provizita aparte de la kerno kaj inkluzivanta la compat.h-tavolon por certigi kongruon kun pli malnovaj kernoj. La ĉefa evoluo estos efektivigita en la deponejo wireguard-linux.git, sed dum ekzistas ŝanco kaj bezono inter uzantoj, aparta versio de la flikoj ankaŭ estos subtenata en funkcia formo.

Ni memorigu al vi, ke VPN WireGuard estas efektivigita surbaze de modernaj ĉifradmetodoj, provizas tre altan rendimenton, estas facile uzebla, sen komplikaĵoj kaj pruvis sin en kelkaj grandaj deplojoj, kiuj prilaboras grandajn volumojn de trafiko. La projekto disvolviĝas ekde 2015, estis reviziita kaj formala konfirmo ĉifrado metodoj uzataj. WireGuard-subteno jam estas integrita en NetworkManager kaj systemd, kaj kernaj diakiloj estas inkluzivitaj en la bazaj distribuoj. Debian Malstabila, Mageia, Alpa, Arch, Gentoo, OpenWrt, NixOS, Subgrafeo и ALT.

WireGuard uzas la koncepton de ĉifrada ŝlosilvojigo, kiu implikas alkroĉi privatan ŝlosilon al ĉiu retinterfaco kaj uzi ĝin por ligi la publikajn ŝlosilojn. Publikaj ŝlosiloj estas interŝanĝitaj por establi konekton en simila maniero al SSH. Por negoci ŝlosilojn kaj konekti sen ruli apartan demonon en uzantspaco, la mekanismo Noise_IK de Kadro pri Brua Protokolosimila al konservado de rajtigitaj_ŝlosiloj en SSH. Transdono de datumoj estas efektivigita per enkapsuligo en UDP-pakaĵoj. Ĝi subtenas ŝanĝi la IP-adreson de la VPN-servilo (roaming) sen malkonekti la konekton kaj aŭtomate reagordi la klienton.

Por ĉifrado estas uzata stream ĉifro ChaCha20 kaj mesaĝo-aŭtentikiga algoritmo (MAC) Poly1305, dizajnita fare de Daniel Bernstein (Daniel J. Bernstein), Tanya Lange
(Tanja Lange) kaj Peter Schwabe. ChaCha20 kaj Poly1305 estas poziciigitaj kiel pli rapidaj kaj sekuraj analogoj de AES-256-CTR kaj HMAC, kies programaro efektivigas ebligas atingi fiksan ekzekuttempon sen la uzo de speciala aparatara subteno. Por generi komunan sekretan ŝlosilon, la elipsa kurbo Diffie-Hellman-protokolo estas uzata en la efektivigo Curve25519, ankaŭ proponita fare de Daniel Bernstein. La algoritmo uzata por hashing estas BLAKE2s (RFC7693).

ĉe testado Efikeco WireGuard montris 3.9 fojojn pli altan trairon kaj 3.8 fojojn pli altan respondecon kompare kun OpenVPN (256-bita AES kun HMAC-SHA2-256). Kompare kun IPsec (256-bita ChaCha20 + Poly1305 kaj AES-256-GCM-128), WireGuard montras iometan rendimentan plibonigon (13-18%) kaj pli malaltan latentecon (21-23%). La testoj estis faritaj per rapidaj efektivigoj de ĉifradaj algoritmoj evoluigitaj de la projekto - transdonado al la norma Crypto API de la kerno povas konduki al pli malbona agado.

VPN WireGuard estis akceptita en la net-sekva branĉo kaj estas planita por inkludo en la Linukso 5.6 kerno

fonto: opennet.ru

Aldoni komenton