VPN WireGuard-en inplementazio berria gehitu da FreeBSD kode basera

FreeBSD iturburu-zuhaitza VPN WireGuard-en inplementazio berri batekin eguneratu da, FreeBSD eta WireGuard garapen-talde nagusiek elkarrekin ekoitzitako nukleo-moduluaren kodean oinarrituta, Jason A. Donenfeld, VPN WireGuard-en egilea eta John H. Baldwin-en ekarpenekin. GDB eta FreeBSDren garatzaile ezaguna, 2000ko hamarkadaren hasieran FreeBSD nukleoan SMP eta NUMArako euskarria ezarri zuena. Gidaria FreeBSD-n (sys/dev/wg) onartu ondoren, bere garapena eta mantentze-lanak FreeBSD biltegian egingo dira aurrerantzean.

Kodea onartu baino lehen, aldaketen berrikuspen osoa egin zen FreeBSD Fundazioaren laguntzarekin, eta bertan kontrolatzaileak nukleoko gainerako azpisistemekin zuen interakzioa eta nukleoak emandako primitibo kriptografikoak erabiltzeko aukera ere aztertu zen. baloratu zen.

Gidariak eskatzen dituen algoritmo kriptografikoak erabiltzeko, FreeBSD nukleoaren kripto-azpisistemaren APIa zabaldu zen, eta horri FreeBSD-n onartzen ez diren algoritmoak erabiltzeko aukera ematen duen arnes bat gehitu zitzaion, kripto-API estandarraren bidez, inplementazioa erabiliz. libsodium liburutegiko beharrezkoak diren algoritmoak. Gidatzailean integratutako algoritmoetatik, Blake2 hashak kalkulatzeko kodea bakarrik geratzen da, FreeBSD-n emandako algoritmo honen ezarpena hash tamaina finko bati lotuta baitago.

Gainera, berrikuspen prozesuan, kodearen optimizazioa egin zen, eta horri esker, karga-banaketaren eraginkortasuna areagotu zen nukleo anitzeko CPUetan (paketeen enkriptatzea eta deszifratze-zereginen esleipen uniformea ​​bermatu zen CPU-nukleoei). Ondorioz, paketeak prozesatzeko gainkostua Linux kontrolatzailearen inplementaziotik hurbil zegoen. Kodeak ossl kontrolatzailea erabiltzeko aukera ere ematen du enkriptazio eragiketak bizkortzeko.

WireGuard FreeBSD-n integratzeko aurreko saiakeran ez bezala, inplementazio berriak wg utilitate estandarra erabiltzen du, ifconfig-en bertsio aldatu bat baino, eta horrek konfigurazioa Linux eta FreeBSD-en bateratzea posible egiten du. wg utilitatea, baita kontrolatzailea ere, FreeBSD iturburu-kodean sartuta dago, eta hori wg kodearen lizentzia aldatuz egin zen (kodea eskuragarri dago orain MIT eta GPL lizentzien arabera). WireGuard FreeBSD-en sartzeko azken saiakera 2020an egin zen, baina eskandalu batean amaitu zen, eta horren ondorioz jada gehitutako kodea kendu egin zen kalitate baxuko, bufferekin lan arduragabeagatik, zirriborroen erabilera egiaztapenen ordez, inplementazio osatugabeagatik. protokoloa eta GPL lizentzia urratzea.

Gogoratu VPN WireGuard enkriptazio-metodo modernoetan oinarrituta inplementatzen dela, errendimendu oso altua eskaintzen duela, erabiltzeko erraza dela, konplikaziorik gabea eta trafiko kopuru handia prozesatzen duten hainbat ezarpen handitan frogatu dela. Proiektua 2015etik garatzen ari da, erabilitako enkriptatze metodoen auditoria eta egiaztapen formala gainditu zituen. WireGuard-ek enkriptazio-gakoen bideratzearen kontzeptua erabiltzen du, hau da, sareko interfaze bakoitzari gako pribatu bat lotzea eta lotzeko gako publikoak erabiltzea.

Konexio bat ezartzeko gako publikoen trukea SSHren antzekoa da. Gakoak negoziatzeko eta erabiltzaile-espazioko daemon bereizirik exekutatu gabe konektatzeko, Noise Protocol Framework-eko Noise_IK mekanismoa erabiltzen da, SSH baimendutako gakoak mantentzearen antzera. Datuen transmisioa UDP paketeetan enkapsulatu bidez egiten da. VPN zerbitzariaren IP helbidea (roaming) aldatzea onartzen du bezeroen birkonfigurazio automatikoarekin konexioa eten gabe.

Enkriptatzea Daniel J. Bernstein, Tanja Lange eta Peter Schwabe-k garatutako ChaCha20 korronte zifratua eta Poly1305 mezuen autentifikazioa (MAC) algoritmoa erabiltzen ditu. ChaCha20 eta Poly1305 AES-256-CTR eta HMAC-en analogo azkarrago eta seguruago gisa kokatzen dira, eta horien softwarearen ezarpenak exekuzio-denbora finko bat lortzea ahalbidetzen du hardware-laguntza berezirik behar izan gabe. Partekatutako gako sekretu bat sortzeko, Curve25519 inplementazioan Curve2 inplementazioan kurba eliptikoa Diffie-Hellman protokoloa erabiltzen da, Daniel Bernsteinek ere proposatua. Hashing egiteko, BLAKE7693s algoritmoa (RFCXNUMX) erabiltzen da.

Iturria: opennet.ru

Gehitu iruzkin berria