WireGuard „přijde“ do linuxového jádra – proč?

Na konci července navrhli vývojáři tunelu WireGuard VPN sada patchů, díky čemuž bude jejich software pro tunelování VPN součástí linuxového jádra. Přesné datum realizace „nápadu“ však zůstává neznámé. Pod řezem si povíme o tomto nástroji podrobněji.

WireGuard „přijde“ do linuxového jádra – proč?
/ foto Jaguár Tambako CC

Krátce o projektu

WireGuard je VPN tunel nové generace vytvořený Jasonem A. Donenfeldem, generálním ředitelem Edge Security. Projekt byl vypracován jako zjednodušený a rychlá alternativa k OpenVPN a IPsec. První verze produktu obsahovala pouze 4 tisíce řádků kódu. Pro srovnání, OpenVPN má asi 120 tisíc linek a IPSec - 420 tisíc.

Na Slova vývojářům, WireGuard se snadno konfiguruje a je dosaženo zabezpečení protokolu pomocí osvědčených kryptografických algoritmů. Při změně sítě: Wi-Fi, LTE nebo Ethernet se musí pokaždé znovu připojit k serveru VPN. Servery WireGuard neukončí připojení, i když uživatel obdržel novou IP adresu.

Navzdory skutečnosti, že WireGuard byl původně navržen pro linuxové jádro, vývojáři postaráno a o přenosné verzi nástroje pro zařízení Android. Aplikace ještě není plně vyvinuta, ale můžete si ji vyzkoušet již nyní. K tomu potřebujete staňte se jedním z testerů.

Obecně je WireGuard docela populární a dokonce byl implementováno několik poskytovatelů VPN, jako jsou Mullvad a AzireVPN. Publikováno online velký počet průvodce nastavením toto rozhodnutí. Například, existují průvodci, které jsou vytvořeny uživateli, a existují průvodci, připravili autoři projektu.

Technické detaily

В oficiální dokumentace (str. 18) je třeba poznamenat, že propustnost WireGuard je čtyřikrát vyšší než propustnost OpenVPN: 1011 Mbit/s oproti 258 Mbit/s. WireGuard je také před standardním řešením pro Linux IPsec – má 881 Mbit/s. Předčí ho i v jednoduchosti nastavení.

Po výměně klíčů (připojení VPN je inicializováno podobně jako SSH) a navázání spojení zvládne WireGuard všechny ostatní úkoly sám: není třeba se starat o směrování, kontrolu stavu atd. Další konfigurační úsilí bude pouze vyžadováno, pokud chcete použít symetrické šifrování.

WireGuard „přijde“ do linuxového jádra – proč?
/ foto Anders Hojbjerg CC

K instalaci budete potřebovat distribuci s linuxovým jádrem starším než 4.1. Lze jej nalézt v repozitářích hlavních linuxových distribucí.

$ sudo add-apt-repository ppa:hda-me/wireguard
$ sudo apt update
$ sudo apt install wireguard-dkms wireguard-tools

Jak poznamenávají redaktoři xakep.ru, samosestavení ze zdrojových textů je také snadné. Stačí otevřít rozhraní a vygenerovat veřejné a soukromé klíče:

$ sudo ip link add dev wg0 type wireguard
$ wg genkey | tee privatekey | wg pubkey > publickey

WireGuard nepoužívá rozhraní pro práci s poskytovatelem kryptoměn Cryptoapi. Místo toho se používá proudová šifra ChaCha20, kryptografický imitace vložky Poly1305 a proprietární kryptografické hashovací funkce.

Tajný klíč je generován pomocí protokol Diffie-Hellman na základě eliptické křivky Curve25519. Při hašování používají hashovací funkce BLAKE2 и SipHash. Kvůli formátu časového razítka TAI64N protokol zahazuje pakety s menší hodnotou časového razítka, a tím prevence DoS- и opakované útoky.

V tomto případě WireGuard používá k ovládání I/O funkci ioctl (dříve používaná netlink), díky čemuž je kód čistší a jednodušší. Můžete si to ověřit pohledem na konfigurační kód.

Developerské plány

Prozatím je WireGuard modul jádra mimo strom. Autorem projektu je ale Jason Donenfeld říká, že nadešel čas pro plnou implementaci v jádře Linuxu. Protože je jednodušší a spolehlivější než jiná řešení. Jason v tomto ohledu podporuje dokonce i sám Linus Torvalds označil kód WireGuard za „umělecké dílo“.

Nikdo ale nemluví o přesných datech zavedení WireGuard do jádra. A stěží to se stane s vydáním srpnového linuxového jádra 4.18. Existuje však možnost, že se tak stane ve velmi blízké budoucnosti: ve verzi 4.19 nebo 5.0.

Když je do jádra přidán WireGuard, vývojáři chcete dokončit aplikaci pro zařízení Android a začít psát aplikaci pro iOS. Plánuje se také dokončení implementací v Go a Rust a jejich portování na macOS, Windows a BSD. Plánuje se také implementace WireGuard pro „exotičtější systémy“: DPDK, FPGA, stejně jako mnoho dalších zajímavostí. Všechny jsou uvedeny v seznam úkolů autory projektu.

PS Několik dalších článků z našeho firemního blogu:

Hlavním směrem naší činnosti je poskytování cloudových služeb:

Virtuální infrastruktura (IaaS) | PCI DSS hosting | Cloud FZ-152 | SAP hosting | Virtuální úložiště | Šifrování dat v cloudu | Cloudové úložiště

Zdroj: www.habr.com

Přidat komentář