VPN WireGuard byla přijata do větve net-next a je navržena pro zahrnutí do jádra Linuxu 5.6

David Miller (David S. Miller), zodpovědný za síťový subsystém linuxového jádra, přijato do sítě-další větev záplaty s implementací rozhraní VPN z projektu WireGuard. Začátkem příštího roku budou změny nashromážděné ve větvi net-next tvořit základ pro vydání linuxového jádra 5.6.

Pokusy protlačit kód WireGuard do hlavního jádra byly učiněny během několika posledních let, ale zůstaly neúspěšné kvůli tomu, že byly svázány s proprietárními implementacemi kryptografických funkcí, které byly použity ke zlepšení výkonu. Zpočátku tyto funkce byly navržený pro jádro jako další nízkoúrovňové Zinc API, které by nakonec mohlo nahradit standardní Crypto API.

Po diskusích na konferenci Kernel Recipes tvůrci WireGuard v září učinil kompromisní rozhodnutí přeneste své záplaty k použití Crypto API dostupného v jádru, na které si vývojáři WireGuard stěžují v oblasti výkonu a obecné bezpečnosti. Bylo rozhodnuto pokračovat ve vývoji Zinc API, ale jako samostatný projekt.

V listopadu vývojáři jádra pojďme v reakci na kompromis a souhlasili s převodem části kódu ze Zinc do hlavního jádra. V podstatě budou některé komponenty Zinc přesunuty do jádra, ale ne jako samostatné API, ale jako součást subsystému Crypto API. Například již Crypto API zahrnuta rychlé implementace algoritmů ChaCha20 a Poly1305 připravené ve WireGuard.

V souvislosti s nadcházející dodávkou WireGuard v hlavním jádru zakladatel projektu oznámeno o restrukturalizaci úložiště. Pro zjednodušení vývoje bude monolitické úložiště „WireGuard.git“, které bylo navrženo tak, aby existovalo izolovaně, nahrazeno třemi samostatnými repozitáři, vhodnějšími pro organizaci práce s kódem v hlavním jádře:

  • wireguard-linux.git - kompletní strom jádra se změnami z projektu Wireguard, patche, z nichž budou revidovány pro zahrnutí do jádra a pravidelně přenášeny do větví net/net-next.
  • wireguard-toolss.git - úložiště pro nástroje a skripty spouštěné v uživatelském prostoru, jako je wg a wg-quick. Úložiště lze použít k vytváření balíčků pro distribuce.
  • wireguard-linux -patpat.git - úložiště s variantou modulu, dodávané odděleně od jádra a včetně vrstvy compat.h pro zajištění kompatibility se staršími jádry. Hlavní vývoj bude probíhat v úložišti wireguard-linux.git, ale dokud bude příležitost a potřeba mezi uživateli, bude v pracovní podobě podporována i samostatná verze záplat.

Připomeňme, že VPN WireGuard je implementován na bázi moderních šifrovacích metod, poskytuje velmi vysoký výkon, je snadno ovladatelný, bez komplikací a osvědčil se v řadě velkých nasazení zpracovávajících velké objemy provozu. Projekt se rozvíjí od roku 2015, prošel auditem a formální ověření používané šifrovací metody. Podpora WireGuard je již integrována do NetworkManageru a systemd a záplaty jádra jsou součástí základních distribucí Debian nestabilní, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph и ALT.

WireGuard využívá koncept směrování šifrovacího klíče, který zahrnuje připojení soukromého klíče ke každému síťovému rozhraní a jeho použití ke spojení veřejných klíčů. Veřejné klíče se vyměňují za účelem navázání spojení podobným způsobem jako SSH. Chcete-li vyjednat klíče a připojit se bez spuštění samostatného démona v uživatelském prostoru, použijte mechanismus Noise_IK Noise Protocol Frameworkpodobně jako udržování autorizovaných_klíčů v SSH. Přenos dat se provádí zapouzdřením do UDP paketů. Podporuje změnu IP adresy VPN serveru (roaming) bez přerušení připojení a automatické překonfigurování klienta.

Pro šifrování použitý proudová šifra ChaCha20 a algoritmus ověřování zpráv (MAC) Poly1305, navržený Danielem Bernsteinem (Daniel J. Bernstein), Tanya Lange
(Tanja Lange) a Peter Schwabe. ChaCha20 a Poly1305 jsou umístěny jako rychlejší a bezpečnější analogy AES-256-CTR a HMAC, jejichž softwarová implementace umožňuje dosáhnout pevné doby provádění bez použití speciální hardwarové podpory. Pro generování sdíleného tajného klíče je v implementaci použit protokol Diffie-Hellman eliptické křivky Curve25519, kterou rovněž navrhl Daniel Bernstein. Algoritmus používaný pro hashování je BLAKE2s (RFC7693).

na testování Výkon WireGuard prokázal 3.9krát vyšší propustnost a 3.8krát vyšší odezvu ve srovnání s OpenVPN (256bitový AES s HMAC-SHA2-256). Ve srovnání s IPsec (256-bit ChaCha20+Poly1305 a AES-256-GCM-128) vykazuje WireGuard mírné zlepšení výkonu (13–18 %) a nižší latenci (21–23 %). Testy byly provedeny pomocí rychlých implementací šifrovacích algoritmů vyvinutých v rámci projektu - přechod na standardní Crypto API jádra může vést k horšímu výkonu.

VPN WireGuard byla přijata do větve net-next a je navržena pro zahrnutí do jádra Linuxu 5.6

Zdroj: opennet.ru

Přidat komentář