WireGuard zal naar de Linux-kernel "komen" - waarom?

Eind juli hebben de ontwikkelaars van de WireGuard VPN-tunnel voorgesteld patch ingesteld, waardoor hun VPN-tunnelingsoftware onderdeel wordt van de Linux-kernel. De exacte datum van implementatie van het ‘idee’ blijft echter onbekend. Onder de snit zullen we meer in detail over deze tool praten.

WireGuard zal naar de Linux-kernel "komen" - waarom?
/ foto Tambako De Jaguar CC

Kort over het project

WireGuard is een VPN-tunnel van de volgende generatie, gemaakt door Jason A. Donenfeld, CEO van Edge Security. Het project is ontwikkeld als vereenvoudigd en een snel alternatief voor OpenVPN en IPsec. De eerste versie van het product bevatte slechts vierduizend regels code. Ter vergelijking: OpenVPN heeft ongeveer 4 duizend lijnen en IPSec - 120 duizend.

Op volgens ontwikkelaars is WireGuard eenvoudig te configureren en wordt protocolbeveiliging bereikt via beproefde cryptografische algoritmen. Bij het veranderen van netwerk: Wi-Fi, LTE of Ethernet moeten elke keer opnieuw verbinding maken met de VPN-server. WireGuard-servers verbreken de verbinding niet, zelfs niet als de gebruiker een nieuw IP-adres heeft ontvangen.

Ondanks het feit dat WireGuard oorspronkelijk is ontworpen voor de Linux-kernel, hebben de ontwikkelaars er is voor gezorgd en over een draagbare versie van de tool voor Android-apparaten. De applicatie is nog niet volledig ontwikkeld, maar je kunt hem nu uitproberen. Hiervoor heb je nodig word een van de testers.

Over het algemeen is WireGuard behoorlijk populair en dat is het zelfs geweest geïmplementeerd verschillende VPN-providers, zoals Mullvad en AzireVPN. Online gepubliceerd een groot aantal installatiehandleidingen deze beslissing. Bijvoorbeeld, er zijn gidsen, die door gebruikers zijn gemaakt, en er zijn handleidingen, opgesteld door de auteurs van het project.

Technisch

В officiële documentatie (p. 18) wordt opgemerkt dat de doorvoersnelheid van WireGuard vier keer hoger is dan die van OpenVPN: respectievelijk 1011 Mbit/s versus 258 Mbit/s. WireGuard loopt ook voor op de standaardoplossing voor Linux IPsec: het heeft 881 Mbit/s. Het overtreft het ook qua installatiegemak.

Nadat de sleutels zijn uitgewisseld (de VPN-verbinding wordt net als SSH geïnitialiseerd) en de verbinding tot stand is gebracht, handelt WireGuard alle andere taken zelfstandig af: u hoeft zich geen zorgen te maken over routering, statuscontrole, enz. Extra configuratie-inspanningen zijn alleen nodig vereist als u symmetrische encryptie wilt gebruiken.

WireGuard zal naar de Linux-kernel "komen" - waarom?
/ foto Anders Hojbjerg CC

Om te installeren heb je een distributie nodig met een Linux-kernel ouder dan 4.1. Het is te vinden in de repository's van grote Linux-distributies.

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

Zoals de redactie van xakep.ru opmerkt, is het zelf samenstellen van bronteksten ook eenvoudig. Het volstaat om de interface te openen en publieke en private sleutels te genereren:

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

WireGuard gebruikt niet interface voor het werken met een cryptoprovider crypto-API. In plaats daarvan wordt een stroomcodering gebruikt ChaCha20, cryptografisch imitatie inzetstuk Poly1305 en eigen cryptografische hashfuncties.

De geheime sleutel wordt gegenereerd met behulp van Diffie-Hellman-protocol gebaseerd op elliptische curve Curve 25519. Bij het hashen gebruiken ze hash-functies BLAKE2 и SipHash. Vanwege het tijdstempelformaat TAI64N het protocol negeert daarbij pakketten met een kleinere tijdstempelwaarde het voorkomen van DoS- и aanvallen herhalen.

In dit geval gebruikt WireGuard de ioctl-functie om I/O te besturen (eerder gebruikt netlink), wat de code schoner en eenvoudiger maakt. Je kunt dit verifiëren door te kijken configuratiecode.

Ontwikkelaars plannen

Voorlopig is WireGuard een kernelmodule die niet meer in de boom zit. Maar de auteur van het project is Jason Donenfeld говорит, dat het tijd is voor volledige implementatie in de Linux-kernel. Omdat het eenvoudiger en betrouwbaarder is dan andere oplossingen. Jason in dit opzicht ondersteunt de zelfs Linus Torvalds zelf noemde de WireGuard-code een ‘kunstwerk’.

Maar niemand heeft het over de exacte data voor de introductie van WireGuard in de kernel. EN nauwelijks dit zal gebeuren met de release van de Linux-kernel 4.18 in augustus. Er bestaat echter een mogelijkheid dat dit in de zeer nabije toekomst zal gebeuren: in versie 4.19 of 5.0.

Wanneer WireGuard aan de kernel wordt toegevoegd, kunnen ontwikkelaars wil voltooi de applicatie voor Android-apparaten en begin met het schrijven van een applicatie voor iOS. Er zijn ook plannen om implementaties in Go en Rust te voltooien en deze over te zetten naar macOS, Windows en BSD. Het is ook de bedoeling om WireGuard te implementeren voor meer “exotische systemen”: DPDK, FPGA, evenals vele andere interessante dingen. Ze staan ​​allemaal vermeld in te doen lijst auteurs van het project.

PS Nog een paar artikelen uit onze bedrijfsblog:

De hoofdrichting van onze activiteit is het aanbieden van clouddiensten:

Virtuele Infrastructuur (IaaS) | PCI DSS-hosting | Wolk FZ-152 | SAP-hosting | Virtuele opslag | Gegevens versleutelen in de cloud | Cloud opslag

Bron: www.habr.com

Voeg een reactie