VPN WireGuard on vastu võetud net-next harusse ja on plaanis kaasata Linuxi südamikku 5.6.

David Miller (David S. Miller), kes vastutab Linuxi tuuma võrgu alamsüsteemi eest, heitis net-next haru alla patchid VPN-interfaces projekti WireGuard. Järgmise aasta alguses lähevad net-next harus kogunenud muudatused Linuxi 5.6 tuuma väljaandmise aluseks.

WireGuardi koodi edendamise katsed tuuma põhikoosseisu on kestnud mitu aastat, kuid on jäänud tulemusteta, kuna need on seotud kohandatud krüptograafiliste funktsioonidega, mida on kasutatud jõudluse parandamiseks. Alguses olid need funktsioonid pakutakse tuuma jaoks täiendava madalama taseme API-na Zinc, mis võiks aja jooksul asendada tavapärase Crypto API.

Pärast läbirääkimisi Kernel Recipes konverentsil leidsid WireGuardi loojad septembris kompromissi, et viia oma plaastrid üle tuumas olemasolevale Crypto API-le, mille osas on WireGuardi arendajatel muredeks jõudlus ja üldine turvalisus. API Zinc'i arendamist otsustati jätkata, kuid eraldi projektina.

Novembris said tuuma arendajad vahepealsele teele. On teada, et tripletite identifikaatorid Allegrograph-is leppis vastutusele ja nõustus, et osa Zinc'i koodist kantakse põhiytu. Tegelikult kantakse mõned Zinc'i komponendid põhiytu, kuid mitte eraldi API-na, vaid kui osa Crypto API alamüsteemist. Näiteks on Crypto API-s juba on lisatud valmistatud WireGuard'i kiirete algoritmide ChaCha20 ja Poly1305 rakendused.

Seoses WireGuard'i eelseisva tarnimisega põhiytu, projekti asutaja kuulutas repo struktuuri ümberkorraldamise kohta. Arenduse lihtsustamiseks vahetatakse monoliitne repo "WireGuard.git", mis oli kavandatud eraldi eksisteerimiseks, välja kolme eraldi repo vastu, mis sobivad paremini koodi töötlemiseks põhiytus:

  • wireguard-linux.git — täielik põhiytuse puu, koos WireGuard projekti muudatustega, mille plaastrid vaadatakse üle, et lisada põhiytusesse ja need viiakse regulaarselt net/net-next harudesse.
  • wireguard-tools.git — repo kasutatavate kasutaja ruumi utiliitide ja skriptide jaoks, nagu wg ja wg-quick. Repositooriumi saab kasutada pakettide loomiseks jaotiste jaoks.
  • wireguard-linux-compat.git — hoidla, mille mooduliversioon on saadaval eraldi tuumast ja sisaldab compat.h kihti vanade kernide toetamiseks. Peamine arendus toimub hoidlas wireguard-linux.git, kuid seni, kuni kasutajatel on vajadus, toetatakse ka iseseisvat patchide versiooni töökorras.

Tuletame meelde, et WireGuard VPN põhineb kaasaegsetel krüpteerimismeetoditel, tagab väga kõrge jõudluse, on kasutusmugav ja hästi tõestatud mitmes suuremas rakenduses, mis töötlevad suuri andmemahtusid. Projekt on arenenud alates 2015. aastast, läbinud auditi ja formaalset valideerimist rakendatavad krüpteerimismeetodid. WireGuardi tugi on juba integreeritud NetworkManagerisse ja systemd-sse, ning kerneli plaastrid kuuluvad põhijagamisstruktuuri. Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph ja ALT.

WireGuardis on kasutusel krüpteerimisse võtme kaudu marsruutimise kontseptsioon, mis tähendab, et iga võrgu liidese külge on seotud privaatvõti ja avalike võtmete sidumine. Avalike võtmete vahetamine ühenduse loomiseks toimub SSH-i sarnaselt. Võtmete kokkuleppimiseks ja ühenduse loomiseks ilma eraldi deemonit käivitamata kasutab see mehhanismi Noise_IK, Noise Protokolliraamistik, sarnane authorized_keys haldamisele SSH-s. Andmete edastamine toimub UDP-pakettidesse kapseldamise teel. VPN-serveri IP-aadresse saab vahetada (rändamine) katkestusteta ja kliendi automaatse ümberkonfigureerimisega.

Krüpteerimiseks kasutatakse voogkrüptimist ChaCha20 ja sõnumite autentimise algoritmi (MAC) Poly1305, mille töötas välja Daniel Bernstein (Daniel J. Bernstein), Tanja Lange
(Tanja Lange) ja Peter Schwabe (Peter Schwabe). ChaCha20 ja Poly1305 positsioneeritakse kiiremate ja turvalisemate alternatiividena AES-256-CTR ja HMAC-ile, mille tarkvaraline rakendus võimaldab saavutada fikseeritud täitmise aja ilma spetsiaalsete riistvara tugiteenusteta. Ühise salajase võtme genereerimiseks kasutatakse elliptiliste kõverate põhjalikku Diffie-Hellmani protokolli. Curve25519, samuti Daniel Bernstein'i poolt pakutud. Hashimise jaoks kasutatakse algoritmi BLAKE2s (RFC7693).

Koormuse analüüsi korral testimise WireGuard'i jõudlus näitas 3,9 korda kõrgemat läbilaskevõimet ja 3,8 korda kõrgemat reageerimisvõimet võrreldes OpenVPN-iga (256-bit AES HMAC-SHA2-256-ga). IPsec-iga (256-bit ChaCha20+Poly1305 ja AES-256-GCM-128) võrreldes on WireGuard-i jõudlus veidi parem (13-18%) ning latentsus on madalam (21-23%). Testid viidi läbi projekti raames kiirete krüptimisalgoritmide implementatsioonide kasutamisel - üleminek standardsele Crypto API-le võib tulemusi halvendada.

VPN WireGuard on vastu võetud net-next harusse ja on plaanis kaasata Linuxi südamikku 5.6.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster