Utekelezaji mpya wa VPN WireGuard umeongezwa kwa FreeBSD codebase

Mti wa chanzo cha FreeBSD umesasishwa kwa utekelezaji mpya wa VPN WireGuard, kulingana na msimbo wa moduli ya kernel iliyotolewa kwa pamoja na timu kuu za ukuzaji za FreeBSD na WireGuard kwa michango kutoka kwa Jason A. Donenfeld, mwandishi wa VPN WireGuard, na John H. Baldwin ), msanidi programu mashuhuri wa GDB na FreeBSD, ambaye alitekeleza usaidizi kwa SMP na NUMA katika kokwa ya FreeBSD mwanzoni mwa miaka ya 2000. Baada ya kiendeshi kukubaliwa katika FreeBSD (sys/dev/wg), uundaji na matengenezo yake yatafanywa kuanzia sasa kwenye hazina ya FreeBSD.

Kabla ya nambari hiyo kukubaliwa, hakiki kamili ya mabadiliko ilifanywa kwa msaada wa FreeBSD Foundation, wakati mwingiliano wa dereva na mifumo mingine midogo ya kernel pia ilichambuliwa na uwezekano wa kutumia maandishi ya siri yaliyotolewa na kernel. ilitathminiwa.

Ili kutumia algoriti za kriptografia zinazohitajika na dereva, API ya mfumo mdogo wa kernel wa FreeBSD iliongezwa, ambayo kuunganisha iliongezwa ambayo inaruhusu matumizi ya algoriti ambayo hayatumiki katika FreeBSD kupitia crypto-API ya kawaida, kwa kutumia utekelezaji wa algorithms muhimu kutoka kwa maktaba ya libsodium. Kati ya algorithms iliyojengwa ndani ya dereva, msimbo tu wa kuhesabu heshi za Blake2 umesalia, kwani utekelezaji wa algorithm hii iliyotolewa katika FreeBSD imefungwa kwa saizi ya hashi iliyowekwa.

Kwa kuongezea, wakati wa mchakato wa ukaguzi, uboreshaji wa nambari ulifanyika, ambayo ilifanya iwezekanavyo kuongeza ufanisi wa usambazaji wa mzigo kwenye CPU za msingi nyingi (kusawazisha sare ya mgawo wa usimbuaji wa pakiti na kazi za usimbuaji kwa cores za CPU zilihakikishwa). Kama matokeo, sehemu ya juu wakati wa kuchakata pakiti ilikuwa karibu na ile ya utekelezaji wa kiendesha Linux. Nambari hiyo pia hutoa uwezo wa kutumia kiendesha ossl ili kuharakisha shughuli za usimbaji fiche.

Tofauti na jaribio la awali la kuunganisha WireGuard katika FreeBSD, utekelezaji mpya unatumia matumizi ya kawaida ya wg, badala ya toleo lililobadilishwa la ifconfig, ambalo linawezesha kuunganisha usanidi kwenye Linux na FreeBSD. Huduma ya wg, na vile vile dereva, imejumuishwa kwenye nambari ya chanzo ya FreeBSD, ambayo iliwezekana kwa kubadilisha leseni ya msimbo wa wg (msimbo sasa unapatikana chini ya leseni za MIT na GPL). Jaribio la mwisho la kujumuisha WireGuard katika FreeBSD lilifanywa mnamo 2020, lakini lilimalizika kwa kashfa, kama matokeo ambayo nambari iliyoongezwa tayari iliondolewa kwa sababu ya ubora wa chini, kazi ya kutojali na buffers, matumizi ya stubs badala ya hundi, utekelezaji usio kamili. ya itifaki na ukiukaji wa leseni ya GPL.

Kumbuka kwamba VPN WireGuard inatekelezwa kwa misingi ya mbinu za kisasa za usimbaji fiche, hutoa utendaji wa juu sana, ni rahisi kutumia, bila matatizo na imejidhihirisha katika idadi kubwa ya utekelezaji ambayo mchakato wa kiasi kikubwa cha trafiki. Mradi umekuwa ukiendelezwa tangu 2015, ulipitisha ukaguzi na uthibitishaji rasmi wa mbinu za usimbaji fiche zinazotumiwa. WireGuard hutumia dhana ya uelekezaji wa ufunguo wa usimbaji fiche, ambayo inahusisha kufunga ufunguo wa faragha kwa kila kiolesura cha mtandao na kutumia funguo za umma kufunga.

Kubadilishana kwa funguo za umma ili kuanzisha muunganisho ni sawa na SSH. Ili kujadili funguo na kuunganisha bila kuendesha daemoni tofauti ya nafasi ya mtumiaji, utaratibu wa Noise_IK wa Mfumo wa Itifaki ya Kelele hutumiwa, sawa na kudumisha vitufe_ vilivyoidhinishwa katika SSH. Usambazaji wa data unafanywa kwa njia ya encapsulation katika pakiti za UDP. Inaauni kubadilisha anwani ya IP ya seva ya VPN (kuzunguka) bila kuvunja muunganisho na usanidi wa kiotomatiki wa mteja.

Usimbaji fiche hutumia msimbo wa mtiririko wa ChaCha20 na algoriti ya uthibitishaji wa ujumbe wa Poly1305 (MAC) iliyotengenezwa na Daniel J. Bernstein, Tanja Lange na Peter Schwabe. ChaCha20 na Poly1305 zimewekwa kama analogi za haraka na salama zaidi za AES-256-CTR na HMAC, utekelezaji wa programu ambayo inaruhusu kufikia muda uliowekwa wa utekelezaji bila kuhusisha usaidizi maalum wa vifaa. Ili kutoa ufunguo wa siri ulioshirikiwa, itifaki ya mviringo ya Diffie-Hellman katika utekelezaji wa Curve25519, pia iliyopendekezwa na Daniel Bernstein, inatumiwa. Kwa hashing, algorithm ya BLAKE2s (RFC7693) hutumiwa.

Chanzo: opennet.ru

Kuongeza maoni