Linux 5.5: Festgefahrene Wireguard-Aufnahme kommt endlich in Gang

Linux 5.5 bringt wahrscheinlich eine Infrastruktur, durch die die Furore machende VPN-Technik Wireguard nun endlich in den Kernel einfließen kann.

In Pocket speichern vorlesen Druckansicht 76 Kommentare lesen
Linux: Hürde bei Wireguard-Aufnahme endlich ausgeräumt

(Bild: WireGuard / pixabay (Collage))

Lesezeit: 4 Min.
Von
  • Thorsten Leemhuis
Inhaltsverzeichnis

Die Linux-Entwickler legen endlich Unstimmigkeiten um den Kryptographie-Code bei, die einer Aufnahme der viel diskutierten und gelobten VPN-Technik Wireguard lange im Wege standen. Das gelingt mit Umbauten, durch die eine erst im September verkündete Marschrichtung schon wieder hinfällig ist.

Wireguard macht seit mehr als zwei Jahren Furore und hat viele Fans. Darunter ist sogar Linus Torvalds, der die Technik im August 2018 öffentlich lobte: Im Vergleich zu den Gräueln, die OpenVPN und IPSec darstellten, sei Wireguard ein Kunstwerk.

Linus Torvalds lobte Wireguard im August 2018 deutlich.

Ganz ungewohnt setzte der Linux-Vater dabei sogar Betreuer von Teilbereichen des Kernel-Codes unter Druck, denn er erwähnte in dem Zug seine Hoffnung, dass der Kernel-Code zur Unterstützung von Wireguard bald in Linux einziehen könne. Trotz des Drucks von ganz oben kam es dazu aber bislang nicht. Das liegt an den Entwicklern des Kryptographie-Codes von Linux: Denen war der "Zinc" genannte Code von Wireguard ein Dorn im Auge, bei dem es sich um eigens für Wireguard entwickelten und zwingend von der VPN-Technik benötigten Crypto-Code handelt, der eine eigene API mitbringt.

Zinc setzt etwas anders an, wodurch es unter anderem leichter zu nutzen ist und Performance-Vorteile bieten kann, harmoniert aber nicht mit Crypto-Beschleuniger-Chips. Letztlich sahen die für das Crypto-Subsystem zuständigen Kernel-Entwickler nicht genug gute Gründe für die Aufnahme von Zinc. Sie wollten vor allem keine zweite API pflegen – eine im Kernel-Bereich häufiger anzustreffende Einstellung. Hin und wieder wurden Ansätze zur Lösung der Umstimmigkeiten mit dem leitenden Wireguard-Entwickler Jason A. Donenfeld diskutiert, aber die Programmierer kamen lange nicht überein; einige Details dazu erläutern die LWN.net-Artikel "WireGuarding the mainline" und "Whither WireGuard?".

Diese festgefahrene Situation löst sich gerade, denn der Betreuer des Crypto-Codes von Linux hat gerade Änderungen in seinen Entwicklerzweig integriert, die alles wesentliche auf eine Art nachrüsten, die Wireguard entgegen kommt. Dafür sorgt eine 34 Patches umfassende Patchserie des langjährigen Kernel-Entwicklers Ard Biesheuvel, die den bestehenden Crypto-Code etwas umbaut, erweitert und dabei so abstrahiert, dass Wireguard leicht darauf aufbauen kann. Biesheuvel arbeitet unabhängig vom Wireguard-Projekt und offenbar aus anderer Motivation; Donenfeld hat sich an der Begutachtung der Änderungen beteiligt und ist mit dem Lösungsansatz offenbar weitgehend zufrieden.

Durch die Aufnahme in den Entwicklerzweig des Crypto-Codes taucht der Code jetzt in Kürze in Linux-next auf und dürfte höchstwahrscheinlich in Linux 5.5 einfließen. Die Entwicklung des am 27. Januar oder 3. Februar erwarteten Kernels beginnt vermutlich schon nächsten Montag, denn dann dürfte das sich derzeit noch in Entwicklung befindliche Linux 5.4 erscheinen.

Nach jetzigem Stand ist Wireguard selbst bei 5.5 noch nicht dabei, denn das muss jetzt noch ein wenig an die neuen Gegebenheiten angepasst werden und dann von den Betreuern des Netzwerksubsystems begutachtet und für gut befunden werden. Es ist durchaus möglich, dass das innerhalb der nächsten Tage im Schnellverfahren passiert, aber eher unwahrscheinlich.

Kurioserweise lösen sich die Unstimmigkeiten jetzt im Sinne von Wireguard, kurz nachdem Donenfeld im September angekündigt hatte, die Bemühungen mit Zinc aufzugeben und Wireguard auf das ältere Crypto-API zu portieren. Keine Stunde später wurde der Wireguard-Entwickler aber schon vom Betreuer des Netzwerk-Subsystems wieder zurückgepfiffen, mit dem Donenfeld direkt vorher über die Integration geredet hatte.

Viele Medien hatten darüber berichtet, aber übersehen, dass Biesheuvel nur wenige Stunden nach diesen Hin und Her eine erste Fassung der nun integrierten Patches veröffentlichte, durch die sich die Situation nun viel eleganter und ohne umfangreiche Umbauten am Kernel-Code von Wireguard löst. Seine damalige Mail und ein Post mit der ersten, nur weniger Tage später veröffentlichten Überarbeitung des Ansatzes liefern weitere Details zu den Crypto-Infrastruktur-Umbauten für Wireguard, die in Linux 5.5 einziehen dürften.

Zur Entwicklung des Linux-Kernels siehe auch auf ct.de:


(thl)