VPN WireGuard bylo přijato do větve net-next a plánuje se jeho zařazení do jádra Linux 5.6.

David Miller (David S. Miller), který odpovídá za síťový subsystém jádra Linux, přijal přidal do větve net-next patche s implementací VPN rozhraní z projektu WireGuard. Na začátku příštího roku se změny nahromaděné v větvi net-next stanou základem pro vydání jádra Linux 5.6.

Pokusy o prosazení kódu WireGuard do hlavní větve jádra probíhaly v posledních několika letech, ale zůstaly bez výsledku kvůli závislosti na vlastních implementacích kryptografických funkcí, které byly použity ke zvýšení výkonu. Zpočátku tyto funkce byly navrženy pro jádro jako doplňkový nízkoúrovňový API Zinc, který by postupně mohl nahradit standardní Crypto API.

Po jednáních na konferenci Kernel Recipes, tvůrci WireGuard v září přijali kompromisní rozhodnutí převést své patche na používání stávajícího Crypto API v jádře, k němuž mají vývojáři WireGuard výhrady ohledně výkonu a celkové bezpečnosti. API Zinc bylo rozhodnuto nadále vyvíjet jako samostatný projekt.

V listopadu vývojáři jádra šli na vzájemný kompromis a souhlasili s přesunem části kódu ze Zinc do hlavního jádra. V podstatě některé komponenty Zinc budou převedeny do jádra, ale ne jako samostatný API, ale jako součást subsystému Crypto API. Například v Crypto API již byly zahrnuty připravené v WireGuard rychlé implementace algoritmů ChaCha20 a Poly1305.

V souvislosti se nadcházející dodávkou WireGuard do hlavního jádra, zakladatel projektu oznámil o restrukturalizaci repozitáře. Aby se usnadnil vývoj, na místo monolitického repozitáře „WireGuard.git“, který byl určen pro samostatné existování, přijdou tři samostatné repozitáře, lépe vyhovující organizaci práce s kódem v hlavním jádře:

  • wireguard-linux.git — kompletní strom jádra se změnami od projektu WireGuard, jehož patche budou recenzovány pro zahrnutí do jádra a pravidelně přenášeny do větví net/net-next.
  • wireguard-tools.git — repozitář pro spouštěné v uživatelském prostoru nástroje a skripty, jako jsou wg a wg-quick. Tento repozitář lze použít pro vytvoření balíčků pro distribuce.
  • wireguard-linux-compat.git — repozitář s variantou modulu, dodávaného odděleně od jádra a zahrnující vrstvu compat.h pro zajištění kompatibility se staršími jádry. Hlavní vývoj bude probíhat v repozitáři wireguard-linux.git, ale prozatím bude také podporována oddělená varianta patchů pro potřeby uživatelů.

Připomínáme, že VPN WireGuard je realizována na základě moderních metod šifrování, poskytuje velmi vysoký výkon, je snadno použitelná, zbavena komplikací a prokázala se v řadě velkých nasazení zpracovávajících velké objemy provozu. Projekt se vyvíjí od roku 2015, prošel auditem a formální verifikací používaných metod šifrování. Podpora WireGuard je již integrovaná do NetworkManager a systemd, a patche pro jádro jsou součástí základních distribucí. Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph a ALT.

Ve WireGuard se používá koncept směrování na základě klíčů šifrování, který předpokládá přiřazení uzavřeného klíče k každému síťovému rozhraní a použití pro propojení otevřených klíčů. Výměna otevřených klíčů pro navázání spojení probíhá analogicky k SSH. Pro vyjednávání klíčů a navázání spojení bez spuštění samostatného démona v uživatelském prostoru se používá mechanismus Noise_IK z Noise Protocol Framework, podobný udržování authorized_keys v SSH. Přenos dat probíhá prostřednictvím enkapsulace do paketů UDP. Podporována je změna IP adresy VPN serveru (roaming) bez přerušení spojení a automatickým přeprogramováním klienta.

Pro šifrování se používá proudové šifrování ChaCha20 a algoritmus pro autentizaci zpráv (MAC) Poly1305, vyvinuté Danielem Bernsteinem (Daniel J. Bernstein), Tanjou Lange
(Tanja Lange) a Peterem Schwabem (Peter Schwabe). ChaCha20 a Poly1305 jsou vychvalovány jako rychlejší a bezpečnější alternativy k AES-256-CTR a HMAC, přičemž jejich softwarová implementace umožňuje dosáhnout stanoveného času zpracování bez použití speciální hardwarové podpory. Pro generování společného tajného klíče se používá protokol Diffie-Hellman na eliptických křivkách v implementaci Curve25519, také navrhovaný Danielem Bernsteinem. Pro hašování se používá algoritmus BLAKE2s (RFC7693).

Při testování výkonu WireGuard prokázal 3.9krát vyšší propustnost a 3.8krát vyšší odezvu v porovnání s OpenVPN (256-bit AES s HMAC-SHA2-256). V porovnání s IPsec (256-bit ChaCha20+Poly1305 a AES-256-GCM-128) vykazuje WireGuard mírné předstihy v výkonu (13-18%) a snížení latence (21-23%). Testy byly provedeny s využitím rychlých implementací šifrovacích algoritmů vyvíjených projektem — přechod na standardní Crypto API jádra by mohl vést ke zhoršení výkonu.

VPN WireGuard bylo přijato do větve net-next a plánuje se jeho zařazení do jádra Linux 5.6.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster