iX 5/2019
S. 110
Wissen
Virtual Private Network

Kurz erklärt: VPN-Verbindungen mit WireGuard

Tunnelbau

Uwe Schulze

WireGuard verspricht sichere und schnelle VPN-Tunnel mit konsequent einfacher Handhabung.

VPN-Software soll vor allem eines sein: sicher. IPsec und OpenVPN haben dies millionenfach bewiesen. Weniger Lob ernten sie für Konfiguration (IPsec) und Performance (OpenVPN). Um den Beweis anzutreten, dass Sicherheit nicht kompliziert sein muss, hat Jason Donenfeld das WireGuard-Projekt für ein radikal kompaktes VPN-Programm ins Leben gerufen. Die Entwickler versinnbildlichen das mit nackten Zahlen: So besteht IPsec aus 419792 Zeilen Quellcode (einschließlich StrongSwan), OpenVPN aus 119363, WireGuard aber nur aus 3771 Zeilen (Stand: November 2018). Trotzdem soll es eine vergleichbare Sicherheit wie die seit vielen Jahren etablierten Protokolle bieten. Gespart wird vor allem an ausufernden Konfigurationsoptionen. Das dient letztlich auch der Sicherheit: 4000 Codezeilen lassen sich einfacher pflegen und verbessern – vor allem aber werden potenzielle Sicherheitslücken schneller erkannt und beseitigt.

All in one

Anders als das IPsec-Protokoll, das von unterschiedlichen VPN-Programmen genutzt wird (etwa Openswan für Linux), ist WireGuard Protokoll und Bediensoftware in einem. Klassische VPNs unterstützen zudem alternativ mehrere Algorithmen zum Schlüsselaustausch, zum Chiffrieren und zur Hash-Berechnung. Das bedeutet zum einen erhöhten Konfigurationsaufwand, zum anderen bei jedem Verbindungsaufbau eine beidseitige Vereinbarung über die benutzten Methoden. WireGuard kennt diesen Overhead nicht, weil nur jeweils ein Algorithmus je Aufgabe fest codiert ist. Konkret sind das die auch von TLS verwendeten ChaCha20 für die Verschlüsselung und Poly1305 für die Authentifizierung. Zum Schlüsselaustausch dient Curve25519.