Byla představena implementace VPN WireGuard pro jádro Windows

Jason Donenfeld, autor VPN WireGuard, představil projekt WireGuardNT, který vyvíjí vysoce výkonný port VPN WireGuard pro Windows jádro, kompatibilní s Windows 7, 8, 8.1 a 10, a podporující architektury AMD64, x86, ARM64 a ARM. Kód implementace je šířen pod licencí GPLv2. Nový ovladač je již součástí klienta WireGuard pro Windows, avšak zatím je označen jako experimentální a není ve výchozím stavu aktivován.

Port je založen na osvědčené kódové základně hlavní implementace WireGuard pro Linux jádro, která byla převedena na použití entit jádra Windows a síťového stacku NDIS. V porovnání s dříve dostupnou implementací wireguard-go, která byla provozována v uživatelském prostoru a používala síťové rozhraní Wintun, se WireGuardNT vyznačuje významným zlepšením výkonu díky vyloučení operací kontextového přepínání a kopírování obsahu paketů z jádra do uživatelského prostoru. Podobně jako u implementací pro Linux, OpenBSD a FreeBSD, v WireGuardNT veškerá logika zpracování protokolu funguje přímo na úrovni síťového stacku.

I když specifické optimalizace zatím nebyly provedeny, WireGuardNT již umožnil dosáhnout vrcholového výkonu přenosu dat na úrovni 7,5 Gb/s v existujícím testovacím prostředí s Ethernetem. Na skutečných uživatelských systémech s Wi-Fi je výkon výrazně nižší, ale málo se liší od přímého přenosu dat. Například v systému s bezdrátovou kartou Intel AC9560 byla propustnost bez WireGuard 600 Mb/s a s WireGuardNT také zůstala na úrovni 600 Mb/s, zatímco při použití wireguard-go/Wintun byla 95 Mb/s.

Připomínáme, že VPN WireGuard je implementován na základě moderních šifrovacích metod, zajišťuje velmi vysoký výkon, je snadno použitelný, bez zbytečných komplikací a osvědčil se v řadě velkých nasazení, které zpracovávají velké objemy provozu. Projekt se vyvíjí od roku 2015, prošel auditem a formální verifikací použitých šifrovacích metod. V WireGuard je použita koncepce směrování na základě šifrovacích klíčů, která zahrnuje přidělení soukromého klíče každému síťovému rozhraní a použití pro propojení veřejných klíčů.

Výměna veřejných klíčů pro navázání spojení probíhá podobně jako při SSH. Pro dohodu o klíčích a spojení bez spuštění samostatného démona v uživatelském prostoru se používá mechanismus Noise_IK z Noise Protocol Framework, který je podobný zachování authorized_keys v SSH. Přenos dat se provádí prostřednictvím kapsulace do UDP paketů. Podporována je změna IP adres VPN servery (roaming) bez přerušení spojení s automatickým přeprogramováním klienta.

K šifrování se používá proudová šifra ChaCha20 a algoritmus autentizace zpráv (MAC) Poly1305, které vytvořili Daniel Bernstein, Tanja Lange a Peter Schwabe. ChaCha20 a Poly1305 jsou považovány za rychlejší a bezpečnější alternativy k AES-256-CTR a HMAC, jejichž softwarová implementace umožňuje dosáhnout konstantní doby provádění bez zapojení speciální hardwarové podpory. K generování sdíleného tajného klíče se používá protokol Diffie-Hellman na eliptických křivkách v implementaci Curve25519, rovněž navržené Danielem Bernsteinem. K hashování se používá algoritmus BLAKE2s (RFC7693).

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