VPN WireGuard ist in OpenBSD integriert

Jason A. Donenfeld, Autor von VPN WireGuard, объявил о Annahme in den Kern-OpenBSD-Kernel-Treiber „wg“ für das WireGuard-Protokoll, Implementierung spezifische Netzwerkschnittstelle und Änderungen Toolkit, das im Benutzerbereich ausgeführt wird. OpenBSD wurde danach das zweite Betriebssystem Linux mit vollständiger und integrierter Unterstützung für WireGuard. WireGuard wird voraussichtlich in der OpenBSD 6.8-Version enthalten sein.

Die Patches umfassen einen Treiber für den OpenBSD-Kernel, Änderungen an den Dienstprogrammen ifconfig und tcpdump zur Unterstützung der WireGuard-Funktionalität, Dokumentation und kleinere Änderungen zur Integration von WireGuard in den Rest des Systems. Der Treiber verwendet eine eigene Implementierung von Algorithmen Blake2s, hchacha20 и Kurve25519, sowie die Implementierung von SipHash, die bereits im OpenBSD-Kernel vorhanden ist.

Die Implementierung ist mit allen offiziellen WireGuard-Clients für Linux, Windows, macOS, *BSD, iOS und Android kompatibel. Leistungstests auf dem Laptop des Entwicklers (Lenovo x230) ergaben einen Durchsatz von 750 Mbit/s. Zum Vergleich: isakmpd bietet mit den Grundeinstellungen wie psk einen Durchsatz von 380 Mbit/s.

Bei der Entwicklung des Treibers für den OpenBSD-Kernel wurden einige architektonische Entscheidungen ähnlich wie beim Treiber für Linux getroffen, der Treiber wurde jedoch in erster Linie für OpenBSD entwickelt, wobei die Besonderheiten dieses Systems berücksichtigt und die bei der Erstellung des Treibers gesammelten Erfahrungen berücksichtigt wurden Linux. Mit Zustimmung des ursprünglichen Autors von WireGuard wird der gesamte Code für den neuen Treiber unter der kostenlosen ISC-Lizenz verteilt.

Der Treiber integriert sich eng in den OpenBSD-Netzwerkstapel und nutzt vorhandene Subsysteme, um den Code sehr kompakt zu halten (ca. 3000 Codezeilen). Zu den Unterschieden gehört auch eine andere Trennung der Treiberkomponenten als bei Linux: OpenBSD-spezifische Schnittstellen werden in die „if_wg.*“-Dateien verschoben, der Code für den DoS-Schutz befindet sich in „wg_cookie.*“ und die Verbindungsaushandlung und Die Verschlüsselungslogik befindet sich in „wg_noise.*“.

Source: opennet.ru

Kommentar hinzufügen