WireGuard „príde“ do linuxového jadra – prečo?

Koncom júla navrhli vývojári tunela WireGuard VPN sada náplastí, čím sa ich softvér na tunelovanie VPN stane súčasťou linuxového jadra. Presný dátum realizácie „nápadu“ však zostáva neznámy. Pod rezom budeme hovoriť o tomto nástroji podrobnejšie.

WireGuard „príde“ do linuxového jadra – prečo?
/ foto Tambako The Jaguar CC

Stručne o projekte

WireGuard je VPN tunel novej generácie, ktorý vytvoril Jason A. Donenfeld, generálny riaditeľ spoločnosti Edge Security. Projekt bol vypracovaný ako zjednodušené a rýchla alternatíva k OpenVPN a IPsec. Prvá verzia produktu obsahovala iba 4 tisíc riadkov kódu. Pre porovnanie, OpenVPN má asi 120 tisíc liniek a IPSec - 420 tisíc.

Na podľa vývojárov, WireGuard sa ľahko konfiguruje a dosahuje sa bezpečnosť protokolu prostredníctvom overených kryptografických algoritmov. Pri zmene siete: Wi-Fi, LTE alebo Ethernet sa musia zakaždým znova pripojiť k serveru VPN. Servery WireGuard neukončujú pripojenie, aj keď používateľ dostal novú IP adresu.

Napriek tomu, že WireGuard bol pôvodne navrhnutý pre jadro Linuxu, vývojári Postarať sa o a o prenosnej verzii nástroja pre zariadenia so systémom Android. Aplikácia ešte nie je úplne vyvinutá, ale už teraz si ju môžete vyskúšať. Na to potrebujete staňte sa jedným z testerov.

Vo všeobecnosti je WireGuard pomerne populárny a dokonca bol implementovaná niekoľko poskytovateľov VPN, ako napríklad Mullvad a AzireVPN. Publikované online veľa sprievodcovia nastavením toto rozhodnutie. Napríklad, existujú sprievodcovia, ktoré sú vytvorené používateľmi a existujú sprievodcovia, pripravili autori projektu.

Technický

В oficiálna dokumentácia (str. 18) je potrebné poznamenať, že priepustnosť WireGuard je štyrikrát vyššia ako priepustnosť OpenVPN: 1011 Mbit/s oproti 258 Mbit/s, v tomto poradí. WireGuard predbieha aj štandardné riešenie pre Linux IPsec – má 881 Mbit/s. Prevyšuje ho aj jednoduchosťou nastavenia.

Po výmene kľúčov (pripojenie VPN je inicializované podobne ako SSH) a nadviazaní spojenia zvládne WireGuard všetky ostatné úlohy sám: nie je potrebné sa starať o smerovanie, kontrolu stavu atď. potrebné, ak chcete použiť symetrické šifrovanie.

WireGuard „príde“ do linuxového jadra – prečo?
/ foto Anders Hojbjerg CC

Na inštaláciu budete potrebovať distribúciu s linuxovým jadrom starším ako 4.1. Možno ho nájsť v úložiskách hlavných distribúcií Linuxu.

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

Ako poznamenávajú redaktori xakep.ru, jednoduchá je aj vlastná montáž zo zdrojových textov. Stačí otvoriť rozhranie a vygenerovať verejné a súkromné ​​kľúče:

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

WireGuard nepoužíva rozhranie pre prácu s poskytovateľom kryptomien CryptoAPI. Namiesto toho sa používa prúdová šifra ChaCha20, kryptografický imitácia vložky Poly1305 a proprietárne kryptografické hašovacie funkcie.

Tajný kľúč sa generuje pomocou Protokol Diffie-Hellman na základe eliptickej krivky Curve25519. Pri hashovaní používajú hašovacie funkcie BLAKE2 и SipHash. Kvôli formátu časovej pečiatky TAI64N protokol zahodí pakety s menšou hodnotou časovej značky, čím prevencia DoS- и opakované útoky.

V tomto prípade WireGuard používa funkciu ioctl na ovládanie I/O (predtým používané netlink), vďaka čomu je kód čistejší a jednoduchší. Môžete si to overiť pohľadom na konfiguračný kód.

Developerské plány

Momentálne je WireGuard modul jadra mimo stromu. Autorom projektu je ale Jason Donenfeld говорит, že nastal čas na plnú implementáciu v jadre Linuxu. Pretože je to jednoduchšie a spoľahlivejšie ako iné riešenia. Jason v tomto smere podporuje dokonca aj sám Linus Torvalds označil kód WireGuard za „umelecké dielo“.

Ale nikto nehovorí o presných dátumoch zavedenia WireGuard do jadra. A ťažko toto sa stane s vydaním augustového linuxového jadra 4.18. Existuje však možnosť, že sa tak stane vo veľmi blízkej budúcnosti: vo verzii 4.19 alebo 5.0.

Keď sa do jadra pridá WireGuard, vývojári chcieť dokončite aplikáciu pre zariadenia Android a začnite písať aplikáciu pre iOS. Plánuje sa aj dokončenie implementácií v Go a Rust a ich portovanie na macOS, Windows a BSD. Plánuje sa tiež implementácia WireGuard pre „exotickejšie systémy“: DPDK, FPGA, ako aj mnoho iných zaujímavostí. Všetky sú uvedené v zoznam úloh autorov projektu.

PS Niekoľko ďalších článkov z nášho firemného blogu:

Hlavným smerom našej činnosti je poskytovanie cloudových služieb:

Virtuálna infraštruktúra (IaaS) | PCI DSS hosting | Cloud FZ-152 | SAP hosting | Virtuálne úložisko | Šifrovanie údajov v cloude | Cloud-ové úložisko

Zdroj: hab.com

Pridať komentár