VPN WireGuard on hyväksytty net-next-haaraan ja sen on tarkoitus sisällyttää Linux 5.6 -ytimeen

David Miller (David S. Miller), joka vastaa Linux-ytimen verkkoalijärjestelmästä, hyväksytty net-seuraavaan haaraan laastareita VPN-rajapinnan toteutuksen kanssa projektista WireGuard. Ensi vuoden alussa net-next-haaraan kertyneet muutokset muodostavat perustan Linux-ytimen 5.6 julkaisulle.

WireGuard-koodia on yritetty työntää pääytimeen viime vuosina, mutta ne eivät ole onnistuneet, koska ne on sidottu suorituskyvyn parantamiseen käytettyjen salaustoimintojen omaan toteutukseen. Aluksi nämä toiminnot olivat ehdotettu ytimelle ylimääräisenä matalan tason Zinc API:na, joka voisi lopulta korvata tavallisen Crypto API:n.

Kernel Recipes -konferenssissa käytyjen keskustelujen jälkeen WireGuardin luojat syyskuussa teki kompromissipäätöksen siirrä korjaustiedostosi käyttämään ytimessä saatavilla olevaa Crypto API:ta, johon WireGuard-kehittäjillä on valituksia suorituskyvyn ja yleisen turvallisuuden alalla. Sinkki API:n kehittämistä päätettiin jatkaa, mutta erillisenä projektina.

Marraskuussa ytimen kehittäjät mennään vastauksena kompromissiin ja suostui siirtämään osan koodista Zincistä pääytimeen. Pohjimmiltaan jotkin Zinc-komponentit siirretään ytimeen, mutta ei erillisenä API:na, vaan osana Crypto API -alijärjestelmää. Esimerkiksi Crypto API jo mukana WireGuardissa valmistettujen ChaCha20- ja Poly1305-algoritmien nopeat toteutukset.

WireGuardin tulevan toimituksen yhteydessä pääytimessä, hankkeen perustaja ilmoitti arkiston uudelleenjärjestelystä. Kehityksen yksinkertaistamiseksi monoliittinen "WireGuard.git" -arkisto, joka oli suunniteltu olemassaoloon erillään, korvataan kolmella erillisellä arkistolla, jotka sopivat paremmin pääytimen koodityön järjestämiseen:

  • wireguard-linux.git - täydellinen ydinpuu, jossa on muutoksia Wireguard-projektista, jonka korjaustiedostot tarkistetaan sisällytettäväksi ytimeen ja siirretään säännöllisesti net/net-next-haaroihin.
  • wireguard-tools.git - arkisto käyttäjätilassa suoritettaville apuohjelmille ja skripteille, kuten wg ja wg-quick. Arkiston avulla voidaan luoda paketteja jakeluille.
  • wireguard-linux-compat.git - arkisto moduulin muunnelmalla, joka toimitetaan erillään ytimestä ja sisältää compat.h-kerroksen yhteensopivuuden varmistamiseksi vanhempien ytimien kanssa. Pääkehitys tehdään wireguard-linux.git arkistossa, mutta niin kauan kuin käyttäjien keskuudessa on mahdollisuus ja tarve, myös erillistä versiota korjauksista tuetaan työmuodossa.

Muistutetaan, 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 käyttöönotoissa, jotka käsittelevät suuria määriä liikennettä. Hanketta on kehitetty vuodesta 2015, se on auditoitu ja muodollinen tarkastus käytettyjä salausmenetelmiä. WireGuard-tuki on jo integroitu NetworkManageriin ja systemd:iin, ja ytimen korjaustiedostot sisältyvät perusjakeluihin. Debian epävakaa, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, subgraph и ALT.

WireGuard käyttää salausavainten reitityksen käsitettä, joka sisältää yksityisen avaimen liittämisen jokaiseen verkkoliitäntään ja sen käyttämisen julkisten avainten sitomiseen. Julkisia avaimia vaihdetaan yhteyden muodostamiseksi samalla tavalla kuin SSH. Voit neuvotella avaimista ja muodostaa yhteyden ilman erillistä demonia käyttäjätilassa, Noise_IK-mekanismi Noise Protocol FrameworkSamankaltainen kuin authorised_keys ylläpitäminen SSH:ssa. Tiedonsiirto tapahtuu kapseloimalla UDP-paketteihin. Se tukee VPN-palvelimen IP-osoitteen vaihtamista (roaming) katkaisematta yhteyttä ja määrittämään asiakkaan automaattisesti uudelleen.

Salausta varten käytetty virran salaus ChaCha20 ja viestien todennusalgoritmi (MAC) Poly1305, suunnittelija Daniel Bernstein (Daniel J.Bernstein), Tanya Lange
(Tanja Lange) ja Peter Schwabe. 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 luomiseksi toteutuksessa käytetään elliptisen käyrän Diffie-Hellman-protokollaa Curve25519, jota myös ehdotti Daniel Bernstein. Hajautusalgoritmi on BLAKE2s (RFC7693).

At testaus Performance WireGuard osoitti 3.9 kertaa korkeamman suorituskyvyn ja 3.8 kertaa korkeamman vasteen verrattuna OpenVPN:ään (256-bittinen AES ja HMAC-SHA2-256). Verrattuna IPsec-järjestelmään (256-bittinen ChaCha20+Poly1305 ja AES-256-GCM-128), WireGuardin suorituskyky on parantunut hieman (13-18 %) ja latenssi on pienempi (21-23 %). Testit suoritettiin projektin kehittämien salausalgoritmien nopeilla toteutuksilla - ytimen standardi Crypto API:lle siirtyminen voi johtaa huonompaan suorituskykyyn.

VPN WireGuard on hyväksytty net-next-haaraan ja sen on tarkoitus sisällyttää Linux 5.6 -ytimeen

Lähde: opennet.ru

Lisää kommentti