FreeBSD koodibaasi lisati uus VPN WireGuardi juurutus

FreeBSD lähtepuud on muudetud uue VPN WireGuardi juurutusega, mis põhineb kerneli mooduli koodil, mille on ühiselt ette valmistanud FreeBSD ja WireGuardi põhiarendusmeeskonnad, VPN WireGuardi autori Jason A. Donenfeldi ja John H. Baldwini sisendiga. -tuntud GDB ja FreeBSD arendaja, kes rakendas 2000. aastate alguses FreeBSD tuumas SMP ja NUMA toe. Kui draiver on FreeBSD-sse vastu võetud (sys/dev/wg), arendatakse ja hoitakse seda nüüdsest FreeBSD hoidlas.

Enne koodi vastuvõtmist viidi FreeBSD Foundationi toel läbi muudatuste täielik ülevaatus, mille käigus analüüsiti ka draiveri interaktsiooni ülejäänud kerneli alamsüsteemidega ning võimalust kasutada programmi poolt pakutavaid krüptoprimitiive. tuuma hinnati.

Draiveri poolt nõutavate krüptoalgoritmide kasutamiseks laiendati FreeBSD kerneli krüpto alamsüsteemi API-d, millele lisati sidumine, mis võimaldab standardse krüpto API kaudu kasutada FreeBSD-s toetamata algoritme, kasutades selleks vajalike algoritmide realiseerimist libsodium teegist. . Draiveri sisseehitatud algoritmidest on alles vaid Blake2 räsi arvutamise kood, kuna selle FreeBSD-s pakutava algoritmi rakendamine on seotud fikseeritud räsisuurusega.

Lisaks viidi ülevaatuse käigus läbi koodi optimeerimine, mis võimaldas tõsta mitmetuumaliste protsessorite koormuse jaotamise efektiivsust (tagati krüptimise ja pakettide dekrüpteerimise ülesannete sidumise ühtlane protsessori tuumadega). Selle tulemusel viidi pakettide töötlemise üldkulud Linuxi draiveri juurutamisele lähemale. Kood annab ka võimaluse kasutada ossl-draiverit krüpteerimistoimingute kiirendamiseks.

Erinevalt eelmisest katsest integreerida WireGuard FreeBSD-sse, kasutab uus rakendus stock wg utiliiti, mitte ifconfigi muudetud versiooni, mis võimaldas Linuxi ja FreeBSD vahel ühtset konfiguratsiooni. Wg-utiliit ja ka draiver sisalduvad FreeBSD allikates, mis on tehtud võimalikuks tänu litsentsi muutmisele wg-koodis (kood on nüüd saadaval MIT-i ja GPL-litsentside all). Viimane katse lisada WireGuard FreeBSD-sse tehti 2020. aastal, kuid lõppes skandaaliga, mille tulemusena eemaldati juba lisatud kood madala kvaliteedi, hooletu puhvrite käitlemise, stubide kasutamise kontrollide asemel, protokolli mittetäieliku juurutamise tõttu. ja GPL-i litsentsi rikkumine.

Tuletame meelde, et VPN WireGuard on juurutatud kaasaegsete krüpteerimismeetodite alusel, see tagab väga suure jõudluse, on hõlpsasti kasutatav, ilma komplikatsioonideta ja on end tõestanud paljudes suurtes juurutustes, mis töötlevad suurt liiklust. Projekt on arenenud alates 2015. aastast, läbinud kasutatud krüpteerimismeetodite auditi ja formaalse kontrolli. WireGuard kasutab krüpteerimisvõtme marsruutimise kontseptsiooni, mis hõlmab privaatvõtme sidumist iga võrguliidese külge ja avalike võtmete kasutamist.

Avalike võtmete vahetamine ühenduse loomiseks on sarnane SSH-ga. Võtmete üle läbirääkimiseks ja ühenduse loomiseks ilma eraldi kasutajaruumi deemoni käivitamiseta kasutatakse müraprotokolli raamistiku Noise_IK mehhanismi, mis sarnaneb SSH-s volitatud võtmete säilitamisele. Andmeedastus toimub UDP-pakettidesse kapseldamise teel. See toetab VPN-serveri IP-aadressi muutmist (rändlus) ilma ühendust katkestamata kliendi automaatse ümberkonfigureerimisega.

Krüpteerimine kasutab ChaCha20 voošifrit ja Poly1305 sõnumi autentimise (MAC) algoritmi, mille on välja töötanud Daniel J. Bernstein, Tanja Lange ja Peter Schwabe. ChaCha20 ja Poly1305 on positsioneeritud AES-256-CTR ja HMAC kiiremate ja turvalisemate analoogidena, mille tarkvaraline teostus võimaldab saavutada fikseeritud täitmisaega ilma spetsiaalset riistvaralist tuge kaasamata. Jagatud salavõtme genereerimiseks kasutatakse Curve25519 teostuses elliptilise kõvera Diffie-Hellmani protokolli, mille on välja pakkunud ka Daniel Bernstein. Räsimiseks kasutatakse BLAKE2s algoritmi (RFC7693).

Allikas: opennet.ru

Lisa kommentaar