Nije ymplemintaasje fan VPN WireGuard tafoege oan FreeBSD codebase

De FreeBSD-boarnebeam is wizige mei in nije VPN WireGuard-ymplemintaasje basearre op koade fan in kernelmodule tegearre taret troch de kearn FreeBSD- en WireGuard-ûntwikkelingsteams mei ynput fan Jason A. Donenfeld, skriuwer fan VPN WireGuard, en John H. Baldwin ), in bekende ûntwikkelder fan GDB en FreeBSD, dy't SMP- en NUMA-stipe yn 'e FreeBSD-kernel yn 'e iere 2000's ymplementearre. Sadree't in bestjoerder is akseptearre yn FreeBSD (sys/dev/wg), sil it fan no ôf ûntwikkele en ûnderhâlden wurde yn it FreeBSD-repository.

Foardat de koade waard akseptearre, waard in folsleine resinsje fan 'e wizigingen útfierd mei de stipe fan' e FreeBSD Foundation, wêrby't de ynteraksje fan 'e bestjoerder mei de rest fan' e kernel-subsystemen ek waard analysearre en de mooglikheid om de kryptografyske primitives te brûken dy't troch de kernel waard evaluearre.

Om de kryptografyske algoritmen te brûken dy't nedich binne troch de bestjoerder, waard it FreeBSD-kernel Krypto-subsysteem API útwreide, wêrby't in bining waard tafoege dy't it brûken fan algoritmen net stipe yn FreeBSD fia de standert Krypto-API, mei de ymplemintaasje fan de nedige algoritmen út 'e libsodium-bibleteek . Fan 'e algoritmen dy't yn' e bestjoerder binne boud is allinich de koade foar it berekkenjen fan Blake2-hashes oer, om't de ymplemintaasje fan dit algoritme foarsjoen yn FreeBSD is bûn oan in fêste hashgrutte.

Dêrnjonken waard tidens it beoardielingsproses koade-optimalisaasje útfierd, wat it mooglik makke om de effisjinsje fan loadferdieling op multi-core CPU's te ferheegjen (unifoarme balânsjen fan 'e bining fan fersifering en pakketûntsiferingstaken oan CPU-kearnen waard garandearre). As gefolch, de overhead fan ferwurkjen pakketten waard brocht tichter by de ymplemintaasje fan de bestjoerder foar Linux. De koade jout ek de mooglikheid om de ossl-bestjoerder te brûken om fersiferingsoperaasjes te fersnellen.

Oars as it foarige besykjen om WireGuard yn FreeBSD te yntegrearjen, brûkt de nije ymplemintaasje it stock wg-hulpprogramma, ynstee fan in wizige ferzje fan ifconfig, dy't in unifoarme konfiguraasje mooglik makke tusken Linux en FreeBSD. It wg-hulpprogramma, lykas de bestjoerder, binne opnommen yn 'e FreeBSD-boarnen, mooglik makke troch in lisinsjeferoaring oan' e wg-koade (de koade is no beskikber ûnder MIT- en GPL-lisinsjes). De lêste besykjen om WireGuard op te nimmen yn FreeBSD waard makke yn 2020, mar einige yn in skandaal, as gefolch wêrfan al tafoege koade waard fuorthelle fanwege lege kwaliteit, achteleas bufferbehanneling, gebrûk fan stubs ynstee fan kontrôles, ûnfolsleine ymplemintaasje fan it protokol en ynbreuk op de GPL lisinsje.

Tink derom dat VPN WireGuard wurdt ymplementearre op basis fan moderne fersiferingsmetoaden, leveret heul hege prestaasjes, is maklik te brûken, sûnder komplikaasjes en hat himsels bewiisd yn in oantal grutte ynset dy't grutte hoemannichten ferkear ferwurkje. It projekt is ûntwikkele sûnt 2015, trochjûn de kontrôle en formele ferifikaasje fan de brûkte fersifering metoaden. WireGuard brûkt it konsept fan fersifering kaai routing, dat giet it om it binen fan in privee kaai oan elke netwurk ynterface en it brûken fan iepenbiere kaaien te binen.

De útwikseling fan iepenbiere kaaien om in ferbining te meitsjen is fergelykber mei SSH. Om toetsen te ûnderhanneljen en te ferbinen sûnder in aparte brûkersromte-daemon út te fieren, wurdt it Noise_IK-meganisme fan it Noise Protocol Framework brûkt, fergelykber mei it behâld fan autorisearre_keys yn SSH. Gegevensferfier wurdt útfierd troch ynkapseling yn UDP-pakketten. It stipet it feroarjen fan it IP-adres fan 'e VPN-tsjinner (roaming) sûnder de ferbining te brekken mei automatyske klantkonfiguraasje.

Fersifering brûkt de ChaCha20 stream cipher en de Poly1305 berjocht autentikaasje (MAC) algoritme ûntwikkele troch Daniel J. Bernstein, Tanja Lange, en Peter Schwabe. ChaCha20 en Poly1305 wurde gepositioneerd as flugger en feiliger analogen fan AES-256-CTR en HMAC, de software-ymplemintaasje wêrfan it mooglik makket om in fêste útfieringstiid te berikken sûnder spesjale hardware-stipe te belûken. Om in dielde geheime kaai te generearjen, wurdt it elliptyske kromme Diffie-Hellman-protokol yn 'e Curve25519-ymplemintaasje, ek foarsteld troch Daniel Bernstein, brûkt. Foar hashing wurdt it BLAKE2s-algoritme (RFC7693) brûkt.

Boarne: opennet.ru

Add a comment