VPN WireGuard je súčasťou linuxového jadra 5.6

Dnes Linus presunul sieťovú pobočku s rozhraniami VPN na seba WireGuard. O tejto udalosti сообщили v zozname adresátov WireGuard.

VPN WireGuard je súčasťou linuxového jadra 5.6

V súčasnosti prebieha zber kódu pre nové jadro Linuxu 5.6. WireGuard je rýchla VPN novej generácie, ktorá implementuje modernú kryptografiu. Pôvodne bol vyvinutý ako jednoduchšia a pohodlnejšia alternatíva k existujúcim VPN. Autorom je kanadský špecialista na informačnú bezpečnosť Jason A. Donenfeld. V auguste 2018, WireGuard dostal pochvalu od Linusa Torvaldsa. Približne v tom čase sa začalo pracovať na zahrnutí VPN do linuxového jadra. Proces trval trochu dlhšie.

„Vidím, že Jason požiadal o zahrnutie WireGuard do jadra,“ napísal Linus 2. augusta 2018. — Môžem ešte raz vyhlásiť svoju lásku k tejto VPN a dúfať v skoré zlúčenie? Kód možno nie je dokonalý, ale pozrel som si ho a v porovnaní s hrôzami OpenVPN a IPSec je to skutočné umelecké dielo.“

Napriek Linusovmu želaniu sa spojenie ťahalo rok a pol. Ukázalo sa, že hlavný problém je spojený s proprietárnymi implementáciami kryptografických funkcií, ktoré sa používali na zlepšenie výkonu. Po dlhých rokovaniach v septembri 2019 bolo padlo kompromisné rozhodnutie prekladať záplaty na funkcie Crypto API dostupné v jadre, na ktoré sa vývojári WireGuard sťažujú v oblasti výkonu a všeobecnej bezpečnosti. Rozhodli sa však oddeliť natívne funkcie šifrovania WireGuard do samostatného nízkoúrovňového Zinc API a nakoniec ich preniesť do jadra. V novembri vývojári jadra dodržali svoj sľub a súhlasil preniesť časť kódu zo Zinku do hlavného jadra. Napríklad v Crypto API zahrnuté rýchle implementácie algoritmov ChaCha20 a Poly1305 pripravené v programe WireGuard.

Napokon 9. decembra 2019 David S. Miller, zodpovedný za sieťový subsystém linuxového jadra, prijatý do siete-ďalšia pobočka náplasti s implementáciou VPN rozhrania z projektu WireGuard.

A dnes, 29. januára 2020, Linusovi prešli zmeny na zahrnutie do jadra.

VPN WireGuard je súčasťou linuxového jadra 5.6

Tvrdené výhody WireGuard oproti iným riešeniam VPN:

  • Jednoduché použitie.
  • Používa modernú kryptografiu: Noise protocol framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF atď.
  • Kompaktný, čitateľný kód, ktorý sa dá ľahšie preskúmať z hľadiska zraniteľnosti.
  • Vysoký výkon.
  • Jasné a prepracované špecifikácia.

Celá základná logika WireGuard zaberá menej ako 4000 XNUMX riadkov kódu, zatiaľ čo OpenVPN a IPSec vyžadujú stovky tisíc riadkov.

„WireGuard využíva koncept smerovania šifrovacieho kľúča, ktorý zahŕňa pripojenie súkromného kľúča ku každému sieťovému rozhraniu a použitie verejných kľúčov na jeho viazanie. Verejné kľúče sa vymieňajú na vytvorenie spojenia podobným spôsobom ako SSH. Ak chcete vyjednať kľúče a pripojiť sa bez spustenia samostatného démona v užívateľskom priestore, mechanizmus Noise_IK z Noise Protocol Frameworkpodobne ako udržiavanie autorizovaných_kľúčov v SSH. Prenos dát sa uskutočňuje prostredníctvom zapuzdrenia do paketov UDP. Podporuje zmenu IP adresy VPN servera (roaming) bez prerušenia spojenia s automatickou rekonfiguráciou klienta, - píše Opennet.

Pre šifrovanie použitý prúdová šifra ChaCha20 a algoritmus overovania správ (MAC) Poly1305, ktorý navrhol Daniel Bernstein (Daniel J. Bernstein), Tanja Lange a Peter Schwabe. ChaCha20 a Poly1305 sú umiestnené ako rýchlejšie a bezpečnejšie analógy AES-256-CTR a HMAC, ktorých softvérová implementácia umožňuje dosiahnuť fixný čas vykonávania bez použitia špeciálnej hardvérovej podpory. Na vygenerovanie zdieľaného tajného kľúča sa v implementácii používa protokol Diffie-Hellman s eliptickou krivkou Curve25519, ktorú navrhol aj Daniel Bernstein. Algoritmus používaný na hashovanie je BLAKE2s (RFC7693)".

výsledky výkonnostné testy z oficiálnej stránky:

Šírka pásma (megabit/s)
VPN WireGuard je súčasťou linuxového jadra 5.6

Ping (ms)
VPN WireGuard je súčasťou linuxového jadra 5.6

Testovacia konfigurácia:

  • Intel Core i7-3820QM a Intel Core i7-5200U
  • Gigabitové karty Intel 82579LM a Intel I218LM
  • Linux 4.6.1
  • Konfigurácia WireGuard: 256-bit ChaCha20 s Poly1305 pre MAC
  • Prvá konfigurácia IPsec: 256-bit ChaCha20 s Poly1305 pre MAC
  • Druhá konfigurácia IPsec: AES-256-GCM-128 (s AES-NI)
  • Konfigurácia OpenVPN: AES ekvivalentná 256-bitová šifra s HMAC-SHA2-256, režim UDP
  • Výkon sa meral pomocou iperf3, zobrazuje priemerný výsledok za 30 minút.

Teoreticky by po integrácii do sieťového zásobníka mal WireGuard fungovať ešte rýchlejšie. Ale v skutočnosti to tak nebude nevyhnutne kvôli prechodu na kryptografické funkcie Crypto API zabudované do jadra. Možno nie všetky sú ešte optimalizované na úroveň výkonu natívneho WireGuard.

„Z môjho pohľadu je WireGuard pre používateľa vo všeobecnosti ideálny. Všetky rozhodnutia na nízkej úrovni sa robia v špecifikácii, takže proces prípravy typickej infraštruktúry VPN trvá len niekoľko minút. Je takmer nemožné pokaziť konfiguráciu - писали na Habré v roku 2018. — Proces inštalácie podrobne popísané na oficiálnej webovej stránke by som chcel osobitne poznamenať vynikajúce Podpora OpenWRT. Táto jednoduchosť použitia a kompaktnosť kódovej základne bola dosiahnutá odstránením distribúcie kľúčov. Neexistuje žiadny zložitý certifikačný systém a všetky tieto podnikové hrôzy; krátke šifrovacie kľúče sú distribuované podobne ako kľúče SSH.“

Projekt WireGuard sa vyvíja od roku 2015, prešiel auditom a formálne overenie. Podpora WireGuard je integrovaná do NetworkManager a systemd a záplaty jadra sú zahrnuté v základných distribúciách Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph a ALT.

Zdroj: hab.com

Pridať komentár