Zpět na domů

WireGuard 1.0 pro Windows: jádrový ovladač a výkon

Analýza vydání WireGuard 1.0 a WireGuardNT 1.0 pro Windows. Popsány architektonické změny, přechod do jádra, kryptografická základna a podpora roamingu. Materiál je určen pro technickou publiku.

WireGuard 1.0 vyšel pro Windows: co se změnilo v jádře?
Advertisement 728x90

WireGuard 1.0 pro Windows: vydání jádrového ovladače a zvýšení výkonu

Byly vydány první stabilní verze WireGuard 1.0 pro Windows a ovladače WireGuardNT 1.0, který implementuje protokol VPN přímo v jádře Windows 10 a 11. To znamená přechod z uživatelského režimu k plné integraci se síťovým stackem NDIS, což zajišťuje významný nárůst výkonu díky eliminaci přepínání kontextu a zbytečného kopírování paketů.

Architektuřní změny v WireGuardNT

Dříve řešení pro Windows vycházelo z wireguard-go — implementace běžící v uživatelském prostoru a využívající ovladač Wintun pro interakci s jádrem. Navzdory své spolehlivosti tento přístup nevyhnutelně způsoboval režijní náklady: každý síťový paket procházel hranicí mezi uživatelským a privilegovaným režimem, což zpomalovalo zpracování provozu, zejména při vysoké zátěži.

WireGuardNT tento nedostatek odstraňuje umístěním celé logiky protokolu přímo do jádra. Ovladač je napsán s využitím NDIS (Network Driver Interface Specification) a plně vyhovuje architektonickým požadavkům Windows. Podporuje tři hlavní platformy: AMD64, x86 a ARM64. Kritické komponenty, jako zpracování MTU a správa stavu adaptéru, jsou nyní implementovány prostřednictvím oficiálních API jádra, včetně NdisWdfGetAdapterContextFromAdapterHandle(), což zvyšuje stabilitu a bezpečnost.

Google AdInline article slot

Kryptografická základna WireGuard

WireGuard zachovává jednotný kryptografický stack bez ohledu na platformu. Používá následující algoritmy:

  • ChaCha20 — streamový šifr s pevnou dobou provádění;
  • Poly1305 — MAC algoritmus pro autentizaci zpráv;
  • Curve25519 — eliptická křivka pro protokol Diffie–Hellmana;
  • BLAKE2s — hašovací funkce podle RFC 7693.

Tyto komponenty nebyly vybrány náhodně: zajišťují vysokou rychlost i bez hardwarového zrychlení, jsou odolné vůči útokům založeným na čase a prošly nezávislým ověřením. Na rozdíl od IPsec nebo OpenVPN WireGuard používá minimální sadu primitiv, což snižuje povrch útoku a usnadňuje audit.

Mechanismus navazování spojení a roaming

Navazování zabezpečeného kanálu v WireGuard je analogické výměně klíčů v SSH. Každý rozhraní má svůj soukromý klíč a důvěryhodné uzly jsou identifikovány podle veřejných klíčů. Pro dohodnutí relace klíčů se používá mechanismus Noise_IK z Noise Protocol Framework.

Google AdInline article slot

Specifikem WireGuard je podpora bezproblémového roamingu. Pokud klient změní IP adresu (např. při přechodu z Wi-Fi na mobilní síť), server automaticky aktualizuje informace o poloze klienta na základě posledního přijatého paketu. Spojení se tím nenaruší, což je klíčové pro mobilní zařízení a vzdálené pracovníky.

Technická vylepšení ve verzi 1.0

Vydání 1.0 je výsledkem víceletého doladění. Mezi klíčové změny patří:

  • Odmítnutí ukládání stavu ovladače do pole Reserved struktur jádra — nyní se používá standardní mechanismus kontextu adaptéru.
  • Dynamické sledování MTU prostřednictvím zachycení systémových volání, což zabraňuje fragmentaci paketů.
  • Přechod na standard C23 pro kódovou bázi, což zlepšuje přenositelnost a kompatibilitu s moderními kompilátory.
  • Plná podpora ARM64, díky čemuž je řešení vhodné pro nové generace Windows zařízení na bázi Qualcomm a dalších SoC.

Co je důležité

  • WireGuardNT běží plně v jádře Windows, což přináší významný nárůst výkonu ve srovnání s wireguard-go.
  • Kryptografický stack zůstává nezměněn: ChaCha20, Poly1305, Curve25519, BLAKE2s.
  • Roaming bez přerušení spojení je podporován „z krabice“.
  • Vydání 1.0 není jen číslo verze, ale dokončení fáze architektonické stabilizace.
  • Licencování je rozdělené: jádro — GPLv2, klientský software — MIT.

— Editorial Team

Google AdInline article slot
Advertisement 728x90

Číst dál