Technische Grundlagen
WireGuards verbindungsloses Peer-to-Peer-Tunnel-Protokoll nutzt UDP, integriert die Verschlüsselung und arbeitet auf OSI-Layer 3. Die Verbindungslosigkeit optimiert es für Roaming-Szenarien, beispielsweise in Büros beim Wechsel von verkabelter zu drahtloser Verbindung und von Wi-Fi zu 4G/5G, sobald man das Gebäude verlässt. Vorhandene Tunnelverbindungen bleiben auch bei Verbindungsabbrüchen bestehen, was das Protokoll interessant für mobile Szenarien mit instabilen Links macht.
Zudem bietet es integrierten Schutz vor Denial-of-Service- (DoS) und Replay-Attacken. Dass WireGuard nicht auf unauthentifizierte Anfragen reagiert und damit für Portscans unsichtbar ist, erhöht die Sicherheit. Es verwendet moderne Verschlüsselungsverfahren ohne Fallbacks auf Legacy-Algorithmen oder unverschlüsselten Betrieb. Zum Peering benötigen Clients lediglich einen öffentlichen und einen privaten Schlüssel, Zertifikate entfallen.
Die WireGuard-Integration in den Linux-Kernel (im Jahr 2020 mit Kernelversion 5.6) bringt Performancevorteile gegenüber Protokollen im Userspace wie OpenVPN, die Overhead erzeugen. Zudem ist WireGuard mit nur etwa 4.000 Codezeilen im Kernel wesentlich leichtgewichtiger als OpenVPN und IPsec; Code für Kommandos wie wireguard-tools oder den CLI-Wrapper wg-quick kommt aber noch hinzu. Die kompakte Codegröße erleichtert Security-Reviews deutlich.
WireGuard startet eine Session mit einem Zwei-Wege-Handshake. Der Initiator – der Peer, der zuerst Daten senden will und die Ziel-IP des Endpunkts kennt – beginnt den Handshake. Der Responder antwortet und beide tauschen die symmetrischen Sitzungsschlüssel für jede Kommunikationsrichtung aus. Nach dem Verbindungsaufbau erneuert WireGuard die Schlüssel automatisch ungefähr alle zwei Minuten. Dabei bleiben alte Schlüssel gültig, um Pakete im Transit weiterhin zu entschlüsseln. Der Responder verwendet die alten Schlüssel, bis er ein Paket mit dem neuen Schlüssel vom Initiator erhält. So gehen keine Pakete verloren, selbst wenn während des Schlüsselwechsels Daten fließen.
WireGuard erhöht die Sicherheit mit mehreren Mechanismen: Cookie-Reply wirkt gegen Denial-of-Service-Angriffe; Timestamps im Handshake und Paketzähler in Nutzdatenpaketen sollen Replay-Attacken verhindern. Da WireGuard keinen Standardport verwendet, erkennt man es im Netzwerk nur heuristisch, was die Angreifbarkeit verringert. Das VPN reagiert zudem bei eingehendem Datenverkehr nur auf authentifizierte Pakete und wird dadurch für einfache Portscans unsichtbar. Der Timeout beim Error-Handling während Handshakes beträgt fünf Sekunden, und zur Aufrechterhaltung der Verbindung bei Inaktivität generiert der Initiator alle zehn Sekunden Keepalive-Nachrichten.