David Miller (), verantwortlich für die Netzwerksubsysteme des Linux-Kernels, in den net-next-Branch mit der Implementierung der VPN-Schnittstelle aus dem Projekt . Anfang nächsten Jahres werden die im net-next-Branch gesammelten Änderungen die Grundlage für die Veröffentlichung des Linux-Kernels 5.6 bilden.
Versuche, den WireGuard-Code in den Hauptkern zu bringen, wurden in den letzten Jahren unternommen, blieben jedoch aufgrund der Bindung an eigene Implementierungen kryptografischer Funktionen ohne Ergebnis, die zur Leistungssteigerung verwendet wurden. Diese Funktionen wurden zunächst für den Kernel als zusätzliche Low-Level-API Zinc entwickelt, die im Laufe der Zeit das eingebaute Crypto-API ersetzen könnte.
Nach Gesprächen auf der Kernel Recipes-Konferenz trafen die Entwickler von WireGuard im September und beschlossen, ihre Patches so zu ändern, dass sie das bereits im Kernel vorhandene Crypto-API nutzen, gegen das die Entwickler von WireGuard Bedenken hinsichtlich der Leistung und der allgemeinen Sicherheit äußerten. Es wurde beschlossen, die API Zinc weiterzuentwickeln, jedoch als separates Projekt.
Im November gingen die Kernel-Entwickler die in WireGuard bereitgestellten schnellen Implementierungen der Algorithmen ChaCha20 und Poly1305. In Anbetracht der bevorstehenden Einbindung von WireGuard in den Hauptkern plant der Gründer des Projekts
eine Umstrukturierung des Repositories. Um die Entwicklung zu vereinfachen, wird das monolithische Repository "WireGuard.git", das für ein isoliertes Bestehen ausgelegt war, durch drei separate Repositories ersetzt, die besser für die Organisation der Arbeit mit dem Code im Hauptkern geeignet sind: wireguard-linux.git
- wireguard-tools.git
- wireguard-linux-compat.git
- — Repository mit einer Modulausführung, die unabhängig vom Kern bereitgestellt wird und eine Schicht compat.h zur Gewährleistung der Kompatibilität mit älteren Kernen enthält. Die Hauptentwicklung wird im Repository wireguard-linux.git stattfinden, aber solange es die Möglichkeit und die Bedürfnisse der Benutzer gibt, wird auch eine separate Variante der Patches in funktionierendem Zustand unterstützt.
Wir erinnern daran, dass das VPN WireGuard auf modernen Verschlüsselungsmethoden basiert, sehr hohe Leistung bietet, einfach zu bedienen ist, keine Komplikationen aufweist und sich in einer Reihe von großen Implementierungen, die große Datenmengen verarbeiten, bewährt hat. Das Projekt entwickelt sich seit 2015, hat eine Überprüfung bestanden und der verwendeten Verschlüsselungsmethoden. Die Unterstützung von WireGuard ist bereits in NetworkManager und systemd integriert, und Patches für den Kernel sind Bestandteil der Basisdistributionen , Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, und .
Bei WireGuard wird das Konzept der Verschlüsselungsschlüssel-Routierung angewendet, das eine Bindung des privaten Schlüssels an jede Netzwerkschnittstelle und die Verwendung öffentlicher Schlüssel für die Verknüpfung vorsieht. Der Austausch öffentlicher Schlüssel zur Verbindung erfolgt analog zu SSH. Zur Aushandlung von Schlüsseln und Verbindungen ohne den Start eines separaten Daemons im Benutzerraum kommt der Noise_IK-Mechanismus aus , ähnlich wie die Pflege von authorized_keys in SSH. Die Datenübertragung erfolgt durch Kapselung in UDP-Pakete. Der Wechsel der IP-Adresse des VPN-Servers (Roaming) wird ohne Unterbrechung der Verbindung und mit automatischer Neukonfiguration des Clients unterstützt.
Für die Verschlüsselung der Stream-Cipher und der Nachrichtenintegritätsalgorithmus (MAC) , entwickelt von Daniel Bernstein (), Tanja Lange
(Tanja Lange) und Peter Schwabe (Peter Schwabe). ChaCha20 und Poly1305 werden als schnellere und sicherere Alternativen zu AES-256-CTR und HMAC positioniert, deren Softwareimplementierung eine konstante Ausführungszeit ohne den Einsatz spezieller hardwaremäßiger Unterstützung ermöglicht. Für die Erzeugung des gemeinsamen geheimen Schlüssels wird das Diffie-Hellman-Protokoll auf elliptischen Kurven in der Implementierung , ebenfalls von Daniel Bernstein vorgeschlagen. Zum Hashing wird der Algorithmus .
Bei Die Leistung von WireGuard zeigte eine um das 3,9-Fache höhere Bandbreite und eine um das 3,8-Fache höhere Reaktionsfähigkeit im Vergleich zu OpenVPN (256-Bit AES mit HMAC-SHA2-256). Im Vergleich zu IPsec (256-Bit ChaCha20+Poly1305 und AES-256-GCM-128) zeigt WireGuard eine leichte Leistungsüberlegenheit (13-18%) und geringere Latenzen (21-23%). Die Tests wurden unter Verwendung der vom Projekt entwickelten schnellen Implementierungen der Verschlüsselungsalgorithmen durchgeführt – ein Wechsel zum Standard-Crypto-API des Kernels könnte zu einer Verschlechterung der Werte führen.
Quelle: opennet.ru
