VPN WireGuard in den Kernel Linux 5.6 integriert

Heute hat Linus den net-next Branch mit VPN-Schnittstellen zu sich übertragen. WireGuard. Über dieses Ereignis haben mitgeteilt in der WireGuard-Mailingliste.

VPN WireGuard in den Kernel Linux 5.6 integriert

Momentan wird der Code für den neuen Linux-Kernel 5.6 gesammelt. WireGuard ist ein schneller VPN der nächsten Generation, der moderne Kryptographie implementiert. Er wurde ursprünglich als einfachere und benutzerfreundlichere Alternative zu bestehenden VPNs entwickelt. Der Autor ist der kanadische IT-Sicherheitsexperte Jason Donenfeld. Im August 2018 erhielt WireGuard Lob von Linus Torvalds. Etwa zu dieser Zeit begann die Arbeit an der Integration von VPN in den Linux-Kernel. Der Prozess hat sich ein wenig hingezogen.

„Ich sehe, dass Jason einen Pull-Request zur Integration von WireGuard in den Kernel erstellt hat - schrieb Linus am 2. August 2018. - Darf ich nur noch einmal meine Liebe zu diesem VPN bekunden und auf eine baldige Fusion hoffen? Vielleicht ist der Code nicht perfekt, aber ich habe ihn durchgesehen und im Vergleich zu den Grauen von OpenVPN und IPSec ist das ein echtes Kunstwerk.“

Trotz der Wünsche von Linus hat sich die Fusion über anderthalb Jahre hingezogen. Das Hauptproblem war die Bindung an eigene Implementierungen kryptografischer Funktionen, die zur Leistungssteigerung verwendet wurden. Nach längeren Verhandlungen wurde im September 2019 eine Kompromisslösung gefunden die Patches auf die bereits im Kernel vorhandenen Crypto API-Funktionen zu übertragen, zu denen die Entwickler von WireGuard Bedenken hinsichtlich der Leistung und allgemeinen Sicherheit hatten. Es wurde jedoch beschlossen, die nativen Krypto-Funktionen von WireGuard in die separaten, niedrigeren Zinc API auszugliedern und diese im Laufe der Zeit in den Kernel zu portieren. Im November hielten die Kernel-Entwickler ihr Versprechen und stimmten zu einen Teil des Codes von Zinc in den Kern zu übertragen. So wurden beispielsweise im Crypto API sind die in WireGuard vorbereiteten schnellen Implementierungen der Algorithmen ChaCha20 und Poly1305.

Schließlich hat am 9. Dezember 2019 David Miller (David S. Miller), der für das Netzwerk-Subsystem des Linux-Kernels verantwortlich ist, hat in die net-next-Bereich Patches die Implementierung des VPN-Interfaces aus dem WireGuard-Projekt integriert.

Und heute, am 29. Januar 2020, wurden die Änderungen an Linus zur Aufnahme in den Kernel geschickt.

VPN WireGuard in den Kernel Linux 5.6 integriert

Die angegebenen Vorteile von WireGuard gegenüber anderen VPN-Lösungen:

  • Einfach zu bedienen.
  • Verwendet moderne Krypto-Technologien: Noise-Protokoll-Framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF usw.
  • Kompakter, lesbarer Code, einfacher auf Schwachstellen zu untersuchen.
  • Hohe Performance.
  • Klar und durchdacht Spezifikation.

Die gesamte Hauptlogik von WireGuard umfasst weniger als 4000 Codezeilen, während OpenVPN und IPSec Hunderttausende von Zeilen benötigen.

In WireGuard wird das Konzept der Schlüssel-Routing verwendet, das mit jedem Netzwerkinterface einen privaten Schlüssel verknüpft und öffentliche Schlüssel für Verbindungen verwendet. Der Austausch öffentlicher Schlüssel zur Herstellung einer Verbindung erfolgt ähnlich wie bei SSH. Zur Aushandlung von Schlüsseln und zur Verbindung ohne Start eines separaten Daemons im Nutzerraum wird der Noise_IK-Mechanismus genutzt, Noise Protocol Framework, ähnlich wie die Verwaltung von authorized_keys in SSH. Daten werden durch Einkapselung in UDP-Pakete übertragen. Es wird unterstützt, die IP-Adresse des VPN-Servers (Roaming) ohne Unterbrechung der Verbindung zu ändern, mit automatischer Neukonfiguration des Clients, — Quartz berichtet, ist Madagaskar das einzige Land in Afrika, in dem die Downloadgeschwindigkeit für Inhalte über 10 Mbit/s liegt. Opennet.

Für die Verschlüsselung genutzt. der Stream-Verschlüsselungsalgorithmus ChaCha20 und der Nachrichten-Authentifizierungsalgorithmus (MAC) Poly1305, entwickelt von Daniel Bernstein (Daniel J. Bernstein), Tanja Lange und Peter Schwabe. ChaCha20 und Poly1305 gelten als schnellere und sicherere Alternativen zu AES-256-CTR und HMAC, deren softwarebasierte Implementierung eine konstante Ausführungszeit ohne spezielle Hardwareunterstützung ermöglicht. Zur Generierung des gemeinsamen geheimen Schlüssels wird das Diffie-Hellman-Verfahren auf elliptischen Kurven verwendet. Curve25519Für die Hash-Berechnung wird der Algorithmus BLAKE2s (RFC7693)».

Ergebnisse Leistungstests von der offiziellen Webseite:

Durchsatz (Mbit/s)
VPN WireGuard in den Kernel Linux 5.6 integriert

Ping (ms)
VPN WireGuard in den Kernel Linux 5.6 integriert

Testkonfiguration:

  • Intel Core i7-3820QM und Intel Core i7-5200U
  • Gigabit-Netzwerkkarten Intel 82579LM und Intel I218LM
  • Linux 4.6.1
  • WireGuard-Konfiguration: 256-Bit ChaCha20 mit Poly1305 für MAC
  • Erste IPsec-Konfiguration: 256-Bit ChaCha20 mit Poly1305 für MAC
  • Zweite IPsec-Konfiguration: AES-256-GCM-128 (mit AES-NI)
  • OpenVPN-Konfiguration: äquivalente Verschlüsselung von 256-Bit AES mit HMAC-SHA2-256, UDP-Modus
  • Die Leistung wurde gemessen mit iperf3, der durchschnittliche Wert über 30 Minuten ist dargestellt.

Theoretisch sollte WireGuard nach der Integration in den Netzwerk-Stack noch schneller arbeiten. In der Praxis könnte das jedoch nicht unbedingt der Fall sein, da auf die im Kernel integrierten kryptografischen Funktionen des Crypto API umgestellt wird. Möglicherweise sind noch nicht alle davon auf das Leistungsniveau von nativem WireGuard optimiert.

„Meiner Meinung nach ist WireGuard für den Benutzer einfach perfekt. Alle low-level Lösungen sind in der Spezifikation festgelegt, weshalb der Aufbau einer typischen VPN-Infrastruktur nur wenige Minuten dauert. Es ist nahezu unmöglich, bei der Konfiguration Fehler zu machen, — schrieben auf Habré im Jahr 2018. — Der Installationsprozess wird detailliert beschrieben auf der offiziellen Website, besonders hervorzuheben ist die hervorragende Unterstützung von OpenWRT. Diese Benutzerfreundlichkeit und die Kompaktheit des Codes wurden durch den Verzicht auf die Verteilung von Schlüsseln erreicht. Es gibt kein kompliziertes Zertifikatsystem oder diesen gesamten Unternehmensaufwand; die kurzen Verschlüsselungsschlüssel werden ungefähr wie SSH-Schlüssel verbreitet.“

Das WireGuard-Projekt entwickelt sich seit 2015 und hat ein Audit durchlaufen und formale Verifizierung durchlaufen.. Die WireGuard-Unterstützung ist in NetworkManager und systemd integriert, und die Patches für den Kernel sind Teil der Basisausstellung der Distributionen Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph und ALT.

Quelle: habr.com

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster