Sot Linus e transferoi degën net-next me ndërfaqet VPN . Ky ngjarje në listën e shpërndarjes WireGuard.

Aktualisht, po vazhdon grumbullimi i kodit për kernelin e ri Linux 5.6. WireGuard është një VPN e shpejtë e brezit të ri, në të cilin është zbatuar kriptografia moderne. Ai u zhvillua fillimisht si një alternativë më e thjeshtë dhe më e përshtatshme për VPN-të ekzistuese. Autori është specialisti kanadez i sigurisë së informacionit, Jason Donenfeld. Në gusht të vitit 2018, WireGuard nga Linus Torvalds. Rreth asaj kohe filloi puna për përfshirjen e VPN në kernelin Linux. Procesi u zgjat pak.
"Po shoh se Jason ka bërë një kërkesë për përfshirjen e WireGuard në kernel, - shkroi Linus më 2 gusht 2018. - A mund të konfirmoj 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 shqyrtuar dhe krahasuar me tmerrin e OpenVPN dhe IPSec, kjo është vërtet një vepër arti".
Megjithëse ishte dëshira e Linusit, bashkimi zgjati një minutë e gjysmë. Problemi kryesor rezultoi nga lidhja me realizimet e veta të funksioneve kriptografike, të cilat u përdorën për të përmirësuar performancën. Pas negociatave të gjata në Shtator 2019, u për të kaluar patch-et në funksionet Crypto API që janë në bërthamë, për të cilat zhvilluesit e WireGuard kishin shqetësime në lidhje me performancën dhe sigurinë e përgjithshme. Por vendosën që funksionet kriptografike nativë të WireGuard t'i ndanë në një API të veçantë të ulët Zinc dhe me kalimin e kohës t'i portonin në bërthamë. Në Nëntor, zhvilluesit e bërthamës mbajtën premtimin dhe të trasferonin në bërthamën kryesore një pjesë të kodit nga Zinc. Për shembull, në Crypto API implementimet e shpejta të algoritmeve ChaCha20 dhe Poly1305 të përgatitura në WireGuard.
Në fund, më 9 Dhjetor 2019, David Miller (David S. Miller), përgjegjës për nëndegën e rrjetit të bërthamës Linux, në përbërje të degës net-next me realizimin e ndërfaqes VPN nga projekti WireGuard.
Dhe sot, më 29 Janar 2020, ndryshimet u dërguan te Linusi për t'u përfshirë në bërthamë.

Avantazhet e shpallura të WireGuard mbi zgjidhjet e tjera VPN:
- E thjeshtë për t'u përdorur.
- Përdor kriptografi moderne: Noise protocol framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF, etj.
- Kod kompakt dhe i lexueshëm, më e lehtë për t'u shqyrtuar për dobësi.
- Performancë e lartë.
- I qartë dhe i strukturuar .
E gjithë logjika kryesore e WireGuard zë më pak se 4000 rreshta kodi, ndërsa OpenVPN dhe IPSec kanë qindra mijëra rreshta.
«NĂ« WireGuard aplikohet koncepti i routimit sipas çelzave tĂ« enkriptimit, qĂ« parashikon lidhjen e çdo ndĂ«rfaqe rrjeti me çelĂ«sin e mbyllur dhe pĂ«rdorimin e tij pĂ«r lidhjen e çelĂ«save tĂ« hapur. KĂ«mbimi i çelĂ«save tĂ« hapur pĂ«r tĂ« vendosur lidhjen bĂ«het nĂ« mĂ«nyrĂ« analogjike me SSH. PĂ«r pajtimin e çelĂ«save dhe pĂ«r lidhjen pa hapur 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. Transferimi i tĂ« dhĂ«nave bĂ«het pĂ«rmes inkapsulimit nĂ« paketa UDP. MbĂ«shtetet ndryshimi i adresĂ«s IP tĂ« serverit VPN (roaming) pa shkĂ«putur lidhjen me rikonfigurimin automatik tĂ« klientit, â Opennet.
Për enkriptim shifra e rrymës dhe algoritmi i autentikimit të mesazheve (MAC) , zhvilluar nga Daniel Bernstein (), Tanja Lange dhe Peter Schwabe. ChaCha20 dhe Poly1305 paraqiten si alternativat më të shpejta dhe më të sigurta për AES-256-CTR dhe HMAC, realizimi i të cilave mundëson arritjen e një kohe të fiksuar ekzekutimi pa nevojën për mbështetje harduerike speciale. Për gjenerimin e çelësit të përbashkët sekret, përdoret protokolli i Diffie-Hellman mbi kurvat eliptike në implementim , gjithashtu e propozuar nga Daniel Bernstein. Për hashim përdoret algoritmi ».
Rezultatet nga faqja zyrtare:
Kapaciteti (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 i OpenVPN: shifra ekuivalente 256-bit AES me HMAC-SHA2-256, mënyra UDP
- Performanca u mat me
iperf3, treguar si rezultati mesatar gjatë 30 minutave.
Teoretikisht, pas integrimit në rrjet, WireGuard duhet të funksionojë edhe më shpejt. Por në realitet, kjo nuk është domosdoshmërisht e tillë për shkak të kalimit në funksione kriptografike të ndërtuara në kernelin 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Ă« nĂ« tĂ« vĂ«rtetĂ« ideal pĂ«r pĂ«rdoruesin. TĂ« gjitha zgjidhjet nĂ« nivel tĂ« ulĂ«t janĂ« pranuar nĂ« specifikimin, kĂ«shtu qĂ« procesi i pĂ«rgatitjes sĂ« njĂ« infrastrukture tipike VPN zgjat vetĂ«m disa minuta. TĂ« ngatĂ«rroni konfigurimin Ă«shtĂ« gati e pamundur, â nĂ« HabrĂ© nĂ« vitin 2018. â Procesi i instalimit nĂ« faqen zyrtare, veçanĂ«risht dua tĂ« theksoj mbĂ«shtetje tĂ« shkĂ«lqyer . NjĂ« lehtĂ«sie tĂ« tillĂ« pĂ«rdorimi dhe kompaktĂ«sie tĂ« bazĂ«s sĂ« kodit arriti falĂ« heqjes sĂ« shpĂ«rndarjes sĂ« çelĂ«save. Nuk ka njĂ« sistem tĂ« komplikuar tĂ« certifikatave dhe gjithĂ« atij tmerri korporativ, çelĂ«sat e shkurtĂ«r tĂ« enkriptimit shpĂ«rndahen mĂ« shumĂ« si çelĂ«sat SSH.»
Projekti WireGuard zhvillohet që nga viti 2015, ka kaluar auditen dhe . Mbështetja për WireGuard është e integruar në NetworkManager dhe systemd, ndërsa patch-et për bërthamën përfshihen në përbërësit bazë të shpërndarjeve Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph dhe ALT.
Burimi: habr.com
