VPN WireGuard sisältyy Linux-ytimeen 5.6

Tänään Linus siirsi net-next-haaran VPN-liitännöillä itselleen WireGuard. Tästä tapahtumasta сообщили WireGuard-postituslistalla.

VPN WireGuard sisältyy Linux-ytimeen 5.6

Uuden Linux 5.6 -ytimen koodinkeruu on parhaillaan käynnissä. WireGuard on nopea seuraavan sukupolven VPN, joka toteuttaa nykyaikaisen salauksen. Se kehitettiin alun perin yksinkertaisemmaksi ja kätevämmaksi vaihtoehdoksi olemassa oleville VPN:ille. Kirjoittaja on kanadalainen tietoturva-asiantuntija Jason A. Donenfeld. Elokuussa 2018 WireGuard kehuttiin Kirjailija: Linus Torvalds Noihin aikoihin alettiin työskennellä VPN:n sisällyttämiseksi Linux-ytimeen. Prosessi kesti hieman kauemmin.

"Näen, että Jason on tehnyt vetopyynnön WireGuardin sisällyttämiseksi ytimeen", Linus kirjoitti 2. elokuuta 2018. — Voinko vielä kerran ilmaista rakkauteni tähän VPN:ään ja toivoa fuusiota pian? Koodi ei ehkä ole täydellinen, mutta katsoin sitä, ja OpenVPN:n ja IPSecin kauhuihin verrattuna se on todellinen taideteos.

Linuksen toiveista huolimatta fuusio kesti puolitoista vuotta. Suurin ongelma osoittautui sidoksissa salaustoimintojen patentoituihin toteutuksiin, joita käytettiin suorituskyvyn parantamiseen. Pitkien neuvottelujen jälkeen syyskuussa 2019 se oli kompromissipäätös tehtiin kääntää korjaukset ytimessä oleviin Crypto API -toimintoihin, joihin WireGuard-kehittäjillä on valituksia suorituskyvyn ja yleisen turvallisuuden alalla. Mutta he päättivät erottaa WireGuardin alkuperäiset kryptotoiminnot erilliseksi matalan tason Zinc API:ksi ja lopulta portoida ne ytimeen. Marraskuussa ytimen kehittäjät pitivät lupauksensa ja sovittu siirtää osan koodista sinkistä pääytimeen. Esimerkiksi Crypto API:ssa mukana WireGuardissa valmistettujen ChaCha20- ja Poly1305-algoritmien nopeat toteutukset.

Lopuksi 9. joulukuuta 2019 David S. Miller, joka vastaa Linux-ytimen verkkoalijärjestelmästä, hyväksytty net-seuraavaan haaraan laastareita WireGuard-projektin VPN-rajapinnan toteutuksella.

Ja tänään, 29. tammikuuta 2020, muutokset siirrettiin Linukselle sisällytettäväksi ytimeen.

VPN WireGuard sisältyy Linux-ytimeen 5.6

WireGuardin väitetyt edut muihin VPN-ratkaisuihin verrattuna:

  • Helppo käyttää.
  • Käyttää modernia kryptografiaa: Noise protocol framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF jne.
  • Kompakti, luettava koodi, jonka haavoittuvuudet on helpompi tutkia.
  • Korkea suorituskyky.
  • Selkeää ja yksityiskohtaista erittely.

Kaikki WireGuardin ydinlogiikka vie alle 4000 XNUMX koodiriviä, kun taas OpenVPN ja IPSec vaativat satoja tuhansia rivejä.

"WireGuard käyttää salausavainten reitityksen konseptia, jossa jokaiseen verkkoliitäntään liitetään yksityinen avain ja käytetään julkisia avaimia sen 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ä asiakkaan automaattisella uudelleenmäärityksellä, - kirjoittaa Opennet.

Salausta varten käytetty virran salaus ChaCha20 ja viestien todennusalgoritmi (MAC) Poly1305, suunnittelija Daniel Bernstein (Daniel J.Bernstein), 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)'.

Tulokset suorituskykytestit viralliselta verkkosivustolta:

Kaistanleveys (megabitti/s)
VPN WireGuard sisältyy Linux-ytimeen 5.6

Ping (ms)
VPN WireGuard sisältyy Linux-ytimeen 5.6

Testikokoonpano:

  • Intel Core i7-3820QM ja Intel Core i7-5200U
  • Gigabit-kortit Intel 82579LM ja Intel I218LM
  • Linux 4.6.1
  • WireGuard-kokoonpano: 256-bittinen ChaCha20 ja Poly1305 MAC:lle
  • Ensimmäinen IPsec-kokoonpano: 256-bittinen ChaCha20 ja Poly1305 MAC:lle
  • Toinen IPsec-kokoonpano: AES-256-GCM-128 (AES-NI:n kanssa)
  • OpenVPN-kokoonpano: AES 256-bittinen vastaava salauspaketti HMAC-SHA2-256:lla, UDP-tila
  • Suorituskykyä mitattiin käyttämällä iperf3, näyttää keskimääräisen tuloksen 30 minuutin ajalta.

Teoriassa, kun WireGuard on integroitu verkkopinoon, sen pitäisi toimia vielä nopeammin. Mutta todellisuudessa näin ei välttämättä tapahdu johtuen siirtymisestä ytimeen sisäänrakennettuihin Crypto API -salaustoimintoihin. Ehkä niitä kaikkia ei ole vielä optimoitu alkuperäisen WireGuardin suorituskykytasolle.

"Minun näkökulmastani WireGuard on yleensä ihanteellinen käyttäjälle. Kaikki matalan tason päätökset tehdään spesifikaatiossa, joten tyypillisen VPN-infrastruktuurin valmistelu kestää vain muutaman minuutin. Kokoonpanon sotkeminen on lähes mahdotonta - писали Habressa vuonna 2018. — Asennusprosessi kuvattu yksityiskohtaisesti virallisella verkkosivustolla, haluaisin erikseen mainita erinomaisen OpenWRT-tuki. Tämä koodikannan helppokäyttöisyys ja kompakti saavutettiin poistamalla avainten jakelu. Ei ole olemassa monimutkaista varmennejärjestelmää ja kaikkea tätä yrityksen kauhua; lyhyitä salausavaimia jaetaan samalla tavalla kuin SSH-avaimia.

WireGuard-projektia on kehitetty vuodesta 2015, se on auditoitu ja muodollinen tarkastus. WireGuard-tuki on integroitu NetworkManageriin ja systemdiin, ja ytimen korjaustiedostot sisältyvät Debian Unstablen, Mageian, Alpinen, Archin, Gentoon, OpenWrt:n, NixOS:n, Subgraphin ja ALT:n perusjakeluihin.

Lähde: will.com

Lisää kommentti