Å odien Linuss pÄrcÄla sev tÄ«kla nÄkamo filiÄli ar VPN saskarnÄm . Par Å”o notikumu adresÄtu sarakstÄ WireGuard.

PaÅ”laik notiek koda vÄkÅ”ana jaunajam kodolam. Linux 5.6. WireGuard ā Ätrs, nÄkamÄs paaudzes VPN, kas ievieÅ” modernu kriptogrÄfiju. SÄkotnÄji tas tika izstrÄdÄts kÄ vienkÄrÅ”Äka un ÄrtÄka alternatÄ«va esoÅ”ajiem VPN. To izstrÄdÄja KanÄdas informÄcijas droŔības speciÄlists Džeisons A. Donenfelds. 2018. gada augustÄ WireGuard No Linusa Torvalda. Ap to laiku sÄkÄs darbs pie VPN iekļauÅ”anas kodolÄ. LinuxProcess aizÅÄma nedaudz ilgÄku laiku.
"Redzu, ka Džeisons iesniedza pieprasÄ«jumu iekļaut WireGuard "kodolÄ," Linus rakstÄ«ja 2018. gada 2. augustÄ. "Vai varu vÄlreiz apliecinÄt savu mÄ«lestÄ«bu pret Å”o VPN un cerÄt uz Ätru apvienoÅ”anu? Kods varbÅ«t nav perfekts, bet esmu to apskatÄ«jis un salÄ«dzinÄjis ar Å”ausmÄm OpenVPN un IPSec, tas ir Ä«sts mÄkslas darbs."
Neskatoties uz Linusa vÄlmi, apvienoÅ”anÄs ievilkÄs pusotru gadu. GalvenÄ problÄma izrÄdÄ«jÄs saistÄ«ta ar patentÄtu kriptogrÄfijas funkciju ievieÅ”anu, kas tika izmantota veiktspÄjas uzlaboÅ”anai. PÄc ilgÄm sarunÄm 2019. gada septembrÄ« tÄ arÄ« bija tulkot ielÄpus uz kodolÄ pieejamajÄm Crypto API funkcijÄm, kurÄm izstrÄdÄtÄjiem ir piekļuve WireGuard Bija dažas sÅ«dzÄ«bas par veiktspÄju un vispÄrÄjo droŔību. TaÄu vietÄjÄs kriptogrÄfijas funkcijas atrisinÄja problÄmu. WireGuard atdalÄ«t zema lÄ«meÅa Zinc API un laika gaitÄ pÄrnest tos uz kodolu. NovembrÄ« kodola izstrÄdÄtÄji turÄja savu solÄ«jumu un pÄrsÅ«tÄ«t daļu koda no cinka uz galveno kodolu. PiemÄram, Crypto API sagatavots WireGuard ChaCha20 un Poly1305 algoritmu Ätra ievieÅ”ana.
Visbeidzot, 2019. gada 9. decembrÄ« Deivids S. Millers, kurÅ” ir atbildÄ«gs par kodola tÄ«kloÅ”anas apakÅ”sistÄmu, Linux, uz tÄ«klu-nÄkamo filiÄli ar VPN saskarnes ievieÅ”anu no projekta WireGuard.
Un Å”odien, 29. gada 2020. janvÄrÄ«, izmaiÅas tika iekļautas LinusÄ, lai tÄs iekļautu kodolÄ.

PieprasÄ«tie ieguvumi WireGuard salÄ«dzinÄjumÄ ar citiem VPN risinÄjumiem:
- Ärti lietojams.
- Izmanto modernu kriptogrÄfiju: Noise protokolu ietvars, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF u.c.
- Kompakts, lasÄms kods, vieglÄk izmeklÄt ievainojamÄ«bas.
- Augsta veiktspÄja.
- Skaidrs un izstrÄdÄts .
Visa pamata loÄ£ika WireGuard aizÅem mazÄk nekÄ 4000 koda rindiÅu, turpretÄ« OpenVPN un IPSec ir simtiem tÅ«kstoÅ”u rindu.
"IEKÅ Ä WireGuard Tiek izmantota Å”ifrÄÅ”anas atslÄgas marÅ”rutÄÅ”anas koncepcija, kas ietver privÄtÄs atslÄgas piesaisti katrai tÄ«kla saskarnei un tÄs izmantoÅ”anu publiskÄs atslÄgas saistīŔanai. PubliskÄs atslÄgas tiek apmainÄ«tas, lai izveidotu savienojumu lÄ«dzÄ«gi kÄ SSH. Lai vienotos par atslÄgÄm un izveidotu savienojumu, nepalaižot atseviŔķu dÄmonu lietotÄja telpÄ, tiek izmantots Noise_IK mehÄnisms no lÄ«dzÄ«gi kÄ Author_keys uzturÄÅ”ana SSH. Datu pÄrraide tiek veikta, iekapsulÄjot UDP paketÄs. Tas atbalsta VPN servera IP adreses maiÅu (viesabonÄÅ”ana), neatvienojot savienojumu ar automÄtisku klienta pÄrkonfigurÄciju, - Opennet.
Å ifrÄÅ”anai straumes Å”ifrs un ziÅojumu autentifikÄcijas algoritms (MAC) , dizains Daniels Bernsteins (), Tanja Lange un PÄ«ters Å vÄbe. ChaCha20 un Poly1305 ir pozicionÄti kÄ ÄtrÄki un droÅ”Äki AES-256-CTR un HMAC analogi, kuru programmatÅ«ras ievieÅ”ana ļauj sasniegt fiksÄtu izpildes laiku, neizmantojot Ä«paÅ”u aparatÅ«ras atbalstu. Lai Ä£enerÄtu koplietotu slepeno atslÄgu, ievieÅ”anÄ tiek izmantots eliptiskÄs lÄ«knes Difija-Helmana protokols , ko ierosinÄjis arÄ« Daniels Bernsteins. JaukÅ”anai izmantotais algoritms ir '.
rezultÄtus no oficiÄlÄs vietnes:
Joslas platums (megabits/s)

Ping (ms)

Testa konfigurÄcija:
- Intel Core i7-3820QM un Intel Core i7-5200U
- Gigabit kartes Intel 82579LM un Intel I218LM
- Linux 4.6.1
- KonfigurÄcija WireGuard256 bitu ChaCha20 ar Poly1305 MAC operÄtÄjsistÄmai
- PirmÄ IPsec konfigurÄcija: 256 bitu ChaCha20 ar Poly1305 MAC
- OtrÄ IPsec konfigurÄcija: AES-256-GCM-128 (ar AES-NI)
- KonfigurÄcija OpenVPN: lÄ«dzvÄrtÄ«gs 256 bitu AES Å”ifru komplekts ar HMAC-SHA2-256, UDP režīmu
- VeiktspÄja tika mÄrÄ«ta, izmantojot
iperf3, parÄda vidÄjo rezultÄtu 30 minūŔu laikÄ.
TeorÄtiski, pÄc integrÄcijas tÄ«kla kaudzÄ WireGuard vajadzÄtu darboties vÄl ÄtrÄk. TaÄu patiesÄ«bÄ tas ne vienmÄr tÄ notiks, jo tiek pÄriets uz Crypto API iebÅ«vÄtajÄm kriptogrÄfiskajÄm funkcijÄm. IespÄjams, ka ne visas no tÄm vÄl ir optimizÄtas atbilstoÅ”i vietÄjÄs versijas veiktspÄjas lÄ«menim. WireGuard.
"No mana viedokļa, WireGuard Tas ir absolÅ«ti ideÄli piemÄrots lietotÄjam. SpecifikÄcijÄ tiek Åemti vÄrÄ visi zemÄkÄ lÄ«meÅa lÄmumi, tÄpÄc tipiskas VPN infrastruktÅ«ras iestatīŔana aizÅem tikai dažas minÅ«tes. KonfigurÄciju praktiski nav iespÄjams sabojÄt. HabrÄ 2018. gadÄ. ā UzstÄdīŔanas process oficiÄlajÄ vietnÄ es vÄlÄtos atseviŔķi atzÄ«mÄt izcilo . Å Ä« koda bÄzes lietoÅ”anas vienkÄrŔība un kompaktums tika panÄkts, novÄrÅ”ot atslÄgu izplatīŔanu. Nav sarežģītas sertifikÄtu sistÄmas un visas Ŕīs korporatÄ«vÄs Å”ausmas; Ä«sÄs Å”ifrÄÅ”anas atslÄgas tiek izplatÄ«tas lÄ«dzÄ«gi kÄ SSH atslÄgas.
Projekts WireGuard tiek izstrÄdÄta kopÅ” 2015. gada, tÄ ir auditÄta un Atbalsts WireGuard integrÄts NetworkManager un systemd, un kodola ielÄpi ir iekļauti pamata izplatÄ«jumos Debian Nestabila, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph un ALT.
Avots: www.habr.com
