VPN WireGuard imekubaliwa katika tawi linalofuata na imepangwa kujumuishwa kwenye Linux 5.6 kernel.

David Miller (David S. Miller), inayohusika na mfumo mdogo wa mtandao wa Linux kernel, kukubaliwa kwa tawi linalofuata mabaka na utekelezaji wa kiolesura cha VPN kutoka kwa mradi huo WireGuard. Mapema mwaka ujao, mabadiliko yaliyokusanywa katika tawi linalofuata yataunda msingi wa kutolewa kwa Linux kernel 5.6.

Majaribio ya kusukuma msimbo wa WireGuard kwenye kernel kuu yamefanywa kwa miaka michache iliyopita, lakini yalisalia bila mafanikio kwa sababu ya kuhusishwa na utekelezaji wa umiliki wa kazi za kriptografia ambazo zilitumika kuboresha utendakazi. Hapo awali, kazi hizi zilikuwa iliyopendekezwa kwa kernel kama API ya ziada ya kiwango cha chini cha Zinki, ambayo hatimaye inaweza kuchukua nafasi ya API ya kawaida ya Crypto.

Kufuatia majadiliano katika mkutano wa Kernel Recipes, waundaji wa WireGuard mnamo Septemba alifanya uamuzi wa maelewano kuhamisha viraka vyako ili kutumia Crypto API inayopatikana katika msingi, ambayo watengenezaji wa WireGuard wana malalamiko katika uwanja wa utendaji na usalama wa jumla. Iliamuliwa kuendelea kukuza API ya Zinc, lakini kama mradi tofauti.

Mnamo Novemba, watengenezaji wa kernel akaenda kwa kujibu maelewano na kukubali kuhamisha sehemu ya msimbo kutoka Zinki hadi kerneli kuu. Kimsingi, baadhi ya vipengele vya Zinki vitahamishwa hadi kwenye msingi, lakini si kama API tofauti, lakini kama sehemu ya mfumo mdogo wa Crypto API. Kwa mfano, API ya Crypto tayari pamoja utekelezaji wa haraka wa algoriti za ChaCha20 na Poly1305 zilizotayarishwa katika WireGuard.

Kuhusiana na utoaji ujao wa WireGuard katika msingi kuu, mwanzilishi wa mradi huo alitangaza kuhusu urekebishaji wa hifadhi. Ili kurahisisha maendeleo, hazina ya monolithic ya "WireGuard.git", ambayo iliundwa kuwepo kwa kutengwa, itabadilishwa na hazina tatu tofauti, zinazofaa zaidi kwa kupanga kazi na msimbo katika kernel kuu:

  • walinda-linux.git - mti kamili wa punje na mabadiliko kutoka kwa mradi wa Wireguard, mabaka ambayo yatakaguliwa ili kujumuishwa kwenye punje na kuhamishiwa mara kwa mara kwenye matawi ya wavu/wavu-yafuatayo.
  • zana za walinda-waya.git - hazina ya huduma na hati zinazoendeshwa katika nafasi ya mtumiaji, kama vile wg na wg-haraka. Hifadhi inaweza kutumika kuunda vifurushi vya usambazaji.
  • wireguard-linux-compat.git - hazina iliyo na lahaja ya moduli, iliyotolewa kando na punje na ikijumuisha safu ya compat.h ili kuhakikisha utangamano na kokwa kuu. Maendeleo kuu yatafanywa katika hazina ya wireguard-linux.git, lakini mradi tu kuna fursa na hitaji kati ya watumiaji, toleo tofauti la viraka pia litasaidiwa katika fomu ya kufanya kazi.

Hebu tukumbushe kwamba VPN WireGuard inatekelezwa kwa misingi ya mbinu za kisasa za usimbuaji, hutoa utendaji wa juu sana, ni rahisi kutumia, bila matatizo na imejidhihirisha yenyewe katika idadi kubwa ya kupelekwa ambayo mchakato wa kiasi kikubwa cha trafiki. Mradi umekuwa ukiendelezwa tangu 2015, umekaguliwa na uthibitisho rasmi mbinu za usimbaji fiche zilizotumika. Usaidizi wa WireGuard tayari umeunganishwa kwenye NetworkManager na systemd, na viraka vya kernel vimejumuishwa katika usambazaji wa msingi. Debian haijatulia, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Kijiografia ΠΈ ALT.

WireGuard hutumia dhana ya uelekezaji wa ufunguo wa usimbaji fiche, ambayo inahusisha kuambatisha ufunguo wa faragha kwa kila kiolesura cha mtandao na kuutumia kufunga funguo za umma. Vifunguo vya umma vinabadilishwa ili kuanzisha muunganisho kwa njia sawa na SSH. Ili kujadili funguo na kuunganisha bila kuendesha daemoni tofauti katika nafasi ya mtumiaji, utaratibu wa Noise_IK kutoka Mfumo wa Itifaki ya Kelelesawa na kudumisha authorized_keys katika SSH. Usambazaji wa data unafanywa kwa njia ya encapsulation katika pakiti za UDP. Inasaidia kubadilisha anwani ya IP ya seva ya VPN (kuzunguka) bila kukata muunganisho na kusanidi kiotomatiki mteja.

Kwa usimbaji fiche hutumiwa mkondo wa cipher ChaCha20 na algoriti ya uthibitishaji wa ujumbe (MAC) Poly1305, iliyoundwa na Daniel Bernstein (Daniel J. Bernstein), Tanya Lange
(Tanja Lange) na Peter Schwabe. ChaCha20 na Poly1305 zimewekwa kama analogi za kasi zaidi na salama za AES-256-CTR na HMAC, utekelezaji wa programu ambayo inaruhusu kufikia muda uliowekwa wa utekelezaji bila kutumia usaidizi maalum wa vifaa. Ili kutoa ufunguo wa siri ulioshirikiwa, itifaki ya mviringo ya Diffie-Hellman hutumiwa katika utekelezaji Curve25519, pia ilipendekezwa na Daniel Bernstein. Algorithm inayotumika kwa hashing ni BLAKE2s (RFC7693).

Katika kupima Utendaji wa WireGuard ulionyesha utendakazi mara 3.9 na utendakazi wa juu mara 3.8 ikilinganishwa na OpenVPN (256-bit AES yenye HMAC-SHA2-256). Ikilinganishwa na IPsec (256-bit ChaCha20+Poly1305 na AES-256-GCM-128), WireGuard inaonyesha uboreshaji kidogo wa utendakazi (13-18%) na muda wa chini wa kusubiri (21-23%). Majaribio yalifanywa kwa kutumia utekelezaji wa haraka wa algoriti za usimbaji fiche zilizotengenezwa na mradi - kuhamisha hadi API ya kawaida ya Crypto ya kernel kunaweza kusababisha utendakazi mbaya zaidi.

VPN WireGuard imekubaliwa katika tawi linalofuata na imepangwa kujumuishwa kwenye Linux 5.6 kernel.

Chanzo: opennet.ru

Kuongeza maoni