VPN WireGuard bola prijatá do ďalšej vetvy siete a je navrhnutá na zahrnutie do jadra Linuxu 5.6

David Miller (David S. Miller), zodpovedný za sieťový subsystém jadra Linuxu, prijatý do siete-ďalšia pobočka náplasti s implementáciou VPN rozhrania z projektu WireGuard. Začiatkom budúceho roka budú zmeny nahromadené vo vetve net-next tvoriť základ pre vydanie linuxového jadra 5.6.

Pokusy vložiť kód WireGuard do hlavného jadra sa uskutočnili v priebehu niekoľkých posledných rokov, ale zostali neúspešné, pretože boli spojené s proprietárnymi implementáciami kryptografických funkcií, ktoré sa používali na zlepšenie výkonu. Spočiatku tieto funkcie boli navrhované pre jadro ako prídavné nízkoúrovňové Zinc API, ktoré by prípadne mohlo nahradiť štandardné Crypto API.

Po diskusiách na konferencii Kernel Recipes, tvorcovia WireGuard v septembri urobil kompromisné rozhodnutie preneste svoje záplaty na používanie Crypto API dostupného v jadre, na ktoré majú vývojári WireGuard sťažnosti v oblasti výkonu a všeobecnej bezpečnosti. Bolo rozhodnuté pokračovať vo vývoji Zinc API, ale ako samostatný projekt.

V novembri vývojári jadra išiel v reakcii na kompromis a súhlasili s prenesením časti kódu zo Zinc do hlavného jadra. V podstate sa niektoré komponenty Zinc presunú do jadra, ale nie ako samostatné API, ale ako súčasť subsystému Crypto API. Napríklad už Crypto API zahrnuté rýchle implementácie algoritmov ChaCha20 a Poly1305 pripravené v programe WireGuard.

V súvislosti s pripravovanou dodávkou WireGuard v hlavnom jadre zakladateľ projektu oznámil o reštrukturalizácii úložiska. Na zjednodušenie vývoja bude monolitické úložisko „WireGuard.git“, ktoré bolo navrhnuté tak, aby existovalo izolovane, nahradené tromi samostatnými úložiskami, ktoré sú vhodnejšie na organizáciu práce s kódom v hlavnom jadre:

  • wireguard-linux.git - kompletný strom jadra so zmenami z projektu Wireguard, záplaty, z ktorých budú kontrolované na zahrnutie do jadra a pravidelne prenášané do vetví net/net-next.
  • wireguard-toolss.git - úložisko pre pomocné programy a skripty spustené v užívateľskom priestore, ako napríklad wg a wg-quick. Úložisko možno použiť na vytváranie balíkov pre distribúcie.
  • wireguard-linux -patpat.git - úložisko s variantom modulu, dodávané oddelene od jadra a vrátane vrstvy compat.h na zabezpečenie kompatibility so staršími jadrami. Hlavný vývoj bude prebiehať v repozitári wireguard-linux.git, ale pokiaľ bude medzi používateľmi príležitosť a potreba, bude v pracovnej forme podporovaná aj samostatná verzia záplat.

Pripomeňme, že VPN WireGuard je implementovaný na báze moderných metód šifrovania, poskytuje veľmi vysoký výkon, je jednoduchý na používanie, bez komplikácií a osvedčil sa v množstve veľkých nasadení, ktoré spracovávajú veľké objemy prevádzky. Projekt sa rozvíja od roku 2015, prešiel auditom a formálne overenie používané metódy šifrovania. Podpora WireGuard je už integrovaná do NetworkManager a systemd a záplaty jadra sú zahrnuté v základných distribúciách Debian nestabilný, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, subgraph и ALT.

WireGuard využíva koncept smerovania šifrovacieho kľúča, ktorý zahŕňa pripojenie súkromného kľúča ku každému sieťovému rozhraniu a jeho použitie na viazanie verejných kľúčov. Verejné kľúče sa vymieňajú na vytvorenie spojenia podobným spôsobom ako SSH. Ak chcete vyjednať kľúče a pripojiť sa bez spustenia samostatného démona v užívateľskom priestore, mechanizmus Noise_IK z Noise Protocol Frameworkpodobne ako udržiavanie autorizovaných_kľúčov v SSH. Prenos dát sa uskutočňuje prostredníctvom zapuzdrenia do paketov UDP. Podporuje zmenu IP adresy servera VPN (roaming) bez odpojenia pripojenia a automatickú rekonfiguráciu klienta.

Pre šifrovanie použitý prúdová šifra ChaCha20 a algoritmus overovania správ (MAC) Poly1305, ktorý navrhol Daniel Bernstein (Daniel J. Bernstein), Tanya Langeová
(Tanja Lange) a Peter Schwabe. ChaCha20 a Poly1305 sú umiestnené ako rýchlejšie a bezpečnejšie analógy AES-256-CTR a HMAC, ktorých softvérová implementácia umožňuje dosiahnuť fixný čas vykonávania bez použitia špeciálnej hardvérovej podpory. Na vygenerovanie zdieľaného tajného kľúča sa v implementácii používa protokol Diffie-Hellman s eliptickou krivkou Curve25519, ktorú navrhol aj Daniel Bernstein. Algoritmus používaný na hashovanie je BLAKE2s (RFC7693).

Na testovanie Výkon WireGuard preukázal 3.9-krát vyššiu priepustnosť a 3.8-krát vyššiu odozvu v porovnaní s OpenVPN (256-bitový AES s HMAC-SHA2-256). V porovnaní s IPsec (256-bit ChaCha20+Poly1305 a AES-256-GCM-128) vykazuje WireGuard mierne zlepšenie výkonu (13-18%) a nižšiu latenciu (21-23%). Testy boli vykonané pomocou rýchlych implementácií šifrovacích algoritmov vyvinutých v rámci projektu - prechod na štandardné Crypto API jadra môže viesť k horšiemu výkonu.

VPN WireGuard bola prijatá do ďalšej vetvy siete a je navrhnutá na zahrnutie do jadra Linuxu 5.6

Zdroj: opennet.ru

Pridať komentár