Der VPN-Anbieter Mullvad, der den Webbrowser Mullvad Browser entwickelt und Infrastruktur fĂŒr den Dienst Mozilla VPN bereitstellt, hat das Projekt GotaTun vorgestellt, das das VPN-Protokoll WireGuard implementiert. Es ist in der Programmiersprache Rust geschrieben und lĂ€uft im Benutzerspace. Der Code des Projekts wird unter der BSD-Lizenz veröffentlicht. Mullvad hat GotaTun bereits im VPN-Client fĂŒr die Android-Plattform eingesetzt und plant, im nĂ€chsten Jahr auch Desktop- und iOS-Anwendungen darauf umzustellen.
GotaTun ist ein Fork des Tools BoringTun, das von Cloudflare entwickelt wird und in der Anwendung WARP verwendet wird. GotaTun zeichnet sich durch umfassende UnterstĂŒtzung der Android-Plattform, Leistungsoptimierungen und zusĂ€tzliche Möglichkeiten zum Schutz der PrivatsphĂ€re aus.
GotaTun integriert die UnterstĂŒtzung der Technologie DAITA (Defense Against AI-guided Traffic Analysis) zum Schutz vor der Analyse von verschlĂŒsseltem Transittraffic, die mit Hilfe von maschinellen Lernsystemen durchgefĂŒhrt wird. DAITA normalisiert die GröĂe der gesendeten Pakete, mischt zufĂ€lligen Hintergrundtraffic bei und verzerrt die Muster typischer Datenströme. GotaTun implementiert zudem einen Multihop-Modus, der es ermöglicht, auf VPN-Server nicht direkt, sondern ĂŒber eine Reihe von Transitknoten zu leiten, was beispielsweise optimierte Routen fĂŒr den Datenverkehr ermöglicht.
Um die Leistung zu steigern, setzt GotaTun auf multithreading und verwendet eine Speicherstrategie im Zero-Copy-Modus, ohne Zwischenpufferung und nutzt lediglich den ursprĂŒnglich bereitgestellten Puffer.
FrĂŒher verwendeten die Anwendungen von Mullvad einen Fork der WireGuard-Implementierung in Go â wireguard-go, der um DAITA- und Multihop-UnterstĂŒtzung erweitert wurde. Statistiken von Google zeigen, dass 85 % aller von Nutzern gesendeten Absturzberichte des Android-Clients von Mullvad mit dem Code von wireguard-go in Verbindung standen, weshalb Mullvad entschloss, die Implementierung von WireGuard durch eine zuverlĂ€ssigere Variante zu ersetzen.
Die Implementierung in Rust wurde gewĂ€hlt, da die Anwendung Mullvad VPN in Rust geschrieben ist, mit Ausnahme des Codes wireguard-go, dessen Interaktion ĂŒber eine komplexe und unsichere FFI (Foreign Function Interface) organisiert wurde. In der Ende November veröffentlichten Version des Mullvad Android-Clients wurde die Implementierung von wireguard-go durch GotaTun ersetzt, was Probleme mit der ZuverlĂ€ssigkeit behoben hat â im Vergleich zu frĂŒheren Versionen hat sich die Kennzahl fĂŒr AbstĂŒrze von 0,40 % auf 0,01 % verbessert.
Quelle: opennet.ru
