Uusi VPN WireGuard -toteutus lisätty FreeBSD-koodikantaan

FreeBSD:n lähdepuuta on muokattu uudella VPN WireGuard -toteutuksella, joka perustuu ytimen moduulikoodiin, jonka FreeBSD:n ja WireGuardin ydinkehitysryhmät ovat yhdessä laatineet VPN WireGuardin kirjoittajan Jason A. Donenfeldin ja John H. Baldwinin avulla. -tunnettu GDB:n ja FreeBSD:n kehittäjä, joka otti käyttöön SMP- ja NUMA-tuen FreeBSD-ytimessä 2000-luvun alussa. Kun ajuri on hyväksytty FreeBSD:hen (sys/dev/wg), sitä kehitetään ja ylläpidetään tästä lähtien FreeBSD-varastossa.

Ennen koodin hyväksymistä muutoksista tehtiin täydellinen tarkistus FreeBSD Foundationin tuella, jonka aikana analysoitiin myös ajurin vuorovaikutusta muiden ytimen alijärjestelmien kanssa sekä mahdollisuutta käyttää järjestelmän tarjoamia kryptografisia primitiivejä. ydin arvioitiin.

Ajurin vaatimien salausalgoritmien käyttämiseksi laajennettiin FreeBSD:n ytimen salausalijärjestelmän API, johon lisättiin sidos, joka mahdollistaa FreeBSD:ssä tukemattomien algoritmien käytön standardin krypto-API:n kautta käyttämällä tarvittavien algoritmien toteutusta libsodium-kirjastosta. . Ajuriin sisäänrakennetuista algoritmeista on jäljellä vain koodi Blake2-hajautusten laskemiseen, koska tämän FreeBSD:n tarjoaman algoritmin toteutus on sidottu kiinteään hash-kokoon.

Lisäksi tarkasteluprosessin aikana tehtiin koodin optimointi, joka mahdollisti kuormanjaon tehokkuuden lisäämisen moniytimisissä prosessoreissa (salauksen ja pakettien salauksenpurkutehtävien sidonnan yhtenäinen tasapainotus CPU-ytimiin varmistettiin). Tämän seurauksena pakettien käsittelyyn liittyvät kustannukset tuotiin lähemmäksi Linux-ohjaimen toteutusta. Koodi tarjoaa myös mahdollisuuden käyttää ossl-ohjainta salaustoimintojen nopeuttamiseen.

Toisin kuin edellinen yritys integroida WireGuard FreeBSD:hen, uusi toteutus käyttää stock wg -apuohjelmaa, eikä ifconfigin muokattua versiota, joka mahdollisti yhtenäisen kokoonpanon Linuxin ja FreeBSD:n välillä. Wg-apuohjelma sekä ajuri sisältyvät FreeBSD-lähteisiin, minkä mahdollistavat wg-koodin lisenssimuutokset (koodi on nyt saatavilla MIT- ja GPL-lisenssien alla). Edellinen yritys WireGuardin sisällyttämiseen FreeBSD:hen tehtiin vuonna 2020, mutta päättyi skandaaliin, jonka seurauksena jo lisätty koodi poistettiin huonon laadun, huolimattoman puskurinkäsittelyn, tynkien käytön tarkastusten sijaan, protokollan puutteellisen toteutuksen vuoksi. ja GPL-lisenssin rikkominen.

Muista, että VPN WireGuard on toteutettu nykyaikaisten salausmenetelmien pohjalta, se tarjoaa erittäin korkean suorituskyvyn, on helppokäyttöinen, vailla komplikaatioita ja on osoittautunut useissa suurissa toteutuksissa, jotka käsittelevät suuria määriä liikennettä. Projektia on kehitetty vuodesta 2015, läpäissyt käytettävien salausmenetelmien auditoinnin ja muodollisen todentamisen. WireGuard käyttää salausavainten reitityksen käsitettä, joka sisältää yksityisen avaimen sitomisen jokaiseen verkkoliitäntään ja julkisten avainten käytön sitoutumiseen.

Julkisten avainten vaihto yhteyden muodostamiseksi on samanlaista kuin SSH. Avainten neuvottelemiseen ja yhteyden muodostamiseen ilman erillistä käyttäjäavaruusdemonia käytetään Noise Protocol Frameworkin Noise_IK-mekanismia, joka on samanlainen kuin SSH:n authorised_keys. Tiedonsiirto tapahtuu kapseloimalla UDP-paketteihin. Se tukee VPN-palvelimen IP-osoitteen vaihtamista (roaming) katkaisematta yhteyttä automaattisen asiakkaan uudelleenmäärityksen avulla.

Salaus käyttää ChaCha20-virtasalausta ja Daniel J. Bernsteinin, Tanja Langen ja Peter Schwaben kehittämää Poly1305 Message Authentication (MAC) -algoritmia. ChaCha20 ja Poly1305 ovat AES-256-CTR:n ja HMAC:n nopeampia ja turvallisempia analogeja, joiden ohjelmistototeutus mahdollistaa kiinteän suoritusajan saavuttamisen ilman erityistä laitteistotukea. Jaetun salaisen avaimen luomiseen käytetään Elliptic Curve Diffie-Hellman -protokollaa Curve25519-toteutuksessa, jota myös Daniel Bernstein ehdotti. Hajautustyössä käytetään BLAKE2s-algoritmia (RFC7693).

Lähde: opennet.ru

Lisää kommentti