WireGuard – Hoch gelobt, doch wie sieht es mit der Anwendbarkeit aus?

Wie im ersten und zweiten Teil dieser Blogserie beschrieben, führte mich mein Weg von einem holprigen Windows 11 Upgrade mit negativen Auswirkungen auf meinen VPN-Client zunächst auf die Suche nach einer alternativen VPN-Lösung. Dabei wurde ich auf das neue VPN-Protokoll WireGuard aufmerksam, dessen Konfiguration und Nutzung ich in diesem Teil der Erfahrungsserie näher beschreiben möchte.

WireGuard ist eine Open-Source VPN-Lösung und wurde im Jahr 2015 veröffentlicht. Laut Jason A. Donnenfeld, dem Entwickler von WireGuard, wird sie bis heute weiterentwickelt. Während WireGuard im Linux Kernel 5.6 als Kernelmodul tief integriert ist, stehen für andere Betriebssysteme, wie Windows, iOS, macOS, Android und FreeBSD Software-Clients zur Nutzung des VPN-Protokolls zur Verfügung.

WireGuard verfügt mit etwa 4.000 Programmierzeilen über eine schlanke Codebasis, im Vergleich dazu verfügen OpenVPN und IPsec mit teilweise wesentlich mehr als 100.000 Codezeilen. Dieser Umstand ermöglicht es Entwicklern und Administratoren, die Programmierung leichter zu verstehen und mögliche Fehler und Schwachstellen schneller zu erkennen. Die übersichtliche Codebasis wird hauptsächlich dadurch erreicht, in dem WireGuard die Anzahl der möglichen Verschlüsselungsoptionen stark einschränkt. So sind für die unterschiedlichen kryptographischen Vorgänge nur die vordefinierten, modernen und schnellen Algorithmen erlaubt:

  • Schlüsselaustausch → Curve25519
  • Nachrichtenauthentifizierung → Poly1305
  • Symmetrische Verschlüsselung → ChaCha20

Jason A. Donnenfeld beschreibt seine Vision von WireGuard als ein VPN-Protokoll, dass so schnell und einfach zu konfigurieren und zu implementieren sein soll, wie das kryptographische Netzwerkprotokoll SSH. Wie in SSH, verfügen auch in WireGuard alle Gegenstellen über einen privaten und einen öffentlichen Schlüssel (siehe Beispielkonfiguration für Server und Client).

Abbildung 3: Beispielkonfiguration für WireGuard-Server und WireGuard-Client

Aufbau der Konfigurationsdatei und Verbindungsaufbau

Die WireGuard-Konfiguration in der FRITZ!Box ist sehr einfach und erfolgt über die Benutzeroberfläche, assistenzgeführt in nur wenigen Schritten. Die beiden einzigen Abfragen (bei der vereinfachten Konfiguration) bestehen aus der Wahl der Konfigurationsart (vereinfacht oder benutzerdefiniert) und der Vergabe eines Namens für die Verbindung. Die erzeugte Konfigurationsdatei für den Client steht anschließend zum Download (Desktop/Laptop) oder als QR-Code (Smartphone/Tablet) bereit.

Wie in der Beispielkonfiguration aufgeführt, enthält jede Peer-Assoziation (Gegenstelle) einen öffentlichen Schlüssel und eine Tunnel-IP Adresse (AllowedIP). Die AllowedIP gibt an, zu welchen IP-Adressen innerhalb des WireGuard-Tunnels eine Kommunikation gestattet ist. Die Verknüpfung aus öffentlichem Schlüssel und der Tunnel-IP-Adresse wird als Cryptokey Routing bezeichnet. Beim Empfang von Datenpaketen wird nach dem erfolgreichen Entschlüsseln und der Authentifizierung überprüft, ob die Quell-IP Adresse mit der AllowedIP des Absenders übereinstimmt. Nur dann erfolgt eine Weiterverarbeitung des Datenpakets, ansonsten wird sie verworfen. Beim Senden eines Datenpakets, z.B.  vom Client in Richtung Server, wird zunächst die Ziel-IP Adresse (Interface IP-Adresse des Servers) mit dem AllowedIP des Peers verglichen. Danach erfolgt die Verschlüsselung mit dessen öffentlichem Schlüssel und das Versenden an die entsprechende Endpoint-Adresse (Adresse und UDP-Port, über die der Server außerhalb des Tunnels erreichbar ist).

Der initiale Verbindungsaufbau erfolgt mittels Handshake, welches vom Client zum Server initiiert wird. Innerhalb dieses Vorgangs werden kryptographische Parameter zum Zweck der Erzeugung eines symmetrischen Schlüssels ausgetauscht, der anschließend für den Datenaustausch verwendet wird. Aus Sicherheitsgründen läuft der erzeugte symmetrische Schlüssel nach einer vorgegebenen Zeitspanne aus und wird durch Client und Server neu ausgehandelt.

Funktionstest und Performance-Vergleich WireGuard vs. IPsec IKEv1

Die Entwickler von WireGuard bescheinigen ihrer Lösung einen Performance-Vorteil gegenüber den etablierten VPN-Protokollen, wie OpenVPN und IPsec (siehe Abbildung). Ergänzend zu dieser Gegenüberstellung ist zu erwähnen, dass der IPsec-Tunnel auf einer IKEv2-Implementierung basierte, die ihrerseits im Vergleich zu IKEv1 über eine höhere Geschwindigkeit verfügt [1].

Abbildung 4 – Vergleich des Datendurchsatzes unterschiedlicher VPN-Lösungen [2], Quelle: WireGuard.com

Wie aus der obigen Abbildung ersichtlich, sticht die Überlegenheit des Datendurchsatzes von WireGuard vor allem gegenüber OpenVPN ins Auge. Dies ist insbesondere auf seine feste Integration im Linux-Kernel und der schnellen Verschlüsselungsalgorithmen zurückzuführen.

Um diese Gegenüberstellung in der Praxis nachzustellen habe ich einen iperf-Server und einen iperf-Client nacheinander mit einem IPsec IKEv1 und einem WireGuard Tunnel angebunden. Der iperf-Client lief auf einem virtualisierten Kali-Linux (Release 2022.4) in der WSL2-Umgebung auf meinem Windows 11 Notebook und war über eine symmetrische 250Mbit/s Glasfaser-Leitung an das Internet angeschlossen. Als Gegenstelle stand ein Raspberry 4 an einem asymmetrischen VDSL-Anschluss mit 50Mbit/s bereit, auf dem das Netzwerktool iperf3 im Server-Modus betrieben wurde. Natürlich ist solch ein stark vereinfachtes Testsetup für belastbare Performance-Messungen nicht geeignet, sondern gibt lediglich ein erstes Indiz für die Performanceunterschiede.

Abbildung 5: Funktionstest mit Geschwindigkeitsmessung an der FRITZ!Box – WireGuard vs. IPsec IKEv1

Die obige Abbildung gibt das Ergebnis der Durchsatzmessung meines Funktionstests in einem WireGuard- und einem IKEv1-Tunnel wieder. Wie erwartet, stellt die geringe Bitrate am VDSL-Anschluss (vor allem im Uplink) einen begrenzenden Faktor dar und kann daher leider nicht den großen Geschwindigkeitsvorteil der neuen Tunneltechnologie adäquat wiedergeben. Dennoch bestätigt der Funktionstest meine Erwartungen: Die Konfiguration von WireGuard ist sehr einfach und man erzielt einen höheren Datendurchsatz als mit dem IPsec IKEv1 Tunnel.

Fazit

Durch den Wechsel von Windows 10 auf Windows 11 wurde ich gezwungen, eine Alternative zum vom neuen Betriebssystem nicht unterstützten VPN-Client zu suchen, um mich weiterhin aus der Ferne mit dem heimischen Netzwerk verbinden zu können. AVM bietet mit einer WireGuard-Implementierung eine moderne, schnelle und sichere VPN-Technologie für seine neueren FRITZ!Box-Modelle.

In der Praxis erweist sich WireGuard als eine einfach zu konfigurierende Tunnel-Lösung mit hohem Datendurchsatz. Durch den frei wählbaren UDP-Port lässt sich sogar hinter einer Firewall ein VPN-Tunnel aufbauen. Dies macht es besonders für User interessant, die beispielsweise aus dem Firmennetzwerk heraus eine VPN-Verbindung aufbauen möchten.

Aufgrund der oben genannten Vorzüge hat die Verbreitung von WireGuard stark zugenommen. Neben der Verfügbarkeit in unterschiedlichen Betriebssystemen haben einige kommerzielle VPN-Anbieter WireGuard in ihre Dienste integriert, um ihren Kunden eine schnellere und sicherere VPN-Verbindung anzubieten. Hierzu zählen große Technologieunternehmen wie Microsoft, die es in ihr Azure Cloud-Angebot aufgenommen haben. Amazon unterstützt in seinem AWS Client VPN ebenfalls das WireGuard-Protokoll, um eine sichere Verbindung zur AWS-VPC (Virtual Private Cloud) herzustellen.

Mit NordVPN unterstützt auch der größte VPN-Anbieter das WireGuard-Protokoll. Auch weitere renommierte VPN-Diensteanbietern, wie z.B. Mullvad, Private Internet Access (PIA) und ProtonVPN haben WireGuard in ihr Produktportfolio aufgenommen.

Bei den Router-Herstellern beschränkt sich die Unterstützung des WireGuard Protokolls aktuell auf Produkte für Consumer. Neben AVM zählen Asus und Ubiquiti Networks zu den bekannten Router-Hersteller, die WireGuard unterstützen.

Die Integration von WireGuard bei NAS-Lösungen gestaltet sich je nach Hersteller unterschiedlich. Während QNAP und Asustor das VPN-Protokoll als nativen Dienst in ihren Betriebssystemen aufgenommen haben, kann man bei Synology nur mit Dockerfähigen NAS-Modellen eine WireGuard-Verbindung aufbauen.

Es ist davon auszugehen, dass die Verbreitung von WireGuard weiter zunimmt, da es als eine vielversprechende Alternative zu den bestehenden VPN-Technologien angesehen wird. Seine einfache Implementierung und seine Vorteile in Bezug auf Geschwindigkeit und Sicherheit machen es zu einer attraktiven Option für Nutzer, die ihre Online-Kommunikation schützen möchten.

Referenzen