David Miller (), kes vastutab Linuxi tuuma võrgusubha jaoks, WireGuardi projektist VPN-liidese teostusega. VPN-liidese rakendamisega projektist . Järgmise aasta alguses viimased muudatused, mis on kogunenud haru net-next, saavad aluseks Linuxi tuuma 5.6 väljaandmisele.
WireGuardi koodi edendamise katsed peamise tuumaga on kestnud viimased paar aastat, kuid need on tulemuste saavutamata jäänud, kuna need on seotud ooptiliste krüptograafiaga, mis on rakendatud jõudluse parandamiseks. Esialgu olid need funktsioonid tuuma jaoks täiendava madalama taseme API Zinc, mis ajapikku võiks asendada tavalise Crypto API.
Pärast läbirääkimisi Kernel Recipes konverentsil, said WireGuardi arendajad septembris oma plaastrite üleviimiseks olemasoleva tuuma Crypto API kasutamiseks, mille osas WireGuardi arendajatel on jõudluse ja üldise turvalisuse osas kaebusi. API Zinc'i otsustati jätkata arendamist, kuid eraldi projektina.
Novembris nõustusid tuuma arendajad kompromisslahenduse ja nõustusid viima peamista tuuma osa koodist Zincist. Sisuliselt mõned Zinc'i komponendid viiakse tuuma, kuid mitte kui eraldi API, vaid kui osa Crypto API süsteemist. Näiteks, Crypto API-s on juba WireGuardi kiired rakendused algoritmide ChaCha20 ja Poly1305.
Seoses WireGuard'i peamise tuuma toimetamisega, teatas projekti asutaja repository struktuuri muutmise kohta. Arendamise lihtsustamiseks vahetavad monoliitsest repository 'WireGuard.git', mis oli ette nähtud iseseiliseks eksisteerimiseks, kolm eraldi repository-d, mis sobivad paremini kooditöö korraldamiseks peamises tuumas:
- — täielik tuuma puu muudatustega Wireguard'i projektist, mille plaastrid ülevaatamiseks sisestatakse tuuma ja regulaarselt kantakse üle harudesse net/net-next.
- — repository kasutatavates kasulikes utiliitides ja skriptides, nagu wg ja wg-quick. Repository-d saab kasutada pakettide loomiseks jaotustele.
- — hoidla, mis sisaldab mooduliversiooni, mis on eraldatud tuumast ja sisaldab compat.h kihti, et tagada ühilduvus vanade tuumadega. Peamine arendus käib hoidlas wireguard-linux.git, kuid seni, kuni kasutajatel on vajadus ja võimalus, toetatakse ka eraldi patšide versiooni.
Tuletame meelde, et VPN WireGuard põhineb kaasaegsetel krüpteerimismeetoditel, pakub väga kõrget jõudlust, on lihtne kasutada, puuduvad keerukused ning on end tõestanud mitmes suures rakenduses, mis töötlevad suuri andmemahtusid. Projekt on käinud alates 2015. aastast, läbinud audit ja rakendatud krüpteerimismeetodite osas. WireGuard'i tugi on juba integreeritud NetworkManagerisse ja systemd-sse, ning tuuma patch'id kuuluvad jaotuste põhikoosseisu , Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, ja .
WireGuard kasutab krüpteerimisvõtmete põhist marsruutimise kontseptsiooni, mis tähendab, et iga võrgu liidese jaoks seostatakse privaatvõti ja avalike võtmete sidumine toimub sarnaselt SSH-le. Avalike võtmete vahetamine ühenduse loomise jaoks toimub sama printsiibi järgi nagu SSH-s. Võtmete kokku leppimiseks ja ühenduse loomiseks ilma eraldi kasutajaruumis deemonit käivitamata kasutatakse mehhanismi Noise_IK , sarnane authorized_keys hooldamisele SSH-s. Andmete edastamine toimub UDP-pakettide kapseldamise kaudu. Toetatakse VPN-serveri IP-aadressi muutmist (rändamine) ilma ühenduse katkestamiseta ja kliendi automaatset ümberkonfigureerimist.
Krüpteerimiseks voosredensus ja sõnumite autentimise algoritm (MAC) , mille on töötanud välja Daniel Bernstein (), Tanja Lange
(Tanja Lange) ja Peter Schwabe (Peter Schwabe). ChaCha20 ja Poly1305 on esitatud kiiremate ja turvalisemate variantidena AES-256-CTR ja HMAC, mille tarkvaraline teostus võimaldab saavutada fikseeritud töötlemisaega ilma spetsiaalse riistvaratoe kaasamiseta. Ühise salajase võtme genereerimiseks kasutatakse elliptsete kõverate järgi töötavat Diffie-Hellmani protokolli, mille teostas , samuti Daniel Bernstein'i ettepanek. Hashimise jaoks kasutatakse algoritmi .
Kaugjuhtimisega WireGuard'i jõudlus näitas 3,9 korda suuremat läbilaskevõimet ja 3,8 korda paremat reageerimiskiirus võrreldes OpenVPN'iga (256-bit AES koos HMAC-SHA2-256). Võrreldes IPsec'iga (256-bit ChaCha20+Poly1305 ja AES-256-GCM-128) on WireGuard'il veidi parem jõudlus (13-18%) ja madalam viivitus (21-23%). Testid viidi läbi arenduste käigus kiirete krüptimisalgoritmide rakendustega - üleminek tuuma standardsetele Crypto API-dele võib tulemusi halvendada.
Allikas: opennet.ru
