VPN WireGuard i përfshirë në kernel Linux 5.6

Sot Linus zhvendosi degën net-next me ndërfaqe VPN tek vetja WireGuard. Në lidhje me këtë ngjarje сообщили në listën e postimeve të WireGuard.

VPN WireGuard i përfshirë në kernel Linux 5.6

Mbledhja e kodit për kernelin e ri Linux 5.6 është aktualisht në vazhdim. WireGuard është një VPN e shpejtë e gjeneratës së ardhshme që zbaton kriptografinë moderne. Fillimisht u zhvillua 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 A. Donenfeld. Në gusht 2018, WireGuard mori lëvdata nga Linus Torvalds. Rreth asaj kohe, filloi puna për të përfshirë VPN në kernelin Linux. Procesi zgjati pak më shumë.

"Unë shoh që Jason ka bërë një kërkesë tërheqëse për të përfshirë WireGuard në kernel," shkroi Linus më 2 gusht 2018. — A mund të deklaroj edhe një herë dashurinë time për këtë VPN dhe të shpresoj për një bashkim së shpejti? Kodi mund të mos jetë i përsosur, por e shikova dhe krahasuar me tmerret e OpenVPN dhe IPSec, është një vepër e vërtetë arti."

Pavarësisht dëshirës së Linusit, bashkimi u zvarrit për një vit e gjysmë. Problemi kryesor doli të ishte i lidhur me zbatimet e pronarit të funksioneve kriptografike, të cilat u përdorën për të përmirësuar performancën. Pas negociatave të gjata në shtator 2019 ishte u mor një vendim kompromisi përktheni arna në funksionet Crypto API të disponueshme në kernel, ndaj të cilave zhvilluesit e WireGuard kanë ankesa në fushën e performancës dhe sigurisë së përgjithshme. Por ata vendosën të ndajnë funksionet vendase të kriptos WireGuard në një API të veçantë Zinc të nivelit të ulët dhe përfundimisht t'i transferojnë ato në kernel. Në nëntor, zhvilluesit e kernelit e mbajtën premtimin e tyre dhe ra dakord transferoni një pjesë të kodit nga Zinku në kernelin kryesor. Për shembull, në Crypto API përfshirë implementime të shpejta të algoritmeve ChaCha20 dhe Poly1305 të përgatitura në WireGuard.

Më në fund, më 9 dhjetor 2019, David S. Miller, përgjegjës për nënsistemin e rrjetit të kernelit Linux, pranuar në degën net-next arna me zbatimin e një ndërfaqeje VPN nga projekti WireGuard.

Dhe sot, 29 janar 2020, ndryshimet shkuan te Linus për t'u përfshirë në kernel.

VPN WireGuard i përfshirë në kernel Linux 5.6

Përparësitë e pretenduara të WireGuard mbi zgjidhjet e tjera VPN:

  • Lehtë për t’u përdorur.
  • Përdor kriptografinë moderne: kornizën e protokollit të zhurmës, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF, etj.
  • Kod kompakt, i lexueshëm, më i lehtë për t'u hetuar për dobësi.
  • Performanca e lartë
  • E qartë dhe e përpunuar Specifikim.

E gjithë logjika bazë e WireGuard merr më pak se 4000 rreshta kodi, ndërsa OpenVPN dhe IPSec kërkojnë qindra mijëra rreshta.

“WireGuard përdor konceptin e drejtimit të çelësit të enkriptimit, i cili përfshin bashkëngjitjen e një çelësi privat në secilën ndërfaqe të rrjetit dhe përdorimin e çelësave publikë për ta lidhur atë. Çelësat publikë shkëmbehen për të krijuar një lidhje në një mënyrë të ngjashme me SSH. Për të negociuar çelësat dhe për t'u lidhur pa ekzekutuar një demon të veçantë në hapësirën e përdoruesit, mekanizmi Noise_IK nga Korniza e Protokollit të Zhurmësngjashëm me mbajtjen e autorizuar_çelësave në SSH. Transmetimi i të dhënave kryhet përmes kapsulimit në pako UDP. Ai mbështet ndryshimin e adresës IP të serverit VPN (roaming) pa shkëputur lidhjen me rikonfigurimin automatik të klientit, - shkruan Opennet.

Për kriptim përdoret shifra e rrjedhës ChaCha20 dhe algoritmi i vërtetimit të mesazheve (MAC) Poly1305, projektuar nga Daniel Bernstein (Daniel J. Bernstein), Tanja Lange dhe Peter Schwabe. ChaCha20 dhe Poly1305 pozicionohen si analoge më të shpejtë dhe më të sigurt të AES-256-CTR dhe HMAC, zbatimi i softuerit të të cilave lejon arritjen e një kohe fikse ekzekutimi pa përdorimin e mbështetjes speciale të harduerit. Për të gjeneruar një çelës sekret të përbashkët, në zbatim përdoret protokolli i kurbës eliptike Diffie-Hellman Curve25519, propozuar edhe nga Daniel Bernstein. Algoritmi i përdorur për hash është BLAKE2s (RFC7693)'.

Gjetjet testet e performancës nga faqja zyrtare:

Gjerësia e brezit (megabit/s)
VPN WireGuard i përfshirë në kernel Linux 5.6

Ping (ms)
VPN WireGuard i përfshirë në kernel Linux 5.6

Konfigurimi i testit:

  • Intel Core i7-3820QM dhe Intel Core i7-5200U
  • Kartat Gigabit Intel 82579LM dhe Intel I218LM
  • Linux 4.6.1
  • Konfigurimi WireGuard: 256-bit ChaCha20 me Poly1305 për MAC
  • Konfigurimi i parë IPsec: 256-bit ChaCha20 me Poly1305 për MAC
  • Konfigurimi i dytë IPsec: AES-256-GCM-128 (me AES-NI)
  • Konfigurimi i OpenVPN: Komplet shifror ekuivalent AES 256-bit me HMAC-SHA2-256, modaliteti UDP
  • Performanca u mat duke përdorur iperf3, tregon rezultatin mesatar për 30 minuta.

Në teori, pasi të integrohet në grupin e rrjetit, WireGuard duhet të funksionojë edhe më shpejt. Por në realitet kjo nuk do të jetë domosdoshmërisht rasti për shkak të kalimit në funksionet kriptografike Crypto API të integruara në kernel. Ndoshta jo të gjithë janë ende të optimizuar në nivelin e performancës së WireGuard-it vendas.

“Nga këndvështrimi im, WireGuard është përgjithësisht ideal për përdoruesit. Të gjitha vendimet e nivelit të ulët merren në specifikim, kështu që procesi i përgatitjes së një infrastrukture tipike VPN zgjat vetëm disa minuta. Është pothuajse e pamundur të prishësh konfigurimin - писали në Habré në 2018. — Procesi i instalimit përshkruar në detaje në faqen zyrtare, unë do të doja të shënoja veçmas të shkëlqyerat Mbështetje OpenWRT. Kjo lehtësi e përdorimit dhe kompaktësia e bazës së kodit u arrit duke eliminuar shpërndarjen e çelësave. Nuk ka asnjë sistem kompleks certifikimi dhe gjithë këtë tmerr të korporatës; çelësat e shkurtër të enkriptimit shpërndahen njësoj si çelësat SSH.

Projekti WireGuard është zhvilluar që nga viti 2015, ai është audituar dhe verifikimi zyrtar. Mbështetja e WireGuard është e integruar në NetworkManager dhe systemd, dhe arna të kernelit përfshihen në shpërndarjet bazë të Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph dhe ALT.

Burimi: www.habr.com

Shto një koment