VPN-udbyderen Mullvad, der udvikler webbrowseren Mullvad Browser og leverer infrastrukturen til Mozilla VPN-tjenesten, har præsenteret projektet GotaTun med implementering af VPN-protokollen WireGuard, skrevet i Rust og kørende i brugerens rum. Koden til projektet distribueres under BSD-licensen. Mullvad har allerede integreret GotaTun i VPN-klienten til Android-platformen og planlægger næste år at overføre den til desktop- og iOS-apps.
GotaTun er en fork af værktøjsættet BoringTun, udviklet af Cloudflare og anvendt i WARP-appen. GotaTun adskiller sig fra BoringTun ved at have fuld støtte til Android-platformen, præstationsoptimeringer og ekstra muligheder for at beskytte privatlivets fred.
GotaTun har integreret støtte til teknologien DAITA (Defense Against AI-guided Traffic Analysis) for at beskytte mod analyse af krypteret transit-trafik, der udføres med værktøjer baseret på maskinlæringssystemer. DAITA normaliserer størrelsen af de sendte pakker, blander tilfældig baggrundstrafik og forvrænger mønstre af typiske datastreams. GotaTun har også implementeret Multihop-tilstanden, der giver mulighed for at adressere VPN-servere ikke direkte, men gennem en række transitnoder, hvilket for eksempel gør det muligt at organisere trafik gennem mere optimale ruter.
For at forbedre ydeevnen har GotaTun implementeret multitrådet behandling og anvendt en strategi for hukommelsesarbejde i zero-copy-tilstand, uden midlertidig buffereing, kun ved at bruge den oprindeligt tildelte buffer.
Tidligere brugte Mullvads applikationer en fork af WireGuard-implementeringen skrevet i Go — wireguard-go, udvidet med støtte til DAITA og Multihop. Ifølge statistikker fra Google var 85% af alle indsendte fejlrapporter fra Mullvads Android-klient relateret til koden fra wireguard-go, hvorfor Mullvad besluttede at erstatte WireGuard-implementeringen med en mere pålidelig version.
Implementeringen i Rust-sproget blev valgt, da Mullvad VPN-appen er skrevet i Rust, undtagen koden fra wireguard-go, som blev integreret via et komplekst og unsafe FFI (foreign function interface). I den nyeste udgave af Mullvad Android-klienten, der blev offentliggjort i slutningen af november, blev implementeringen af wireguard-go erstattet med GotaTun, hvilket løste pålidelighedsproblemerne — sammenlignet med tidligere versioner, ændrede metrikken, der afspejlede antallet af nedbrud, sig fra 0,40% til 0,01%.
Kilde: opennet.ru
