David Miller (), i cili është përgjegjës për nënkomponentin e rrjetit të bërthamës Linux, në përbërje të degës net-next me implementimin e ndërfaqes VPN nga projekti . Në fillim të vitit të ardhshëm, ndryshimet që grumbullohen në degën net-next do të shërbejnë si themel për lëshimin e bërthamës Linux 5.6.
Përpjekjet për të avancuar kodin e WireGuard në bërthamën e këtij projekti janë bërë gjatë disa viteve të fundit, por kanë mbetur pa rezultat për shkak të varësisë nga implementimet e brendshme të funksioneve kriptografike, të cilat janë përdorur për të përmirësuar performancën. Në fillim, këto funksione janë për bërthamën si një API të ulët shtesë Zinc, e cila me kalimin e kohës do të mund të zëvendësojë Crypto API-në standarde.
Pas negociatave në konferencën Kernel Recipes, krijuesit e WireGuard në shtator për të transferuar patch-at e tyre në përdorimin e Crypto API-t të disponueshëm në bërthamë, për të cilin zhvilluesit e WireGuard kanë dyshime në lidhje me performancën dhe sigurinë e përgjithshme. API Zinc është vendosur të vazhdojë zhvillimin, por si një projekt të veçantë.
Në nëntor, zhvilluesit e bërthamës morrën një tjetër kompromis dhe pranuan të transferonin në bërthamën kryesore një pjesë të kodit nga Zinc. Në thelb, disa komponentë të Zinc do të transferohen në bërthamë, por jo si një API të veçantë, të paktën si një pjesë e nënkomponentit Crypto API. Për shembull, në Crypto API janë tashmë të përgatitura në WireGuard implementime të shpejta të algoritmave ChaCha20 dhe Poly1305.
Në lidhje me dorëzimin e pritshëm të WireGuard në bërthamën kryesore, themeluesi i projektit foli për ristrukturimin e repositorit. Për të thjeshtuar zhvillimin, në vend të repositorit monolitik "WireGuard.git", i cili ishte i përshtatur për ekzistencë të veçantë, do të vijnë tre repositorë të veçantë, që janë më të përshtatshëm për organizimin e punës me kodin në bërthamën kryesore:
- â struktura e plotĂ« e bĂ«rthamĂ«s me ndryshime nga projekti Wireguard, patch-at e tĂ« cilit do tĂ« rishikohen pĂ«r t'u pĂ«rfshirĂ« nĂ« bĂ«rthamĂ« dhe do tĂ« transferohen rregullisht nĂ« degĂ«t net/net-next.
- â repository pĂ«r utilitat dhe skripte tĂ« lansuara nĂ« hapĂ«sirĂ«n e pĂ«rdoruesit, si wg dhe wg-quick. Repositorin mund tĂ« pĂ«rdorim pĂ«r tĂ« krijuar paketa pĂ«r shpĂ«rndarje.
- â repository me njĂ« variant moduli, i ofruar nĂ« mĂ«nyrĂ« tĂ« veçuar nga bĂ«rthama dhe duke pĂ«rfshirĂ« njĂ« shtresĂ« compat.h pĂ«r tĂ« siguruar kompatibilitet me bĂ«rthamĂ«n e vjetĂ«r. Zhvillimi kryesor do tĂ« vazhdojĂ« nĂ« repositorin wireguard-linux.git, por pĂ«r sa kohĂ« ka mundĂ«si dhe nevojĂ« nga pĂ«rdoruesit, varianti i veçantĂ« i patch-ave gjithashtu do tĂ« mbĂ«shtetet nĂ« formĂ« funksionale.
Kujtojmë se VPN WireGuard është implementuar në bazë të metodave të modernes të enkriptimit, siguron një performancë shumë të lartë, është e lehtë për t'u përdorur, e liruar nga kompleksitetet dhe ka treguar rezultate të mira në një numër zbatimesh të mëdha që përpunojnë volume të mëdha trafiku. Projekti është duke u zhvilluar që nga viti 2015, ka kaluar auditimin dhe metodat e aplikueshme të enkriptimit. Mbështetje për WireGuard është tashmë e integruar në NetworkManager dhe systemd, dhe patch-et për bërthamën hyjnë në përbërjen bazë të distribucioneve , Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, dhe .
Në WireGuard përdoret koncepti i rrugëzimit sipas çelsave të enkriptimit, i cili nënkupton lidhjen e çdo ndërfaqe rrjeti me një çelës të mbyllur dhe përdorimin për lidhjen e çelësve të hapur. Shkëmbimi i çelësve të hapur për të vendosur një lidhje bëhet sipas një modeli si SSH. Për harmonizimin e çelësve dhe lidhjen pa nisur një demon të veçantë në hapësirën e përdoruesit, përdoret mekanizmi Noise_IK nga , e ngjashme me mbajtjen e authorized_keys në SSH. Transferimi i të dhënave bëhet përmes kapsulimit në paketa UDP. Mbështetet ndërrimi i adresës IP të serverit VPN (roaming) pa ndërprerje të lidhjes dhe rinovimin automatik të klientit.
Për enkriptim shifra e rrymës dhe algoritmi i autentikimit të mesazheve (MAC) , zhvilluar nga Daniel Bernstein (), Tanja Lange
(Tanja Lange) dhe Peter Schwabe (Peter Schwabe). ChaCha20 dhe Poly1305 pozicionohen si alternativa më të shpejta dhe më të sigurta ndaj AES-256-CTR dhe HMAC, realizimi i softuerit të cilëve lejon arritjen e një kohe të fiksuar të ekzekutimit pa angazhuar mbështetje të posaçme harduerike. Për gjenerimin e çelësit të përbashkët sekret përdoret protokolli i Diiffi-Hellman në kurba eliptike në realizimin , gjithashtu i propozuar nga Daniel Bernstein. Për hashim përdoret algoritmi .
NĂ« performanca e WireGuard ka demonstruar njĂ« kapacitet kalimi 3.9 herĂ« mĂ« tĂ« lartĂ« dhe njĂ« pĂ«rgjigje 3.8 herĂ« mĂ« tĂ« lartĂ«, krahasuar me OpenVPN (256-bit AES me HMAC-SHA2-256). Krahasuar me IPsec (256-bit ChaCha20 + Poly1305 dhe AES-256-GCM-128), nĂ« WireGuard vĂ«rehet njĂ« pĂ«rparim i vogĂ«l nĂ« performancĂ« (13-18%) dhe njĂ« reduktim tĂ« vonesave (21-23%). Testet janĂ« realizuar duke pĂ«rdorur implementimet e shpejta tĂ« algoritmave tĂ« kriptimit tĂ« zhvilluara nga projekti â kalimi nĂ« Crypto API-nĂ« standarde tĂ« bĂ«rthamĂ«s mund tĂ« sjellĂ« njĂ« pĂ«rkeqĂ«sim tĂ« performancĂ«s.
Burimi: opennet.ru
