Në kernelin Linux 5.6 u përfshi VPN WireGuard

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

Në kernelin Linux 5.6 u përfshi VPN 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 u vlerësua 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 marrë një vendim kompromisi 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 u dakord të trasferonin në bërthamën kryesore një pjesë të kodit nga Zinc. Për shembull, në Crypto API janë përfshirë 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, pranoi në përbërje të degës net-next patch-et 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ë.

Në kernelin Linux 5.6 u përfshi VPN WireGuard

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 specifikimi.

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 Noise Protocol Framework, 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, — raporton Opennet.

Për enkriptim përdoret shifra e rrymës ChaCha20 dhe algoritmi i autentikimit të mesazheve (MAC) Poly1305, zhvilluar nga Daniel Bernstein (Daniel J. 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 Curve25519, gjithashtu e propozuar nga Daniel Bernstein. Për hashim përdoret algoritmi BLAKE2s (RFC7693)».

Rezultatet të testeve të performancës nga faqja zyrtare:

Kapaciteti (megabit/s)
Në kernelin Linux 5.6 u përfshi VPN WireGuard

Ping (ms)
Në kernelin Linux 5.6 u përfshi VPN WireGuard

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, — shkruam nĂ« HabrĂ© nĂ« vitin 2018. — Procesi i instalimit Ă«shtĂ« pĂ«rshkruar nĂ« detaje nĂ« faqen zyrtare, veçanĂ«risht dua tĂ« theksoj mbĂ«shtetje tĂ« shkĂ«lqyer pĂ«r OpenWRT. 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 verifikimin formal. 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

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster