VPN WireGuard sisaldub Linuxi kernelis 5.6

Täna kolis Linus VPN-liidestega net-next haru enda juurde WireGuard. Selle sündmuse kohta сообщили WireGuardi meililistis.

VPN WireGuard sisaldub Linuxi kernelis 5.6

Koodikogumine uue Linuxi 5.6 kerneli jaoks on praegu käimas. WireGuard on kiire järgmise põlvkonna VPN, mis rakendab kaasaegset krüptograafiat. Algselt töötati see välja olemasolevate VPN-ide lihtsama ja mugavama alternatiivina. Autor on Kanada infoturbespetsialist Jason A. Donenfeld. 2018. aasta augustis WireGuard saanud kiitust autor Linus Torvalds. Umbes sel ajal hakati VPN-i lisama Linuxi tuumasse. Protsess võttis veidi kauem aega.

"Näen, et Jason on esitanud tõmbetaotluse WireGuardi tuuma lisamiseks," kirjutas Linus 2. augustil 2018. — Kas ma saan veel kord kuulutada oma armastust selle VPN-i vastu ja loota peatsele ühinemisele? Kood ei pruugi olla täiuslik, kuid ma vaatasin seda ja võrreldes OpenVPN-i ja IPSeci õudustega on see tõeline kunstiteos.

Vaatamata Linuse soovile venis ühinemine poolteist aastat. Peamine probleem osutus seotud krüptograafiliste funktsioonide patenteeritud rakendustega, mida kasutati jõudluse parandamiseks. Pärast pikki läbirääkimisi 2019. aasta septembris see nii oli tehti kompromissotsus tõlkida plaastrid tuumas saadaolevatele Crypto API funktsioonidele, millele WireGuardi arendajatel on jõudluse ja üldise turvalisuse osas kaebusi. Kuid nad otsustasid eraldada natiivsed WireGuardi krüptofunktsioonid eraldi madala tasemega Zinc API-ks ja portida need lõpuks kernelisse. Novembris pidasid kerneli arendajad oma lubadust ja nõus kanda osa koodist tsingist põhikernelisse. Näiteks Crypto API-s kaasatud WireGuardis ettevalmistatud ChaCha20 ja Poly1305 algoritmide kiired juurutused.

Lõpuks, 9. detsembril 2019, David S. Miller, kes vastutab Linuxi tuuma võrgualamsüsteemi eest, aktsepteeritud net-järgmisse harusse plaastrid WireGuardi projekti VPN-liidese rakendamisega.

Ja täna, 29. jaanuaril 2020, läksid muudatused Linusele tuumasse kaasamiseks.

VPN WireGuard sisaldub Linuxi kernelis 5.6

WireGuardi väidetavad eelised teiste VPN-lahenduste ees:

  • Lihtne kasutada.
  • Kasutab kaasaegset krüptograafiat: Noise protokolli raamistik, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF jne.
  • Kompaktne, loetav kood, mida on lihtsam turvaaukude tuvastamiseks uurida.
  • Suur jõudlus.
  • Selge ja viimistletud spetsifikatsioon.

Kogu WireGuardi põhiloogika võtab vähem kui 4000 koodirida, samas kui OpenVPN ja IPSec nõuavad sadu tuhandeid ridu.

"WireGuard kasutab krüpteerimisvõtme marsruutimise kontseptsiooni, mis hõlmab privaatvõtme lisamist igale võrguliidesele ja avalike võtmete kasutamist selle sidumiseks. Avalikke võtmeid vahetatakse ühenduse loomiseks sarnaselt SSH-ga. Võtmete üle läbirääkimiste pidamiseks ja ühenduse loomiseks ilma kasutajaruumis eraldi deemonit käivitamata saab Noise_IK mehhanismi Müraprotokolli raamistiksarnane SSH-s volitatud_võtmete säilitamisega. Andmeedastus toimub UDP-pakettidesse kapseldamise teel. See toetab VPN-serveri IP-aadressi muutmist (rändlus) ilma ühendust katkestamata kliendi automaatse ümberkonfigureerimisega, - kirjutab Opennet.

Krüpteerimiseks kasutatud voo šifr ChaCha20 ja sõnumi autentimisalgoritm (MAC) Poly1305, kujundanud Daniel Bernstein (Daniel J. Bernstein), Tanja Lange ja Peter Schwabe. ChaCha20 ja Poly1305 on positsioneeritud kui AES-256-CTR ja HMAC kiiremad ja turvalisemad analoogid, mille tarkvaraline teostus võimaldab saavutada fikseeritud täitmisaja ilma spetsiaalset riistvaralist tuge kasutamata. Jagatud salavõtme genereerimiseks kasutatakse juurutamisel elliptilise kõvera Diffie-Hellmani protokolli Curve25519, mille pakkus välja ka Daniel Bernstein. Räsimisel kasutatav algoritm on BLAKE2s (RFC7693)'.

Järeldused jõudlustestid ametlikult veebisaidilt:

Ribalaius (megabit/s)
VPN WireGuard sisaldub Linuxi kernelis 5.6

Ping (ms)
VPN WireGuard sisaldub Linuxi kernelis 5.6

Testi konfiguratsioon:

  • Intel Core i7-3820QM ja Intel Core i7-5200U
  • Gigabit kaardid Intel 82579LM ja Intel I218LM
  • Linux 4.6.1
  • WireGuardi konfiguratsioon: 256-bitine ChaCha20 koos Poly1305-ga MAC-i jaoks
  • Esimene IPseci konfiguratsioon: 256-bitine ChaCha20 koos Poly1305-ga MAC-i jaoks
  • Teine IPseci konfiguratsioon: AES-256-GCM-128 (koos AES-NI-ga)
  • OpenVPN-i konfiguratsioon: AES 256-bitine samaväärne šifrikomplekt koos HMAC-SHA2-256, UDP-režiimiga
  • Toimivust mõõdeti kasutades iperf3, näitab keskmist tulemust 30 minuti jooksul.

Teoreetiliselt peaks WireGuard pärast võrgupinu integreerimist töötama veelgi kiiremini. Kuid tegelikkuses ei pruugi see nii olla, kuna läheb üle kernelisse sisseehitatud krüpto API krüptograafilistele funktsioonidele. Võib-olla pole kõik need veel optimeeritud oma WireGuardi jõudlustasemele.

"Minu seisukohast on WireGuard kasutaja jaoks üldiselt ideaalne. Kõik madala taseme otsused tehakse spetsifikatsioonis, seega võtab tüüpilise VPN-infrastruktuuri ettevalmistamine aega vaid mõne minuti. Seadistust on peaaegu võimatu segi ajada - писали Habrel 2018. aastal. — Paigaldusprotsess üksikasjalikult kirjeldatud ametlikul veebisaidil tahaksin eraldi märkida suurepärast OpenWRT tugi. Koodibaasi selline kasutuslihtsus ja kompaktsus saavutati võtmete levitamise kaotamisega. Puudub keeruline sertifikaadisüsteem ja kogu see ettevõtte õudus; lühikesi krüptimisvõtmeid levitatakse sarnaselt SSH-võtmetele.

WireGuardi projekt on arenenud alates 2015. aastast, seda on auditeeritud ja ametlik kontroll. WireGuardi tugi on integreeritud NetworkManageri ja systemd-i ning tuumapaigad sisalduvad Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraphi ja ALT baasdistributsioonides.

Allikas: www.habr.com

Lisa kommentaar