VPN WireGuard įtrauktas į Linux branduolį 5.6

Šiandien Linus perkėlė net-next filialą su VPN sąsajomis sau WireGuard. Apie šį įvykį сообщили „WireGuard“ adresų sąraše.

VPN WireGuard įtrauktas į Linux branduolį 5.6

Šiuo metu vyksta naujojo Linux 5.6 branduolio kodų rinkimas. „WireGuard“ yra greitas naujos kartos VPN, kuriame naudojama pažangiausia kriptografija. Iš pradžių jis buvo sukurtas kaip paprastesnė ir patogesnė esamų VPN alternatyva. Autorius – Kanados informacijos saugumo specialistas Jasonas A. Donenfeldas. 2018 m. rugpjūčio mėn. „WireGuard“. sulaukė pagyrimų Linusas Torvaldsas. Maždaug tuo metu buvo pradėtas VPN įtraukimas į „Linux“ branduolį. Procesas užtruko šiek tiek ilgiau.

„Matau, kad Jasonas pateikė prašymą įtraukti WireGuard į branduolį“, – rašė Linusas 2 m. rugpjūčio 2018 d. – Ar galiu dar kartą pareikšti savo meilę šiam VPN ir tikėtis greito susijungimo? Kodas gal ir nėra tobulas, bet pažiūrėjau ir palyginus su OpenVPN ir IPSec siaubu, tai tikras meno kūrinys.

Nepaisant Linaus norų, susijungimas užsitęsė pusantrų metų. Paaiškėjo, kad pagrindinė problema buvo susijusi su patentuotais kriptografinių funkcijų įgyvendinimais, kurie buvo naudojami našumui pagerinti. Po ilgų derybų 2019 m. rugsėjo mėn buvo priimtas kompromisinis sprendimas išversti branduolyje esančių Crypto API funkcijų pataisas, dėl kurių „WireGuard“ kūrėjai turi nusiskundimų dėl našumo ir bendro saugumo. Tačiau jie nusprendė atskirti vietines WireGuard kriptovaliutų funkcijas į atskirą žemo lygio cinko API ir galiausiai perkelti jas į branduolį. Lapkričio mėnesį branduolio kūrėjai ištesėjo savo pažadą ir sutiko perkelti dalį kodo iš cinko į pagrindinį branduolį. Pavyzdžiui, Crypto API įskaitant greiti „WireGuard“ parengtų „ChaCha20“ ir „Poly1305“ algoritmų diegimai.

Galiausiai 9 m. gruodžio 2019 d. Davidas S. Milleris, atsakingas už „Linux“ branduolio tinklo posistemį, priimtas į tinklą-kitą filialą pleistrai įdiegus VPN sąsają iš WireGuard projekto.

Ir šiandien, 29 m. sausio 2020 d., pakeitimai atiteko Linui, kad būtų galima įtraukti į branduolį.

VPN WireGuard įtrauktas į Linux branduolį 5.6

Teigiami „WireGuard“ pranašumai, palyginti su kitais VPN sprendimais:

  • Paprasta naudoti.
  • Naudoja modernią kriptografiją: Noise protocol framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF ir kt.
  • Kompaktiškas, skaitomas kodas, kurį lengviau ištirti dėl pažeidžiamumų.
  • Aukštos kokybės.
  • Aiškus ir išsamus specifikacija.

Visa „WireGuard“ pagrindinė logika užima mažiau nei 4000 kodo eilučių, o „OpenVPN“ ir „IPSec“ reikalauja šimtų tūkstančių eilučių.

„WireGuard naudoja šifravimo rakto maršruto parinkimo koncepciją, kuri apima privataus rakto prijungimą prie kiekvienos tinklo sąsajos ir viešųjų raktų naudojimą jai susieti. Viešaisiais raktais keičiamasi, kad būtų užmegztas ryšys panašiai kaip SSH. Norėdami derėtis dėl raktų ir prisijungti nepaleidžiant atskiro demono vartotojo erdvėje, Noise_IK mechanizmas iš Triukšmo protokolo sistemapanašus į įgaliotųjų_raktų palaikymą SSH. Duomenų perdavimas vykdomas inkapsuliuojant į UDP paketus. Palaiko VPN serverio IP adreso keitimą (tarptinklinis ryšys) neatjungiant ryšio su automatiniu kliento konfigūravimu, - rašo Opennet.

Dėl šifravimo naudotas srauto šifras „ChaCha20“ ir pranešimų autentifikavimo algoritmas (MAC) "Poly1305", sukūrė Daniel Bernstein (Danielis J. Bernsteinas), Tanja Lange ir Peter Schwabe. ChaCha20 ir Poly1305 yra išdėstyti kaip greitesni ir saugesni AES-256-CTR ir HMAC analogai, kurių programinė įranga leidžia pasiekti fiksuotą vykdymo laiką nenaudojant specialios aparatinės įrangos. Norint sugeneruoti bendrą slaptąjį raktą, įgyvendinant naudojamas elipsinės kreivės Diffie-Hellman protokolas Curve25519, taip pat pasiūlė Danielis Bernsteinas. Maišos keitimui naudojamas algoritmas yra BLAKE2s (RFC7693)".

rezultatai veikimo testai iš oficialios svetainės:

Pralaidumas (megabit/s)
VPN WireGuard įtrauktas į Linux branduolį 5.6

Ping (ms)
VPN WireGuard įtrauktas į Linux branduolį 5.6

Bandymo konfigūracija:

  • Intel Core i7-3820QM ir Intel Core i7-5200U
  • Gigabito kortelės Intel 82579LM ir Intel I218LM
  • Linux 4.6.1
  • „WireGuard“ konfigūracija: 256 bitų „ChaCha20“ su „Poly1305“, skirta MAC
  • Pirmoji IPsec konfigūracija: 256 bitų ChaCha20 su Poly1305, skirta MAC
  • Antroji IPsec konfigūracija: AES-256-GCM-128 (su AES-NI)
  • OpenVPN konfigūracija: AES 256 bitų lygiavertis šifrų rinkinys su HMAC-SHA2-256, UDP režimu
  • Našumas buvo matuojamas naudojant iperf3, rodo vidutinį rezultatą per 30 minučių.

Teoriškai „WireGuard“, kai jis bus integruotas į tinklo krūvą, turėtų veikti dar greičiau. Tačiau iš tikrųjų taip nebūtinai bus dėl perėjimo prie branduolyje įmontuotų Crypto API kriptografinių funkcijų. Galbūt ne visi jie dar optimizuoti pagal vietinio „WireGuard“ našumo lygį.

„Mano požiūriu, WireGuard paprastai yra idealus vartotojui. Visi žemo lygio sprendimai priimami specifikacijoje, todėl tipinės VPN infrastruktūros paruošimo procesas trunka vos kelias minutes. Beveik neįmanoma sujaukti konfigūracijos - писали Habré 2018 m. — Diegimo procesas išsamiai aprašyta oficialioje svetainėje norėčiau atskirai pažymėti puikų OpenWRT palaikymas. Toks kodo bazės naudojimo paprastumas ir kompaktiškumas buvo pasiektas panaikinus raktų paskirstymą. Nėra sudėtingos sertifikatų sistemos ir viso šio verslo siaubo; trumpi šifravimo raktai platinami panašiai kaip SSH raktai.

„WireGuard“ projektas vystomas nuo 2015 m., jis buvo audituotas ir formalus patikrinimas. „WireGuard“ palaikymas yra integruotas į „NetworkManager“ ir „systemd“, o branduolio pataisos yra įtrauktos į bazinius „Debian Unstable“, „Mageia“, „Alpine“, „Arch“, „Gentoo“, „OpenWrt“, „NixOS“, „Subgraph“ ir ALT platinimus.

Šaltinis: www.habr.com

Добавить комментарий