Das Unternehmen Mullvad hat GotaTun vorgestellt, eine Implementierung des VPN WireGuard in der Programmiersprache Rust.

Der VPN-Anbieter Mullvad, der den Webbrowser Mullvad Browser entwickelt und Infrastruktur für den Dienst Mozilla VPN bereitstellt, hat das Projekt GotaTun mit einer Implementierung des VPN-Protokolls WireGuard vorgestellt, das in der Programmiersprache Rust geschrieben ist und im Benutzermodus läuft. Der Code des Projekts wird unter der BSD-Lizenz veröffentlicht. Das Unternehmen Mullvad hat GotaTun bereits im VPN-Client für die Android-Plattform verwendet und plant, im nächsten Jahr die Anwendungen für Desktops und iOS darauf umzustellen.

GotaTun ist ein Fork des Tools BoringTun, das von Cloudflare entwickelt wird und in der Anwendung WARP verwendet wird. GotaTun unterscheidet sich von BoringTun durch die umfassende Unterstützung der Android-Plattform, Leistungsoptimierungen und zusätzliche Möglichkeiten zum Schutz der Privatsphäre.

In GotaTun ist Unterstützung für die Technologie DAITA (Defense Against AI-guided Traffic Analysis) integriert, um vor der Analyse von verschlüsseltem Transitverkehr zu schützen, die mit Tools auf der Basis von maschinellem Lernen durchgeführt wird. DAITA normalisiert die Größe der gesendeten Pakete, mischt zufälligen Hintergrundverkehr bei und verzerrt die Muster typischer Datenströme. In GotaTun ist auch ein Multihop-Modus implementiert, der es ermöglicht, auf VPN-Server nicht direkt zuzugreifen, sondern über eine Serie von Transitknoten, was beispielsweise ermöglicht, den Verkehr über optimierte Routen zu leiten.

Zur Steigerung der Leistung nutzt GotaTun Multithreading und hat eine Strategie zur Speicherverwendung im Zero-Copy-Modus implementiert, ohne Zwischenpufferung und unter Verwendung nur des ursprünglich bereitgestellten Puffers.

Früher wurde in den Anwendungen des Unternehmens Mullvad ein Fork der WireGuard-Implementierung in Go — wireguard-go — verwendet, der um Unterstützung für DAITA und Multihop erweitert wurde. Laut Google stammen 85% aller von Nutzern gesendeten Absturzberichte des Android-Clients von Mullvad im Zusammenhang mit dem Code von wireguard-go, weshalb das Unternehmen Mullvad beschlossen hat, die WireGuard-Implementierung durch eine zuverlässigere Variante zu ersetzen.

Die Implementierung in der Programmiersprache Rust wurde gewählt, da die Anwendung Mullvad VPN in Rust geschrieben ist, ausgenommen der Code von wireguard-go, dessen Interaktion über eine komplexe und auf unsafe-Blöcken basierende FFI (foreign function interface) organisiert wurde. In der Ende November veröffentlichten Version des Android-Clients von Mullvad wurde die Implementierung von wireguard-go durch GotaTun ersetzt, was die Zuverlässigkeitsprobleme behob – im Vergleich zu früheren Versionen hat sich die Kennzahl, die die Zahl der Abstürze widerspiegelt, von 0,40 % auf 0,01 % geändert.

Quelle: opennet.ru

60GB SSD 8Gb DDR4