FreeBSD-i algsete tekstidesse on tehtud muudatused, mis sisaldavad uut WireGuardi VPN-i teostust, mis pĂ”hineb tuumamooduli koodil, mille on koostanud FreeBSD ja WireGuardi peamised arendustiimid koos Jason A. Donenfeldi, WireGuardi autori, ja John H. Baldwini, tuntud GDB ja FreeBSD arendajaga, kes20. sajandi alguses viis lĂ€bi SMP ja NUMA toe rakendamise FreeBSD tuumas. PĂ€rast juhi vastuvĂ”tmist FreeBSD-sse (sys/dev/wg) toimub tema arendamine ja hooldus nĂŒĂŒd FreeBSD hoidlas.
Enne koodi vastuvĂ”tmist FreeBSD Foundation'i toetusel viidi lĂ€bi tĂ€ielik muudatuste lĂ€bivaatamine, mille kĂ€igus analĂŒĂŒsiti ka juhi suhtlemist ĂŒlejÀÀnud sĂŒdamiku allhoovustega ja hinnati tuumast pakutavate krĂŒptograafia primitivate kasutamise vĂ”imalusi.
Juhi nĂ”utavate krĂŒptograafiliste algoritmide kasutamiseks laiendati FreeBSD tuuma krĂŒptosĂŒsteemi API-d, kuhu lisati koonus, mis vĂ”imaldab kasutada FreeBSD-s toetamata algoritme, kasutades vajalikku algoritmi rakendust libsodium raamatukogust. Juhi sisseehitatud algoritmidest jĂ€i alles vaid Blake2 hash-arvutamise kood, kuna FreeBSD-s pakutud rakendus on seotud kindla hash-suurusega.
Lisaks viidi lĂ€bivaatamise kĂ€igus lĂ€bi koodi optimeerimine, mis tĂ”stis koormuse jaotuse efektiivsust mitme tuuma CPU-de peal (tagades vĂ”rdsed ĂŒlesannete krĂŒptimise ja dekrĂŒptimise tasakaalu tuumadele). Tulemuseks oli pakettide töötlemise kulud, mis olid lĂ€henenud Linuxi seadme rakendusele. Koodis on samuti tagatud vĂ”imalus kasutada ossl draiverit krĂŒptimise operatsioonide kiirendamiseks.
Erinevalt WireGuardi eelmise integreerimise katsetusest FreeBSD-s on uues rakenduses kasutusel standardne utiliit wg, mitte muudetud versioon ifconfig, mis vĂ”imaldas ĂŒhtlustada seadistust Linuxis ja FreeBSD-s. Utiliit wg, nagu ka draiver, on integreeritud FreeBSD lĂ€htekoodidesse, mis sai vĂ”imalikuks tĂ€nu wg koodi litsentsi muutusele (kood on nĂŒĂŒd litsentside MIT ja GPL all saadaval). Eelmine WireGuardi integreerimise katse FreeBSD-s toimus 2020. aastal, kuid see lĂ”ppes skandaaliga, mille tulemusena eemaldati juba lisatud kood madala kvaliteedi, bufrite haldamise hooletuse, vale kontrollide kasutamise, protokolli mittetĂ€ieliku rakendamise ja GPL litsentsi rikkumise tĂ”ttu.
peamine VPN WireGuard pĂ”hineb kaasaegsetel krĂŒpteerimismeetoditel, tagab vĂ€ga kĂ”rge jĂ”udluse, on lihtne kasutada, on vaba keerukusest ja on end tĂ”estanud mitmetes suurtes rakendustes, mis töötlevad suures mahus liiklust. Projekt on arenenud alates 2015. aastast, lĂ€binud auditi ja ametliku valideerimise kasutatavatele krĂŒpteerimismeetoditele. WireGuardis rakendatakse vĂ”tmete krĂŒpteerimise kaudu marsruutimise kontseptsiooni, mis hĂ”lmab iga vĂ”rgu liidese kinnise vĂ”tme sidumist ja avalike vĂ”tmete seondamise rakendamist.
Ăhenduse loomise avatud vĂ”tmete vahetus toimub SSH-i sarnaselt. VĂ”tmete kokkuleppimiseks ja ĂŒhenduse loomiseks ilma eraldi kasutaja ruumi deemonit kĂ€itata kasutatakse Noise Protocol Frameworki Noise_IK mehhanismi, mis sarnaneb SSH autoriseeritud vĂ”tmete haldamisega. Andmed edastatakse UDP-pakettidesse kapseldatuna. Toetatakse vahetust IP-aadressid VPN-serverid (roaming) katkestusteta ĂŒhenduse hoidmine automaatse kliendi seadistamisega.
KrĂŒptimiseks kasutatakse voogkrĂŒptereid ChaCha20 ja sĂ”numi autentimise algoritmi (MAC) Poly1305, mille on vĂ€lja töötanud Daniel Bernstein, Tanja Lange ja Peter Schwabe. ChaCha20 ja Poly1305 on turundatud kui kiiremad ja turvalisemad analoogid AES-256-CTR ja HMAC, mille programmiline rakendus vĂ”imaldab saavutada fikseeritud tĂ€itmise aega ilma spetsiaalset riistvara tuge kasutamata. Ăhise salajase vĂ”tme genereerimiseks kasutatakse elliptsete kĂ€ivete Difii-Hellmani protokolli Curve25519 rakenduses, mis on samuti ettepaneku Daniel Bernsteinilt. Hashimise jaoks kasutatakse algoritmi BLAKE2s (RFC7693).
Allikas: opennet.ru
