VPN WireGuard innifalinn í Linux kjarna 5.6

Í dag flutti Linus net-næsta útibúið með VPN viðmótum til sín WireGuard. Um þennan atburð сообщили á WireGuard póstlista.

VPN WireGuard innifalinn í Linux kjarna 5.6

Nú stendur yfir kóðasöfnun fyrir nýja Linux 5.6 kjarnann. WireGuard er fljótlegt næstu kynslóðar VPN sem útfærir nútíma dulritun. Það var upphaflega þróað sem einfaldari og þægilegri valkostur við núverandi VPN. Höfundur er kanadíski upplýsingaöryggissérfræðingurinn Jason A. Donenfeld. Í ágúst 2018, WireGuard fengið lof eftir Linus Torvalds Um það leyti hófst vinna við að fela VPN í Linux kjarnanum. Ferlið tók aðeins lengri tíma.

„Ég sé að Jason hefur lagt fram beiðni um að taka WireGuard með í kjarnanum,“ skrifaði Linus 2. ágúst 2018. — Get ég bara enn og aftur lýst yfir ást minni á þessu VPN og vonast eftir sameiningu fljótlega? Kóðinn er kannski ekki fullkominn, en ég skoðaði hann og miðað við hryllinginn í OpenVPN og IPSec er hann algjört listaverk.

Þrátt fyrir óskir Linusar dróst sameiningin á langinn í eitt og hálft ár. Helsta vandamálið reyndist vera bundið við sérútfærslur á dulmálsaðgerðum, sem voru notaðar til að bæta árangur. Eftir langar samningaviðræður í september 2019 var það var tekin málamiðlunarákvörðun þýða plástra yfir á Crypto API aðgerðir sem eru tiltækar í kjarnanum, sem WireGuard verktaki hefur kvartanir á sviði frammistöðu og almenns öryggis. En þeir ákváðu að aðskilja innfæddu WireGuard dulmálsaðgerðirnar í sérstakt lágstig Zink API og flytja þær að lokum í kjarnann. Í nóvember stóðu kjarnahönnuðirnir við loforð sitt og samþykkt flytja hluta kóðans frá Sink yfir í aðalkjarnann. Til dæmis, í Crypto API innifalið hraðvirkar útfærslur á ChaCha20 og Poly1305 reikniritunum útbúnar í WireGuard.

Að lokum, 9. desember 2019, David S. Miller, ábyrgur fyrir netkerfi undirkerfi Linux kjarna, samþykkt í net-næstu útibú plástrar með innleiðingu á VPN viðmóti frá WireGuard verkefninu.

Og í dag, 29. janúar 2020, fóru breytingarnar til Linus til að vera með í kjarnanum.

VPN WireGuard innifalinn í Linux kjarna 5.6

Krafa um kosti WireGuard umfram aðrar VPN lausnir:

  • Auðvelt í notkun.
  • Notar nútíma dulritun: Noise protocol ramma, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF, osfrv.
  • Fyrirferðarlítill, læsilegur kóði, auðveldara að rannsaka með tilliti til veikleika.
  • Mikil afköst.
  • Skýrt og vandað forskrift.

Öll kjarnarökfræði WireGuard tekur minna en 4000 línur af kóða, en OpenVPN og IPSec þurfa hundruð þúsunda lína.

„WireGuard notar hugtakið dulkóðunarlyklaleið, sem felur í sér að tengja einkalykil við hvert netviðmót og nota opinbera lykla til að binda það saman. Skipt er á almennum lyklum til að koma á tengingu á svipaðan hátt og SSH. Til að semja um lykla og tengjast án þess að keyra sérstakan púka í notendarými, er Noise_IK vélbúnaðurinn frá Noise Protocol Frameworksvipað og að viðhalda authorized_keys í SSH. Gagnaflutningur fer fram með hjúpun í UDP pakka. Það styður breytingu á IP-tölu VPN netþjónsins (reiki) án þess að aftengja tenginguna með sjálfvirkri endurstillingu viðskiptavinarins, - пишет Opið net.

Fyrir dulkóðun notað straum dulmál ChaCha20 og skilaboðaauthentication algorithm (MAC) Poly1305, hannað af Daniel Bernstein (Daniel J. Bernstein), Tanja Lange og Peter Schwabe. ChaCha20 og Poly1305 eru staðsettir sem hraðari og öruggari hliðstæður AES-256-CTR og HMAC, en hugbúnaðarútfærslan gerir kleift að ná föstum framkvæmdartíma án þess að nota sérstakan vélbúnaðarstuðning. Til að búa til sameiginlegan leynilykil er sporöskjulaga feril Diffie-Hellman siðareglur notuð í útfærslunni Curve25519, einnig lagt fram af Daniel Bernstein. Reikniritið sem notað er fyrir hashing er BLAKE2s (RFC7693)'.

Niðurstöður frammistöðupróf frá opinberu vefsíðunni:

Bandbreidd (megabit/s)
VPN WireGuard innifalinn í Linux kjarna 5.6

Ping (ms)
VPN WireGuard innifalinn í Linux kjarna 5.6

Próf stillingar:

  • Intel Core i7-3820QM og Intel Core i7-5200U
  • Gigabit kort Intel 82579LM og Intel I218LM
  • Linux 4.6.1
  • WireGuard stillingar: 256-bita ChaCha20 með Poly1305 fyrir MAC
  • Fyrsta IPsec stillingar: 256-bita ChaCha20 með Poly1305 fyrir MAC
  • Önnur IPsec stilling: AES-256-GCM-128 (með AES-NI)
  • OpenVPN stillingar: AES 256 bita samsvarandi dulmálssvíta með HMAC-SHA2-256, UDP ham
  • Árangur var mældur með því að nota iperf3, sýnir meðalniðurstöðu yfir 30 mínútur.

Fræðilega séð, þegar WireGuard hefur verið samþætt í netstafla, ætti WireGuard að virka enn hraðar. En í raun og veru mun þetta ekki endilega vera raunin vegna breytinga á dulritunaraðgerðir Crypto API sem eru innbyggðar í kjarnann. Kannski eru þeir ekki allir ennþá fínstilltir fyrir frammistöðustig innfædds WireGuard.

„Frá mínu sjónarhorni er WireGuard almennt tilvalið fyrir notandann. Allar ákvarðanir á lágu stigi eru teknar í forskriftinni, þannig að ferlið við að undirbúa dæmigerðan VPN innviði tekur aðeins nokkrar mínútur. Það er næstum ómögulegt að klúðra uppsetningunni - писали á Habré árið 2018. — Uppsetningarferli lýst í smáatriðum á opinberu vefsíðunni vil ég sérstaklega taka eftir því ágæta OpenWRT stuðningur. Þessi auðvelda notkun og þéttleiki kóðagrunnsins var náð með því að útrýma dreifingu lykla. Það er ekkert flókið vottorðakerfi og allur þessi hryllingur fyrirtækja; stuttum dulkóðunarlyklum er dreift eins og SSH lyklum.

WireGuard verkefnið hefur verið í þróun síðan 2015, það hefur verið endurskoðað og formlega staðfestingu. WireGuard stuðningur er samþættur í NetworkManager og systemd, og kjarnaplástrar eru innifalin í grunndreifingum Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph og ALT.

Heimild: www.habr.com

Bæta við athugasemd