Sot Lini transferoi degën net-next me ndërfaqet VPN. . Rreth këtij ngjarjeje në listën e shpërndarjes WireGuard.

Aktualisht është në procesin e mbledhjes së kodit për bërthamën e re Linux 5.6. WireGuard është një VPN i gjeneratës së re, që implementon kriptografinë moderne. Ai u zhvillua fillimisht si një alternativë më e thjeshtë dhe më e lehtë për t'u përdorur ndaj VPN-ve ekzistuese. Autori është specialisti kanadez i sigurisë informatike Jason A. Donenfeld. Në gusht 2018, WireGuard nga Linus Torvalds. Rreth asaj kohe filloi puna për përfshirjen e VPN në bërthamën e Linux. Procesi u zgjat pak.
âShikoj qĂ« Jason ka bĂ«rĂ« njĂ« kĂ«rkesĂ« pĂ«r pĂ«rfshirjen e WireGuard nĂ« bĂ«rthamĂ«,â shkroi Linus mĂ« 2 gusht 2018. âA mund ta shpreh sĂ«rish dashurinĂ« time pĂ«r kĂ«tĂ« VPN dhe tĂ« shpresoj pĂ«r njĂ« bashkim tĂ« shpejtĂ«? Ndoshta kodi nuk Ă«shtĂ« perfekt, por e kam parĂ« dhe krahasuar me horrorin e OpenVPN dhe IPSec, ky Ă«shtĂ« njĂ« vepĂ«r arti e vĂ«rtetĂ«.â
Megjithëse dëshira e Linus-it ishte, bashkimi u zgjat për një të gjatë një vit e gjysmë. Problemi kryesor doli të ishte lidhja me implementimet e veta të funksioneve kriptografike, të cilat ishin përdorur për të rritur performancën. Pas negociatave të zgjatura në shtator 2019, u mor për të transferuar patch-et në funksionet e Crypto API që ekzistojnë në bërthamë, ndaj të cilave zhvilluesit e WireGuard kishin shqetësime lidhur me performancën dhe sigurinë e përgjithshme. Por vendosën që funksionet e kriptografisë nativo të WireGuard t'i veçonin në një API të ulët Zinc dhe me kalimin e kohës t'i portonin në bërthamë. Në nëntor, zhvilluesit e bërthamës e mbajtën premtimin dhe të transferonin në bërthamë një pjesë të kodit nga Zinc. Për shembull, në Crypto API janë përgatitur në WireGuard implementime të shpejta të algoritmeve ChaCha20 dhe Poly1305.
Më në fund, më 9 dhjetor 2019, David S. Miller, i cili përgjigjej për subsystemin rrjetor të bërthamës Linux, si pjesë e degës net-next me implementimin e ndërfaqes VPN nga projekti WireGuard.
Dhe sot, më 29 janar 2020, ndryshimet u dërguan te Linus për t'u përfshirë në bërthamë.

Avantazhet e deklaruara të WireGuard mbi zgjidhjet e tjera të VPN janë:
- I lehtë për t'u përdorur.
- Përdor kriptografi moderne: Noise protocol framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF etj.
- Kod kompakt dhe të lexueshëm, më e lehtë për t'u hetuar për dobësi.
- Performancë e lartë.
- Logjika e qartë dhe e zhvilluar .
E gjithë logjika kryesore e WireGuard zë më pak se 4000 rreshta kodi, ndërsa OpenVPN dhe IPSec janë qindra mijëra rreshta.
NĂ« WireGuard aplikohet koncepti i rutes sĂ« bazuar nĂ« çelĂ«sat e kodimit, i cili nĂ«nkupton lidhjen e secilit ndĂ«rfaqe rrjeti me njĂ« çelĂ«s privat dhe pĂ«rdorimin e tij pĂ«r lidhjen e çelĂ«save tĂ« hapur. ShkĂ«mbimi i çelĂ«save tĂ« hapur pĂ«r vendosjen e lidhjes bĂ«het sipas analogjisĂ« me SSH. PĂ«r pajtimin e çelĂ«save dhe lidhjes pa nisur njĂ« demon tĂ« veçantĂ« nĂ« hapĂ«sirĂ«n e pĂ«rdoruesit, pĂ«rdoret 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 ndĂ«rrimi i adresĂ«s IP tĂ« serverit VPN (roaming) pa ndĂ«rprerjen e lidhjes me riparametrizimin automatik tĂ« klientit, â Opennet.
Për enkriptimin rrjedha e enkriptimit dhe algoritmi i autentifikimit të mesazheve (MAC) , të zhvilluar nga Daniel Bernstein (), Tanja Lange dhe Peter Schwabe. ChaCha20 dhe Poly1305 pozicionohen si alternativa më të shpejta dhe më të sigurta ndaj AES-256-CTR dhe HMAC, implementimi softuerik i të cilëve lejon arritjen e një kohë ekzekutimi të fiksuar pa angazhimin e mbështetjes speciale harduerike. Për gjenerimin e çelësit sekret të përbashkët përdoret protokolli i Diffie-Hellman në ellipsat në implementimin , gjithashtu e propozuar nga Daniel Bernstein. Për hashing përdoren algoritmi ».
Rezultatet nga faqja zyrtare:
Banda (megabit/s)

Ping (ms)

Konfigurimi i testit:
- Intel Core i7-3820QM dhe Intel Core i7-5200U
- Kartat Gigabit Intel 82579LM dhe Intel I218LM
- Linux 4.6.1
- Konfigurimi i WireGuard: ChaCha20 256-bit me Poly1305 për MAC
- Konfigurimi i parë IPsec: ChaCha20 256-bit me Poly1305 për MAC
- Konfigurimi i dytë IPsec: AES-256-GCM-128 (me AES-NI)
- Konfigurimi OpenVPN: grupi i enkriptimit të barabartë me AES 256-bit me HMAC-SHA2-256, mënyra UDP
- Performanca u mat duke përdorur
iperf3, rezultati mesatar është treguar gjatë 30 minutave.
Teorikisht, pas integrimit në grilën rrjetërore, WireGuard duhet të funksionojë edhe më shpejt. Por në realitet, kjo nuk është patjetër kështu për shkak të kalimit në funksionet kriptografike të integruara në bërthamë Crypto API. Ndoshta, jo të gjitha prej tyre janë optimizuar ende në nivelin e performancës natyrore të WireGuard.
«Nga pikĂ«pamja ime, WireGuard Ă«shtĂ« thjesht i pĂ«rsosur pĂ«r pĂ«rdoruesin. TĂ« gjitha zgjidhjet e nivelit tĂ« ulĂ«t janĂ« pranuar nĂ« specifikim, prandaj procesi i pĂ«rgatitjes sĂ« infrastrukturĂ«s tipike VPN zgjat vetĂ«m disa minuta. Nuk ka mundĂ«si tĂ« gabosh nĂ« konfigurim, â nĂ« HabrĂ« nĂ« vitin 2018. â Procesi i instalimit nĂ« faqen zyrtare, tĂ« veçoj mbĂ«shtetje tĂ« shkĂ«lqyer pĂ«r . Ky this simplicity of use and compactness of the codebase was achieved by eliminating key distribution. There is no complex certificate system and none of that corporate nightmare; short encryption keys are distributed much like SSH keys.
The WireGuard project has been in development since 2015, and it has undergone an audit and . The WireGuard support is integrated into NetworkManager and systemd, and the patches for the kernel are included in the base compositions of the Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph, and ALT distributions.
Burimi: habr.com
