VPN WireGuard Linux nukleoan sartuta 5.6

Gaur Linusek VPN interfazeekin net-next adarra eraman du beregana WireGuard. Gertaera honi buruz сообщили WireGuard posta-zerrendan.

VPN WireGuard Linux nukleoan sartuta 5.6

Linux 5.6 kernel berrirako kode bilketa abian da. WireGuard kriptografia modernoa ezartzen duen hurrengo belaunaldiko VPN azkarra da. Hasieran lehendik zeuden VPNen alternatiba sinpleago eta erosoago gisa garatu zen. Egilea Jason A. Donenfeld Kanadako informazioaren segurtasuneko espezialista da. 2018ko abuztuan, WireGuard laudorioak jaso zituen Egilea: Linus Torvalds. Garai hartan, VPN Linux nukleoan sartzeko lanak hasi ziren. Prozesua pixka bat luzeagoa izan zen.

"Ikusten dut Jasonek tira eskaera egin duela WireGuard nukleoan sartzeko", idatzi zuen Linusek 2ko abuztuaren 2018an. - Berriro ere deklaratu al dezaket VPN honenganako maitasuna eta laster bateratzea espero al dut? Kodea ez da perfektua, baina begiratu nuen, eta OpenVPN eta IPSec-en izugarrikeriarekin alderatuta, benetako artelana da".

Linusek nahi zuen arren, fusioa urte eta erdiz luzatu zen. Arazo nagusia funtzio kriptografikoen inplementazio jabedunekin lotuta zegoen, errendimendua hobetzeko erabiltzen zirenak. 2019ko irailean negoziazio luzeen ostean hala izan zen konpromisozko erabakia hartu zen itzultzeko adabakiak nukleoan eskuragarri dauden Crypto API funtzioetara, WireGuard-eko garatzaileek errendimenduaren eta segurtasun orokorraren alorrean kexak dituzte. Baina jatorrizko WireGuard kripto-funtzioak maila baxuko Zinc API bereizi batean bereiztea erabaki zuten eta azkenean kernelera eramatea erabaki zuten. Azaroan, nukleoko garatzaileek hitza bete zuten eta adostu transferitu kodearen zati bat Zinc-etik nukleo nagusira. Adibidez, Crypto APIan barne WireGuard-en prestatutako ChaCha20 eta Poly1305 algoritmoen inplementazio azkarrak.

Azkenik, 9ko abenduaren 2019an, David S. Miller, Linux nukleoaren sareko azpisistemaren arduraduna, onartua net-hurrengo adarra adabakiak WireGuard proiektuko VPN interfazearen ezarpenarekin.

Eta gaur, 29ko urtarrilaren 2020an, aldaketak Linus-era joan ziren nukleoan sartzeko.

VPN WireGuard Linux nukleoan sartuta 5.6

WireGuard-ek beste VPN irtenbide batzuen aldean dituen abantailak aldarrikatuak:

  • Erabilera erraza.
  • Kriptografia modernoa erabiltzen du: Noise protokolo markoa, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF, etab.
  • Kode trinkoa eta irakurgarria, ahultasunak ikertzeko errazagoa.
  • Errendimendu handikoa.
  • Argia eta landua zehaztapena.

WireGuard-en oinarrizko logika guztiak 4000 kode-lerro baino gutxiago hartzen ditu, eta OpenVPN eta IPSec-ek ehunka mila lerro behar dituzte.

"WireGuard-ek enkriptazio-gakoen bideratzearen kontzeptua erabiltzen du, hau da, sareko interfaze bakoitzari gako pribatu bat eranstea eta hura lotzeko gako publikoak erabiltzea. Gako publikoak trukatzen dira konexio bat ezartzeko SSH-ren antzera. Gakoak negoziatzeko eta erabiltzailearen espazioan deabru bereizirik exekutatu gabe konektatzeko, Noise_IK mekanismoa Zarata Protokolo MarkoaSSHn baimendutako_gakoak mantentzearen antzekoa. Datuen transmisioa UDP paketeetan enkapsulatu bidez egiten da. VPN zerbitzariaren IP helbidea aldatzea onartzen du (roaming) konexioa deskonektatu gabe bezeroaren birkonfigurazio automatikoarekin, - idazten Opennet.

Zifratzeko Erabilitako korronte zifratua ChaCha20 eta mezuen autentifikazio algoritmoa (MAC) Poly1305, Daniel Bernsteinek diseinatua (Daniel J. Bernstein), Tanja Lange eta Peter Schwabe. ChaCha20 eta Poly1305 AES-256-CTR eta HMAC-en analogo azkarrago eta seguruago gisa kokatzen dira, eta horien softwarearen ezarpenak exekuzio-denbora finko bat lortzea ahalbidetzen du hardware-laguntza berezirik erabili gabe. Gako sekretu partekatu bat sortzeko, inplementazioan Diffie-Hellman kurba eliptikoa erabiltzen da Kurba25519, Daniel Bernsteinek ere proposatuta. Hashing egiteko erabiltzen den algoritmoa da BLAKE2s (RFC7693)'.

Findings errendimendu probak webgune ofizialetik:

Banda zabalera (megabit/s)
VPN WireGuard Linux nukleoan sartuta 5.6

Ping (ms)
VPN WireGuard Linux nukleoan sartuta 5.6

Proba konfigurazioa:

  • Intel Core i7-3820QM eta Intel Core i7-5200U
  • Gigabit txartelak Intel 82579LM eta Intel I218LM
  • Linux 4.6.1
  • WireGuard konfigurazioa: 256 biteko ChaCha20 Poly1305-ekin MACrako
  • Lehen IPsec konfigurazioa: 256 biteko ChaCha20 Poly1305-ekin MACrako
  • Bigarren IPsec konfigurazioa: AES-256-GCM-128 (AES-NIrekin)
  • OpenVPN konfigurazioa: AES 256 biteko zifratze suite baliokidea HMAC-SHA2-256, UDP moduarekin
  • Errendimendua erabiliz neurtu da iperf3, 30 minutuko batez besteko emaitza erakusten du.

Teorian, sareko pila batean integratuta, WireGuard-ek are azkarrago funtzionatu beharko luke. Baina errealitatean hori ez da zertan hala izango nukleoan integratutako Crypto API funtzio kriptografikoetarako trantsizioa dela eta. Agian ez daude oraindik guztiak WireGuard jatorrizkoaren errendimendu mailara optimizatuta.

β€œNire ikuspuntutik, WireGuard orokorrean aproposa da erabiltzailearentzako. Behe-mailako erabaki guztiak zehaztapenetan hartzen dira, beraz, VPN azpiegitura tipiko bat prestatzeko prozesuak minutu batzuk besterik ez ditu behar. Ia ezinezkoa da konfigurazioa nahastea - писали HabrΓ©-n 2018an. β€” Instalazio-prozesua xehetasunez deskribatuta webgune ofizialean, bereizita nabarmendu nahiko nuke bikaina OpenWRT laguntza. Kode oinarriaren erabilera erraztasun eta trinkotasun hori gakoen banaketa ezabatuz lortu zen. Ez dago ziurtagiri-sistema konplexurik eta izu korporatibo hori guztia; enkriptazio-gako laburrak SSH gakoen antzera banatzen dira".

WireGuard proiektua 2015etik garatzen ari da, ikuskatu egin da eta egiaztapen formala. WireGuard-en euskarria NetworkManager eta systemd-en integratuta dago, eta nukleoaren adabakiak Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph eta ALTren oinarrizko banaketetan sartzen dira.

Iturria: www.habr.com

Gehitu iruzkin berria