VPN WireGuard võeti vastu net-next harusse ja see on kavas lisada Linuxi 5.6 tuuma

David Miller (David S. Miller), vastutab Linuxi tuuma võrgu alamsüsteemi eest, aktsepteeritud net-järgmisse harusse plaastrid projektist VPN-liidese juurutamisega WireGuard. Järgmise aasta alguses on net-next harus kogunenud muudatused aluseks Linuxi kerneli 5.6 väljalaskmisele.

Viimastel aastatel on tehtud katseid WireGuardi koodi põhituuma suruda, kuid need on ebaõnnestunud, kuna need olid seotud krüptograafiliste funktsioonide patenteeritud rakendustega, mida kasutati jõudluse parandamiseks. Algselt olid need funktsioonid välja pakutud kerneli jaoks täiendava madala tasemega Zinc API-na, mis võib lõpuks asendada standardse krüpto API.

Kernel Recipes konverentsil peetud arutelude järel WireGuardi loojad septembris tegi kompromissotsuse teisaldage oma plaastrid, et kasutada tuumas saadaolevat Crypto API-d, millele WireGuardi arendajatel on jõudluse ja üldise turvalisuse valdkonnas kaebusi. Otsustati jätkata Zinc API arendamist, kuid eraldi projektina.

Novembris kerneli arendajad läks vastuseks kompromissile ja nõustus kandma osa koodist Zincilt põhikernelile. Põhimõtteliselt teisaldatakse mõned tsinki komponendid tuuma, kuid mitte eraldi API-na, vaid osana Crypto API alamsüsteemist. Näiteks Crypto API juba kaasatud WireGuardis ettevalmistatud ChaCha20 ja Poly1305 algoritmide kiired juurutused.

Seoses eelseisva WireGuardi tarnimisega põhituumikus, projekti asutaja teatas hoidla ümberkorraldamise kohta. Arengu lihtsustamiseks asendatakse eraldi eksisteerima loodud monoliitne "WireGuard.git" hoidla kolme eraldi hoidlaga, mis sobivad paremini põhikernelis koodiga töö korraldamiseks:

  • wireguard-linux.git - täielik tuumapuu Wireguardi projekti muudatustega, mille plaastrid vaadatakse üle, et need kernelisse kaasata ja korrapäraselt üle võrgu/net-next harudesse.
  • wireguard-tools.git - hoidla kasutajaruumis töötavate utiliitide ja skriptide jaoks, nagu wg ja wg-quick. Hoidlast saab kasutada distributsioonide pakettide loomiseks.
  • wireguard-linux-compat.git - hoidla koos mooduli variandiga, mis tarnitakse kernelist eraldi ja sisaldab compat.h kihti, et tagada ühilduvus vanemate tuumadega. Põhiarendus viiakse läbi wireguard-linux.git repositooriumis, kuid seni, kuni kasutajate seas on võimalus ja vajadus, toetatakse ka töövormis paikade eraldi versiooni.

Tuletame meelde, et VPN WireGuard on juurutatud kaasaegsete krüpteerimismeetodite alusel, see tagab väga suure jõudluse, on hõlpsasti kasutatav, ilma komplikatsioonideta ja on end tõestanud mitmetes suurtes juurutustes, mis töötlevad suurt liiklust. Projekt on arenenud alates 2015. aastast, on auditeeritud ja ametlik kontroll kasutatud krüpteerimismeetodid. WireGuardi tugi on juba integreeritud NetworkManagerisse ja systemd-i ning põhidistributsioonidesse on kaasatud kerneli paigad Debian ebastabiilne, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Alamgraaf и ALT.

WireGuard kasutab krüpteerimisvõtme marsruutimise kontseptsiooni, mis hõlmab privaatvõtme lisamist igale võrguliidesele ja selle kasutamist avalike võtmete 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 mehhanismi Noise_IK 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 ja klienti automaatselt ümber konfigureerimata.

Krüpteerimiseks kasutatud voo šifr ChaCha20 ja sõnumi autentimisalgoritm (MAC) Poly1305, kujundanud Daniel Bernstein (Daniel J. Bernstein), Tanya Lange
(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).

juures testimine Performance WireGuard näitas 3.9 korda suuremat läbilaskevõimet ja 3.8 korda suuremat reageerimisvõimet võrreldes OpenVPN-iga (256-bitine AES koos HMAC-SHA2-256-ga). Võrreldes IPseciga (256-bitine ChaCha20+Poly1305 ja AES-256-GCM-128), näitab WireGuard jõudluse mõningast paranemist (13–18%) ja madalamat latentsust (21–23%). Testid viidi läbi projekti poolt välja töötatud krüpteerimisalgoritmide kiirete juurutuste abil – tuuma standardsele krüpto API-le üleviimine võib kaasa tuua halvema jõudluse.

VPN WireGuard võeti vastu net-next harusse ja see on kavas lisada Linuxi 5.6 tuuma

Allikas: opennet.ru

Lisa kommentaar