VPN WireGuard je součástí linuxového jádra 5.6

Dnes Linus přesunul síť-next větev s rozhraními VPN na sebe WireGuard. O této události сообщили na mailing listu WireGuard.

VPN WireGuard je součástí linuxového jádra 5.6

V současné době probíhá sběr kódu pro nové jádro Linuxu 5.6. WireGuard je rychlá VPN nové generace, která implementuje moderní kryptografii. Původně byl vyvinut jako jednodušší a pohodlnější alternativa k existujícím VPN. Autorem je kanadský specialista na informační bezpečnost Jason A. Donenfeld. V srpnu 2018, WireGuard byl pochválen od Linuse Torvaldse. Zhruba v té době se začalo pracovat na začlenění VPN do linuxového jádra. Proces trval trochu déle.

„Vidím, že Jason požádal o zahrnutí WireGuard do jádra,“ napsal Linus 2. srpna 2018. — Mohu ještě jednou prohlásit svou lásku k této VPN a doufat v brzké sloučení? Kód možná není dokonalý, ale podíval jsem se na něj a ve srovnání s hrůzami OpenVPN a IPSec je to skutečné umělecké dílo.“

Přes Linusovo přání se sloučení protáhlo rok a půl. Ukázalo se, že hlavní problém je spojen s proprietárními implementacemi kryptografických funkcí, které byly použity ke zlepšení výkonu. Po dlouhých jednáních v září 2019 ano padlo kompromisní rozhodnutí překládat záplaty do funkcí Crypto API dostupných v jádře, na které si vývojáři WireGuard stěžují v oblasti výkonu a obecné bezpečnosti. Rozhodli se však oddělit nativní kryptofunkce WireGuard do samostatného nízkoúrovňového Zinc API a nakonec je přenést do jádra. V listopadu vývojáři jádra dodrželi svůj slib a souhlasil přeneste část kódu ze Zinc do hlavního jádra. Například v Crypto API zahrnuta rychlé implementace algoritmů ChaCha20 a Poly1305 připravené ve WireGuard.

Nakonec 9. prosince 2019 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í VPN rozhraní z projektu WireGuard.

A dnes, 29. ledna 2020, byly změny odeslány Linusovi k zahrnutí do jádra.

VPN WireGuard je součástí linuxového jádra 5.6

Nárokované výhody WireGuard oproti jiným řešením VPN:

  • Snadné použití.
  • Používá moderní kryptografii: Noise protocol framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF atd.
  • Kompaktní, čitelný kód, snadnější prozkoumání zranitelností.
  • Vysoký výkon.
  • Přehledné a propracované Specifikace.

Veškerá základní logika WireGuard zabírá méně než 4000 XNUMX řádků kódu, zatímco OpenVPN a IPSec vyžadují stovky tisíc řádků.

„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 použití veřejných klíčů k jeho spojení. 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í spojení s automatickou rekonfigurací klienta, - píše Opennet.

Pro šifrování použitý proudová šifra ChaCha20 a algoritmus ověřování zpráv (MAC) Poly1305, navržený Danielem Bernsteinem (Daniel J. Bernstein), 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)".

výsledky výkonnostní testy z oficiálních stránek:

Šířka pásma (megabit/s)
VPN WireGuard je součástí linuxového jádra 5.6

Ping (ms)
VPN WireGuard je součástí linuxového jádra 5.6

Testovací konfigurace:

  • Intel Core i7-3820QM a Intel Core i7-5200U
  • Gigabitové karty Intel 82579LM a Intel I218LM
  • Linux 4.6.1
  • Konfigurace WireGuard: 256bitový ChaCha20 s Poly1305 pro MAC
  • První konfigurace IPsec: 256bitový ChaCha20 s Poly1305 pro MAC
  • Druhá konfigurace IPsec: AES-256-GCM-128 (s AES-NI)
  • Konfigurace OpenVPN: AES ekvivalentní 256bitová šifrovací sada s HMAC-SHA2-256, režim UDP
  • Výkon byl měřen pomocí iperf3, ukazuje průměrný výsledek za 30 minut.

Teoreticky by po integraci do síťového zásobníku měl WireGuard fungovat ještě rychleji. Ale ve skutečnosti tomu tak nutně nebude kvůli přechodu na kryptografické funkce Crypto API zabudované v jádře. Možná ještě nejsou všechny optimalizovány na úroveň výkonu nativního WireGuardu.

„Z mého pohledu je WireGuard pro uživatele obecně ideální. Všechna rozhodnutí na nízké úrovni se provádějí ve specifikaci, takže proces přípravy typické infrastruktury VPN trvá jen několik minut. Je téměř nemožné zkazit konfiguraci - писали na Habré v roce 2018. — Proces instalace podrobně popsáno na oficiálních stránkách bych chtěl zvlášť poznamenat vynikající Podpora OpenWRT. Tato snadnost použití a kompaktnost základny kódu byla dosažena odstraněním distribuce klíčů. Neexistuje žádný složitý systém certifikátů a všechna tato firemní hrůza; krátké šifrovací klíče jsou distribuovány podobně jako klíče SSH.“

Projekt WireGuard se rozvíjí od roku 2015, prošel auditem a formální ověření. Podpora WireGuard je integrována do NetworkManageru a systemd a záplaty jádra jsou součástí základních distribucí Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph a ALT.

Zdroj: www.habr.com

Přidat komentář