WireGuard wird zum Linux-Kernel "kommen" - warum?

Ende Juli bot die Entwickler VPN-Tunnel WireGuard eine Reihe von Patches , die ihre Software machen VPN-Tunnel, Teil des Linux - Kernels zu organisieren. Das genaue Datum für die Umsetzung der „Idee“ ist jedoch noch nicht bekannt. Unter der Katze werden wir ausführlicher über dieses Tool sprechen.


/ Foto Tambako Der Jaguar CC

Kurz über das Projekt


WireGuard ist der VPN-Tunnel der nächsten Generation, der von Jason A. Donenfeld, Leiter Edge Security, erstellt wurde. Das Projekt wurde als vereinfachte und flinke Alternative zu OpenVPN und IPsec entwickelt. Die erste Version des Produkts enthielt nur viertausend Codezeilen. Zum Vergleich: In OpenVPN etwa 120.000 Zeilen und in IPSec - 420.000.

Laut den Entwicklern ist WireGuard einfach zu konfigurieren und die Protokollsicherheit wird durch bewährte kryptografische Algorithmen erreicht . Wenn Sie das Netzwerk ändern : Wi-Fi, LTE oder Ethernet, müssen Sie jedes Mal eine neue Verbindung zum VPN-Server herstellen. WireGuard-Server unterbrechen die Verbindung nicht, selbst wenn der Benutzer eine neue IP-Adresse erhalten hat.

Trotz der Tatsache, dass WireGuard ursprünglich für den Linux-Kernel geschärft wurde, kümmerten sich die Entwickler um die tragbare Version des Tools für Android-Geräte. Die Anwendung ist noch nicht fertig, aber Sie können sie jetzt in der Praxis ausprobieren. Dazu müssen Sie einer der Tester werden .

Im Allgemeinen ist WireGuard sehr beliebt und wurde sogar von mehreren VPN-Anbietern wie Mullvad und AzireVPN implementiert. Das Netzwerk hat eine Vielzahl von Handbüchern zur Konfiguration dieser Lösung veröffentlicht. Beispielsweise gibt es Anleitungen , die Benutzer erstellen, und Anleitungen, die von den Autoren des Projekts erstellt wurden .

Technische Details


In der offiziellen Dokumentation (S. 18) wird darauf hingewiesen, dass die Bandbreite von WireGuard viermal höher ist als die von OpenVPN: 1011 Mbit / s gegenüber 258 Mbit / s. WireGuard ist der Standard-IPsec-Lösung von Linux voraus - 881 Mbit / s. Es übertrifft es in Bezug auf die einfache Einrichtung.

Nach dem Austausch der Schlüssel (die VPN-Verbindung wird fast wie in SSH initialisiert) und dem Herstellen der Verbindung löst WireGuard alle anderen Aufgaben unabhängig voneinander: Sie müssen sich keine Gedanken über das Routing, die Überwachung des Status usw. machen. Zusätzliche Konfigurationsanstrengungen müssen nur angewendet werden, wenn Sie symmetrische Verschlüsselung verwenden möchten.


/ Foto Anders Hojbjerg CC

Zur Installation benötigen Sie eine Distribution mit dem Linux-Kernel "älter" 4.1. Es befindet sich in den Repositorys der wichtigsten Linux-Distributionen.

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

Laut den Herausgebern von xakep.ru ist die Selbstorganisation aus dem Quellcode ebenfalls unkompliziert. Es reicht aus, die Schnittstelle zu öffnen und öffentliche und private Schlüssel zu generieren:

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

WireGuard verwendet keine Schnittstelle, um mit dem Kryptografieanbieter CryptoAPI zusammenzuarbeiten . Stattdessen werden die Stream-Chiffre ChaCha20 , die kryptografische Nachahmung Poly1305 und ihre eigenen kryptografischen Hash-Funktionen verwendet.

Der geheime Schlüssel wird unter Verwendung des Diffie-Hellman-Protokolls basierend auf der elliptischen Kurve Curve25519 generiert. Hashing verwendet die Hash-Funktionen BLAKE2 und SipHash . Aufgrund des TAI64N- Zeitstempelformats verwirft das Protokoll Pakete mit einem niedrigeren Zeitstempelwert, wodurch DoS- und Wiederholungsangriffe verhindert werden .

Gleichzeitig verwendet WireGuard die ioctl-Funktion zur Steuerung der E / A (zur Verwendung von Netlink ), wodurch der Code sauberer und einfacher wird. Sie können dies anhand des Konfigurationscodes überprüfen.

Entwicklerpläne


Bisher ist WireGuard ein Out-of-Tree-Kernelmodul. Der Projektautor Jason Donenfeld sagt jedoch, dass die Zeit für eine vollständige Implementierung im Linux-Kernel gekommen ist. Da es einfacher und zuverlässiger als andere Lösungen ist. Jason wird in dieser Hinsicht sogar von Linus Torvalds selbst unterstützt - er nannte den WireGuard-Code „ein Kunstwerk“.

Aber niemand spricht über die genauen Daten für die Einführung von WireGuard in den Kernel. Und dies ist mit der Veröffentlichung des Linux-Kernels 4.18 im August unwahrscheinlich . Es ist jedoch wahrscheinlich, dass dies in naher Zukunft geschehen wird: in Version 4.19 oder 5.0.

Wenn WireGuard zum Kernel hinzugefügt wird, möchten Entwickler die Anwendung für Android-Geräte verfeinern und mit dem Schreiben einer Anwendung für iOS beginnen. Darüber hinaus ist geplant, die Implementierungen auf Go and Rust abzuschließen und auf macOS, Windows und BSD zu portieren. Es ist auch geplant, WireGuard für "exotischere Systeme" zu implementieren: DPDK , FPGA und viele andere interessante Dinge. Alle von ihnen sind in der To-Do-Liste der Autoren des Projekts aufgeführt.



PS Noch ein paar Artikel aus unserem Unternehmensblog:




Die Hauptrichtung unserer Aktivitäten ist die Bereitstellung von Cloud-Diensten:

Virtuelle Infrastruktur (IaaS) | PCI DSS Hosting | Wolke FZ-152 | SAP-Hosting | Virtueller Speicher | Datenverschlüsselung in der Cloud | Cloud-Speicher

Source: https://habr.com/ru/post/de419769/


All Articles