Warum wird WireGuard Teil des Linux-Kerns?

Ende Juli haben die Entwickler des VPN-Tunnels WireGuard vorgeschlagen Patch-Satz, ihre Software zur Einrichtung von VPN-Tunneln Teil des Linux-Kernels zu machen. Das genaue Datum für die Umsetzung des "Plans" bleibt jedoch unbekannt. Im Folgenden werden wir dieses Werkzeug genauer besprechen.

Warum wird WireGuard Teil des Linux-Kerns?
/ фото Tambako Der Jaguar CC

Kurzinformation zum Projekt

WireGuard ist ein VPN-Tunnel der nächsten Generation, entwickelt von Jason Donenfeld, dem Leiter der Firma Edge Security. Das Projekt wurde als vereinfachte und schnelle Alternative zu OpenVPN und IPsec entwickelt. Die erste Version des Produkts bestand aus nur 4.000 Zeilen Code. Zum Vergleich: OpenVPN hat etwa 120.000 Zeilen und IPSec 420.000.

Nach Aussage Entwicklern, WireGuard lässt sich einfach einrichten, und die Sicherheit des Protokolls wird durch bewährte kryptografische Algorithmen gewährleistet.. Bei einem Netzwerkwechsel: Wi-Fi, LTE oder Ethernet muss man sich jedes Mal wieder mit dem VPN-Server verbinden. Die WireGuard-Server unterbrechen jedoch keine Verbindung, selbst wenn der Benutzer eine neue IP-Adresse erhalten hat.

Obwohl WireGuard ursprünglich für den Linux-Kernel optimiert wurde, haben die Entwickler auch eine tragbare Version des Werkzeugs für Android-Geräte berücksichtigt. Die App ist derzeit noch nicht ausgereift, kann aber bereits ausprobiert werden. Dafür muss man einer der Tester werden..

Insgesamt erfreut sich WireGuard einer recht großen Beliebtheit und wurde sogar wurde implementiert von mehreren VPN-Anbietern wie Mullvad und AzireVPN implementiert. Im Internet findet man eine große Anzahl von Anleitungen zur Einrichtung dieses Tools. Zum Beispiel gibt es Guides, die von Nutzern erstellt wurden, und es gibt Guides, die von den Projektautoren vorbereitet wurden..

Technische Einzelheiten

Im offiziellen Dokumentation (S. 18) wurde festgestellt, dass die Bandbreite von WireGuard viermal höher ist als die von OpenVPN: 1.011 Mbit/s gegenüber 258 Mbit/s. WireGuard übertrifft auch die Standardlösung für Linux IPsec – diese hat 881 Mbit/s. Es übertrifft sie auch in Bezug auf die Einfachheit der Einrichtung.

Nach dem Austausch der Schlüssel (VPN-Verbindung wird ähnlich wie bei SSH initialisiert) und der Herstellung der Verbindung löst WireGuard eigenständig alle weiteren Aufgaben: Man muss sich keine Gedanken über die Routing, den Zustandskontrolle usw. machen. Zusätzliche Anstrengungen für die Einrichtung müssen nur unternommen werden, wenn symmetrische Verschlüsselung verwendet werden soll.

Warum wird WireGuard Teil des Linux-Kerns?
/ фото Anders Hojbjerg CC

Für die Installation wird eine Distribution mit einem Linux-Kernel „älter“ als 4.1 benötigt. Diese ist in den Repositories der gängigen Linux-Distributionen zu finden.

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

Wie die Redakteure von xakep.ru anmerken, ist das eigenständige Kompilieren aus Quelltexten ebenfalls unkompliziert. Es reicht aus, das Interface zu aktivieren und einen öffentlichen sowie einen privaten Schlüssel zu generieren:

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

WireGuard verwendet nicht Interface zur Arbeit mit dem Kryptografieanbieter CryptoAPI. Stattdessen wird ein Stream-Cipher verwendet ChaCha20, kryptografische Message Authentication Code Poly1305 und eigene kryptografische Hash-Funktionen.

Der geheime Schlüssel wird unter Verwendung von generiert. Die eigentliche Verschlüsselung auf Grundlage einer elliptischen Kurve Curve25519. Bei der Hash-Erstellung werden Hash-Funktionen BLAKE2 und SipHash. Dank des Formats des Zeitstempels TAI64N verwirft das Protokoll Pakete mit einem geringeren Zeitstempelwert, was DoS- und Replay-Angriffe.

verhindert. Dabei verwendet WireGuard die Funktion ioctl zur Steuerung der Ein- und Ausgabe (zuvor wurde Netlinkverwendet), was den Code sauberer und einfacher macht. Davon kann man sich überzeugen, indem man in den Konfigurationscode.

Die Pläne der Entwickler

Bislang ist WireGuard ein Out-of-Tree Kernelmodul. Aber der Projektautor Jason Donenfeld sagen, dass es bereits an der Zeit sei, eine vollständige Implementierung im Linux-Kernel zu realisieren. Da es einfacher und zuverlässiger ist als andere Lösungen. Jason sagt dazu sogar, unterstützt selbst Linus Torvalds – er nannte den Code von WireGuard "ein Kunstwerk".

Aber über genaue Termine für die Einführung von WireGuard in den Kernel spricht bislang niemand. Und es ist kaum zu erwarten, dass dies mit der Veröffentlichung des August-Kernel 4.18 passiert. Es besteht jedoch die Möglichkeit, dass dies in naher Zukunft geschieht: in Version 4.19 oder 5.0.

Wenn WireGuard in den Kernel aufgenommen wird, möchten die Entwickler die Anwendung für Android-Geräte weiterentwickeln und mit der Erstellung einer Anwendung für iOS beginnen. Außerdem ist eine Umsetzung in Go und Rust geplant und deren Portierung auf macOS, Windows und BSD. Zudem wird die Implementierung von WireGuard für exotischere Systeme angestrebt: FPGA DPDK, , sowie viele andere interessante Dinge. Alle sind in derTo-Do-Liste der Projektautoren aufgeführt. P.S. Noch einige Artikel aus unserem Unternehmensblog:

Cloud-Technologien im Finanzsektor: Erfahrungen russischer Unternehmen

Virtuelle Infrastruktur (IaaS)

PCI DSS Hosting | Cloud nach dem Gesetz FZ-152 | SAP-Hosting | Virtuelles SAN | Zuletzt betrachtet | Datenverschlüsselung in der Cloud | Cloud-Speicher

Quelle: habr.com

60GB SSD 8Gb DDR4