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.
Muistakaa se VPN WireGuard on toteutettu käyttämällä moderneja salausmenetelmiä, se tarjoaa poikkeuksellisen suorituskyvyn, on helppokäyttöinen ja vaivaton. Se on osoittanut toimivuutensa useissa laajamittaisissa käyttöönotoissa, joissa käsitellään suuria tietoliikennemääriä. Projektia on kehitetty vuodesta 2015 lähtien, ja sen salausmenetelmät on auditoitu ja virallisesti todennettu. WireGuard käyttää avainpohjaista salausreitityskonseptia, jossa yksityinen avain sidotaan jokaiseen verkkorajapintaan ja avainten sitomiseen käytetään julkisia avaimia.
Yhteyden muodostaminen julkisilla avaimilla tapahtuu samalla tavalla kuin SSH:ssa. Avainten neuvottelemiseen ja yhteyden muodostamiseen ilman erillisen daemonin suorittamista käyttäjätilassa käytetään Noise Protocol Frameworkin Noise_IK-mekanismia, samalla tavalla kuin authorized_keys-avainten ylläpito SSH:ssa. Tiedonsiirto tapahtuu kapseloimalla UDP-paketteihin. Muutoksia tuetaan. IP-osoitteet VPN-palvelimet (roaming) ilman yhteyden keskeytystä automaattisella asiakkaan uudelleenkonfiguroinnilla.
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
