David Miller (), i cili është përgjegjës për nëndegën e rrjetit të bërthamës Linux, si pjesë e 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ë formojnë bazën e versionit të bërthamës Linux 5.6.
Përpjekjet për të avancuar kodin e WireGuard në bërthamë janë bërë gjatë disa viteve të fundit, por kanë mbetur pa rezultat për shkak të lidhjes me implementimet e veta të funksioneve kriptografike, që janë përdorur për të rritur performancën. Fillimisht, këto funksione u krijuan për bërthamën si një API të ulët shtesë të Zinc, i cili me kalimin e kohës do të mund të zëvendësojë API-në standarde Crypto.
Pas negociatave në konferencën Kernel Recipes, krijuesit e WireGuard në shtator për të transferuar patch-et e tyre në përdorim të API-t Crypto të pranishëm në bërthamë, për të cilin zhvilluesit e WireGuard kanë shqetësime në lidhje me performancën dhe sigurinë e përgjithshme. API Zinc u vendos të vazhdojë të zhvillohet, por si një projekt i veçantë.
Në nëntor, zhvilluesit e bërthamës në një kompromis të kthyer dhe ranë dakord të transferojnë një pjesë të kodit nga Zinc në bërthamë. Në thelb, disa komponentë të Zinc do të transferohen në bërthamë, por jo si një API i veçantë, përkundrazi si pjesë e nënstrukturës API Crypto. Për shembull, në API-në Crypto tashmë janë përgatitur në WireGuard implementime të shpejta të algoritmeve ChaCha20 dhe Poly1305.
Në lidhje me shpërndarjen e ardhshme të WireGuard në bërthamën kryesore, themeluesi i projektit rreth ristrukturimit të depozitës. Për të lehtësuar zhvillimin, në vend të depozitës monolitike ‘WireGuard.git’, e cila ishte e projektuar për ekzistencë të veçantë, do të vijnë tri depozita të veçanta, më të përshtatshme për organizimin e punës me kodin në bërthamën kryesore:
- — një pemë e plotë bërthamore me ndryshimet nga projekti Wireguard, patch-et e të cilit do të shqyrtohen për përfshirje në bërthamë dhe do të transferohen rregullisht në degët net/net-next.
- — një depo për utilitetet dhe skriptet që ekzekutohen në hapësirën e përdoruesit, si wg dhe wg-quick. Depozita mund të përdoret për të krijuar paketa për shpërndarësit.
- — një depo me variantin e modulit, i ofruar veçmas nga bërthama dhe që përmban shtresën compat.h për të siguruar pajtueshmërinë me bërthamat e vjetra. Zhvillimi kryesor do të zhvillohet në depon wireguard-linux.git, por derisa ekziston mundësia dhe nevoja nga përdoruesit, një variant i veçantë i patches do të përkrahët gjithashtu në një formë funksionale.
Kujtojmë se VPN WireGuard është realizuar mbi baza metodash moderne të enkriptimit, siguron performancë shumë të lartë, është i lehtë për tu përdorur, pa ndërlikime dhe ka treguar rezultate të shkëlqyera në disa implementime të mëdha që trajtojnë volume të mëdha trafiku. Projekti është zhvilluar që nga viti 2015, ka kaluar auditimin dhe e metodave të enkriptimit. Mbështetje për WireGuard është tashmë e integruar në NetworkManager dhe systemd, dhe patches për bërthamën përfshihen në përbërjen themelore të distribucioneve , Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, dhe .
Në WireGuard aplikohet koncepti i ruterimit sipas çelësave të enkriptimit, duke nënkuptuar lidhjen e çdo ndërfaqe rrjeti me çelësin e mbyllur dhe përdorimin për lidhjen e çelësave të hapur. Ndryshimi i çelësave të hapur për të vendosur një lidhje bëhet në mënyrë të ngjashme me SSH. Për pajtimin e çelësave dhe lidhjen pa e nisur një demon të veçantë në hapësirën e përdoruesit aplikohet mekanizmi Noise_IK nga , i ngjashëm me mbajtjen e authorized_keys në SSH. Shkëmbimi i të dhënave realizohet përmes inkapsulimit në paketa UDP. Mbështetet ndryshimi i adresës IP të serverit VPN (roaming) pa ndërprerje të lidhjes dhe me ri-konfigurimin automatik të klientit.
Për enkriptimin rrjedha e enkriptimit dhe algoritmi i autentifikimit të mesazheve (MAC) , të zhvilluar nga Daniel Bernstein (), Tanja Lange
(Tanja Lange) dhe Peter Schwabe (Peter Schwabe). ChaCha20 dhe Poly1305 pozicionohen si analoge më të shpejta dhe më të sigurta të AES-256-CTR dhe HMAC, implementimi software që lejon arritjen e një kohe fikse ekzekutimi pa angazhim të mbështetjes speciale harduerike. Për gjenerimin e çelësit sekret të përbashkët aplikohet protokolli i Diffie-Hellman mbi kurba eliptike në realizimin , gjithashtu e propozuar nga Daniel Bernstein. Për hashing përdoren algoritmi .
Kur Performancei i WireGuard tregoi një kapacitet 3.9 herë më të lartë dhe një ndjeshmëri 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), WireGuard tregon një avantazh të vogël në performancë (13-18%) dhe ulje të vonesave (21-23%). Testet u kryen duke përdorur implementimet e shpejta të algoritheve të enkriptimit të zhvilluara nga projekti — kalimi në Crypto API standard të bërthamës mund të sjellë përkeqësim të rezultateve.
Burimi: opennet.ru
