'n Nuwe VPN-implementering, WireGuard, is by die FreeBSD-kodebasis gevoeg.

Die FreeBSD-bronboom is opgedateer met 'n nuwe implementering van VPN WireGuard, gebaseer op kernmodulekode wat gesamentlik deur die kern FreeBSD- en WireGuard-ontwikkelingspanne vervaardig is met bydraes van Jason A. Donenfeld, skrywer van VPN WireGuard, en John H. Baldwin ), 'n bekende ontwikkelaar van GDB en FreeBSD, wat ondersteuning vir SMP en NUMA in die FreeBSD-kern in die vroeë 2000's geïmplementeer het. Nadat die bestuurder in FreeBSD (sys/dev/wg) aanvaar is, sal die ontwikkeling en instandhouding daarvan voortaan in die FreeBSD-bewaarplek uitgevoer word.

Voordat die kode aanvaar is, is 'n volledige hersiening van die veranderinge uitgevoer met die ondersteuning van die FreeBSD Foundation, waartydens die interaksie van die drywer met die res van die kernsubstelsels ook ontleed is en die moontlikheid om kriptografiese primitiewe te gebruik wat deur die kern verskaf word. beoordeel is.

Om die kriptografiese algoritmes te gebruik wat deur die drywer vereis word, is die API van die FreeBSD-kern-kripto-substelsel uitgebrei, waarby 'n harnas gevoeg is wat die gebruik van algoritmes wat nie in FreeBSD ondersteun word deur die standaard kripto-API toelaat nie, deur die implementering van die nodige algoritmes uit die libsodium-biblioteek. Van die algoritmes wat in die drywer ingebou is, is slegs die kode vir die berekening van Blake2-hashes oor, aangesien die implementering van hierdie algoritme wat in FreeBSD verskaf word, gekoppel is aan 'n vaste hash-grootte.

Boonop is kode-optimalisering tydens die hersieningsproses uitgevoer, wat dit moontlik gemaak het om die doeltreffendheid van lasverspreiding op multikern-SVE's te verhoog (eenvormige balansering van die toewysing van pakkie-enkripsie en dekripsietake aan SVE-kerns is verseker). As gevolg hiervan was die bokoste tydens die verwerking van pakkies naby aan dié van die Linux-bestuurderimplementering. Die kode bied ook die vermoë om die ossl-bestuurder te gebruik om enkripsie-operasies te bespoedig.

Anders as die vorige poging om WireGuard in FreeBSD te integreer, gebruik die nuwe implementering die standaard wg-nutsding, eerder as 'n gewysigde weergawe van ifconfig, wat dit moontlik maak om die konfigurasie op Linux en FreeBSD te verenig. Die wg-hulpmiddel, sowel as die bestuurder, is ingesluit in die FreeBSD-bronkode, wat moontlik gemaak is deur die lisensie vir die wg-kode te verander (die kode is nou beskikbaar onder die MIT- en GPL-lisensies). Die laaste poging om WireGuard by FreeBSD in te sluit, is in 2020 aangewend, maar het in 'n skandaal geëindig, as gevolg waarvan die reeds bygevoegde kode verwyder is weens lae gehalte, sorgelose werk met buffers, die gebruik van stompe in plaas van tjeks, onvolledige implementering van die protokol en oortreding van die GPL-lisensie.

Laat ons u daaraan herinner dat VPN WireGuard geïmplementeer word op die basis van moderne enkripsiemetodes, baie hoë werkverrigting lewer, maklik is om te gebruik, vry van komplikasies en homself bewys het in 'n aantal groot implementerings wat groot volumes verkeer verwerk. Die projek ontwikkel sedert 2015 en het 'n oudit en formele verifikasie van die enkripsiemetodes wat gebruik is, ondergaan. WireGuard gebruik die konsep van enkripsiesleutelroetering, wat behels dat 'n private sleutel aan elke netwerkkoppelvlak geheg word en dit gebruik om die publieke sleutels te bind.

Publieke sleutels word uitgeruil om 'n verbinding te bewerkstellig op 'n soortgelyke manier as SSH. Om sleutels te onderhandel en te koppel sonder om 'n aparte daemon in gebruikersruimte te laat loop, word die Noise Protocol Framework se Noise_IK-meganisme gebruik, soortgelyk aan die handhawing van gemagtigde_sleutels in SSH. Data-oordrag word uitgevoer deur inkapseling in UDP-pakkies. Dit ondersteun die verandering van die IP-adres van die VPN-bediener (roaming) sonder om die verbinding te ontkoppel met outomatiese kliëntherkonfigurasie.

Enkripsie gebruik die ChaCha20-stroomsyfer en die Poly1305-boodskapverifikasiealgoritme (MAC), ontwikkel deur Daniel J. Bernstein, Tanja Lange en Peter Schwabe. ChaCha20 en Poly1305 is geposisioneer as vinniger en veiliger analoë van AES-256-CTR en HMAC, waarvan die sagteware-implementering dit moontlik maak om 'n vaste uitvoeringstyd te bereik sonder die gebruik van spesiale hardeware-ondersteuning. Om 'n gedeelde geheime sleutel te genereer, word die elliptiese kurwe Diffie-Hellman protokol gebruik in die Curve25519 implementering, ook voorgestel deur Daniel Bernstein. Die BLAKE2s-algoritme (RFC7693) word vir hashing gebruik.

Bron: opennet.ru

Voeg 'n opmerking