WireGuard wird in den Linux-Kernel „kommen“ – warum?

Ende Juli schlugen die Entwickler den WireGuard VPN-Tunnel vor Patch-Set, wodurch ihre VPN-Tunneling-Software Teil des Linux-Kernels wird. Das genaue Datum der Umsetzung der „Idee“ bleibt jedoch unbekannt. Im Folgenden werden wir ausführlicher auf dieses Tool eingehen.

WireGuard wird in den Linux-Kernel „kommen“ – warum?
/ Foto Tambako Der Jaguar CC

Kurz zum Projekt

WireGuard ist ein VPN-Tunnel der nächsten Generation, der von Jason A. Donenfeld, CEO von Edge Security, entwickelt wurde. Das Projekt wurde entwickelt als vereinfacht und eine schnelle Alternative zu OpenVPN und IPsec. Die erste Version des Produkts enthielt nur 4 Codezeilen. Zum Vergleich: OpenVPN verfügt über etwa 120 Leitungen und IPSec über 420.

Auf Text Entwicklern ist WireGuard einfach zu konfigurieren und Protokollsicherheit wird erreicht durch bewährte kryptografische Algorithmen. Beim Netzwerkwechsel: WLAN, LTE oder Ethernet müssen sich jedes Mal neu mit dem VPN-Server verbinden. WireGuard-Server brechen die Verbindung nicht ab, auch wenn der Benutzer eine neue IP-Adresse erhalten hat.

Trotz der Tatsache, dass WireGuard ursprünglich für den Linux-Kernel entwickelt wurde, haben die Entwickler gesorgt und über eine portable Version des Tools für Android-Geräte. Die Anwendung ist noch nicht vollständig entwickelt, aber Sie können sie jetzt ausprobieren. Dafür benötigen Sie Werden Sie einer der Tester.

Im Allgemeinen ist WireGuard sehr beliebt und war es sogar implementiert mehrere VPN-Anbieter, wie Mullvad und AzireVPN. Online veröffentlicht große Menge Einrichtungsanleitungen diese Entscheidung. Zum Beispiel, Es gibt Führer, die von Benutzern erstellt werden, und es gibt Anleitungen, erstellt von den Autoren des Projekts.

Technische Details

В amtliche Dokumentation (S. 18) Es wird darauf hingewiesen, dass der Durchsatz von WireGuard viermal höher ist als der von OpenVPN: 1011 Mbit/s gegenüber 258 Mbit/s. WireGuard ist auch der Standardlösung für Linux IPsec voraus – es verfügt über 881 Mbit/s. Es übertrifft es auch in der einfachen Einrichtung.

Nachdem die Schlüssel ausgetauscht wurden (die VPN-Verbindung wird ähnlich wie SSH initialisiert) und die Verbindung hergestellt ist, erledigt WireGuard alle anderen Aufgaben selbstständig: Sie müssen sich nicht um Routing, Statuskontrolle usw. kümmern. Es fallen lediglich zusätzliche Konfigurationsaufwände an erforderlich, wenn Sie die symmetrische Verschlüsselung verwenden möchten.

WireGuard wird in den Linux-Kernel „kommen“ – warum?
/ Foto Anders Hojbjerg CC

Zur Installation benötigen Sie eine Distribution mit einem Linux-Kernel älter als 4.1. Es ist in den Repositories der wichtigsten Linux-Distributionen zu finden.

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

Wie die Herausgeber von xakep.ru anmerken, ist die Selbstzusammenstellung aus Quelltexten ebenfalls einfach. 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 nicht Schnittstelle für die Zusammenarbeit mit einem Krypto-Anbieter Cryptoapi. Stattdessen wird eine Stream-Verschlüsselung verwendet ChaCha20, kryptographisch Imitationseinsatz Poly1305 und proprietäre kryptografische Hash-Funktionen.

Der geheime Schlüssel wird mit generiert Diffie-Hellman-Protokoll basierend auf einer elliptischen Kurve Curve25519. Beim Hashing verwenden sie Hash-Funktionen BLAKE2 и SipHash. Aufgrund des Zeitstempelformats TAI64N Dabei verwirft das Protokoll Pakete mit einem kleineren Zeitstempelwert Verhinderung von DoS- и Wiederholungsangriffe.

In diesem Fall verwendet WireGuard die ioctl-Funktion zur Steuerung der E/A (zuvor verwendet). Netlink), was den Code sauberer und einfacher macht. Sie können dies überprüfen, indem Sie sich Folgendes ansehen Konfigurationscode.

Entwicklerpläne

Derzeit ist WireGuard ein Out-of-Tree-Kernelmodul. Aber der Autor des Projekts ist Jason Donenfeld sagt, dass die Zeit für eine vollständige Implementierung im Linux-Kernel gekommen ist. Weil es einfacher und zuverlässiger ist als andere Lösungen. Jason in dieser Hinsicht unterstützt die Sogar Linus Torvalds selbst bezeichnete den WireGuard-Code als „Kunstwerk“.

Aber niemand spricht über die genauen Termine für die Einführung von WireGuard in den Kernel. UND kaum Dies wird mit der Veröffentlichung des Linux-Kernels 4.18 im August geschehen. Es besteht jedoch die Möglichkeit, dass dies in sehr naher Zukunft geschieht: in Version 4.19 oder 5.0.

Wenn WireGuard zum Kernel hinzugefügt wird, müssen Entwickler will es Finalisieren Sie die Anwendung für Android-Geräte und beginnen Sie mit dem Schreiben einer Anwendung für iOS. Es gibt auch Pläne, Implementierungen in Go und Rust abzuschließen und diese auf macOS, Windows und BSD zu portieren. Es ist auch geplant, WireGuard für „exotischere Systeme“ zu implementieren: DPDK, FPGA, sowie viele andere interessante Dinge. Alle von ihnen sind in aufgeführt Aufgabenliste Autoren des Projekts.

PS: Noch ein paar Artikel aus unserem Unternehmensblog:

Die Hauptrichtung unserer Tätigkeit ist die Bereitstellung von Cloud-Diensten:

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

Source: habr.com

Kommentar hinzufügen