WireGuard će “doći” u Linux kernel - zašto?

Krajem srpnja, programeri WireGuard VPN tunela predložili su set zakrpa, koji će njihov softver za VPN tuneliranje učiniti dijelom Linux kernela. No, točan datum realizacije “ideje” ostaje nepoznat. Ispod rezanja ćemo detaljnije govoriti o ovom alatu.

WireGuard će “doći” u Linux kernel - zašto?
/ fotografija Tambako Jaguar CC

Ukratko o projektu

WireGuard je VPN tunel sljedeće generacije koji je stvorio Jason A. Donenfeld, izvršni direktor tvrtke Edge Security. Projekt je razvijen kao pojednostavljeno i brza alternativa OpenVPN-u i IPsec-u. Prva verzija proizvoda sadržavala je samo 4 tisuće redaka koda. Za usporedbu, OpenVPN ima oko 120 tisuća linija, a IPSec - 420 tisuća.

Na prema programera, WireGuard se lako konfigurira i postiže se sigurnost protokola putem dokazanih kriptografskih algoritama. Prilikom promjene mreže: Wi-Fi, LTE ili Ethernet moraju se svaki put ponovno povezati s VPN poslužiteljem. WireGuard poslužitelji ne prekidaju vezu, čak ni ako je korisnik dobio novu IP adresu.

Unatoč činjenici da je WireGuard izvorno dizajniran za Linux kernel, programeri zbrinuta te o prijenosnoj verziji alata za Android uređaje. Aplikacija još nije u potpunosti razvijena, ali je sada možete isprobati. Za ovo vam je potrebno postanite jedan od testera.

Općenito, WireGuard je prilično popularan i čak je bio implementiran nekoliko VPN pružatelja, kao što su Mullvad i AzireVPN. Objavljeno na internetu veliki broj vodiči za postavljanje ovu odluku. Na primjer, postoje vodiči, koje kreiraju korisnici, a tu su i vodiči, pripremili autori projekta.

Tehnički

В službena dokumentacija (str. 18) primjećuje se da je propusnost WireGuarda četiri puta veća od one OpenVPN-a: 1011 Mbit/s u odnosu na 258 Mbit/s. WireGuard je također ispred standardnog rješenja za Linux IPsec - ima 881 Mbit/s. Također ga nadmašuje u jednostavnosti postavljanja.

Nakon što se ključevi razmijene (VPN veza se inicijalizira slično kao SSH) i veza se uspostavi, WireGuard sam rješava sve ostale zadatke: nema potrebe brinuti se o usmjeravanju, kontroli stanja itd. Dodatni napori konfiguracije bit će samo potrebno ako želite koristiti simetričnu enkripciju.

WireGuard će “doći” u Linux kernel - zašto?
/ fotografija Anders Hojbjerg CC

Za instalaciju će vam trebati distribucija s Linux kernelom starijim od 4.1. Može se pronaći u spremištima velikih distribucija Linuxa.

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

Kao što napominju urednici xakep.ru, samosklapanje iz izvornih tekstova također je jednostavno. Dovoljno je otvoriti sučelje i generirati javne i privatne ključeve:

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

WireGuard ne koristi sučelje za rad s kriptoprovajderom CryptoAPI. Umjesto toga, koristi se stream šifra ChaCha20, kriptografski imitacijski umetak Poly1305 i vlasničke kriptografske hash funkcije.

Tajni ključ se generira pomoću Diffie-Hellmanov protokol na temelju eliptičke krivulje Curve25519. Prilikom raspršivanja koriste se hash funkcije BLAKE2 и SipHash. Zbog formata vremenske oznake TAI64N protokol odbacuje pakete s manjom vrijednošću vremenske oznake, čime sprječavanje DoS-a и ponavljanje napada.

U ovom slučaju WireGuard koristi funkciju ioctl za kontrolu I/O (ranije korištena netlink), što kod čini čišćim i jednostavnijim. To možete provjeriti gledanjem konfiguracijski kod.

Planovi programera

Za sada je WireGuard kernel modul izvan stabla. Ali autor projekta je Jason Donenfeld on govori, da je došlo vrijeme za punu implementaciju u Linux kernelu. Zato što je jednostavnije i pouzdanije od ostalih rješenja. Jason u tom smislu podupire čak je i sam Linus Torvalds nazvao WireGuard kod "umjetničkim djelom".

Ali nitko ne govori o točnim datumima uvođenja WireGuarda u kernel. I jedva to će se dogoditi s izdanjem kolovoza Linux kernela 4.18. Međutim, postoji mogućnost da se to dogodi u vrlo skoroj budućnosti: u verziji 4.19 ili 5.0.

Kada se WireGuard doda kernelu, programeri želite finalizirati aplikaciju za Android uređaje i početi pisati aplikaciju za iOS. Također postoje planovi za dovršetak implementacija u Go i Rust te njihov prijenos na macOS, Windows i BSD. Također se planira implementirati WireGuard za "egzotičnije sustave": DPDK, FPGA, kao i mnoge druge zanimljivosti. Svi su navedeni u popis obaveza autori projekta.

PS Još nekoliko članaka s našeg korporativnog bloga:

Glavni smjer naše djelatnosti je pružanje usluga u oblaku:

Virtualna infrastruktura (IaaS) | PCI DSS hosting | Oblak FZ-152 | SAP hosting | Virtualna pohrana | Šifriranje podataka u oblaku | Pohrana u oblaku

Izvor: www.habr.com

Dodajte komentar