L'azienda Mullvad ha presentato GotaTun, un'implementazione di VPN WireGuard realizzata in Rust.

Il fornitore di VPN Mullvad, che sviluppa il browser web Mullvad Browser e fornisce l'infrastruttura per il servizio Mozilla VPN, ha presentato il progetto GotaTun, che implementa il protocollo VPN WireGuard, scritto in linguaggio Rust e funzionante nello spazio utente. Il codice del progetto è distribuito sotto licenza BSD. Mullvad ha già integrato GotaTun nel client VPN per la piattaforma Android e prevede di adattare le applicazioni per desktop e iOS il prossimo anno.

GotaTun è un fork dello strumento BoringTun, sviluppato da Cloudflare e utilizzato nell'applicazione WARP. GotaTun si distingue da BoringTun per il supporto completo della piattaforma Android, ottimizzazioni delle prestazioni e ulteriori funzionalità per la protezione della privacy.

In GotaTun è integrato il supporto per la tecnologia DAITA (Defense Against AI-guided Traffic Analysis) per proteggere da analisi del traffico transitario crittografato effettuate mediante strumenti basati su sistemi di apprendimento automatico. DAITA normalizza le dimensioni dei pacchetti inviati, mescola traffico di fondo casuale e distorce i modelli di flussi di dati tipici. GotaTun implementa anche la modalità Multihop, consentendo di accedere a VPN-i server non direttamente, ma attraverso una serie di nodi di transito, il che consente, ad esempio, di organizzare il traffico su percorsi più ottimali.

Per migliorare le prestazioni, GotaTun implementa l'elaborazione multithreading e adotta una strategia di gestione della memoria in modalità zero-copy, senza buffering intermedio, utilizzando solo il buffer originariamente fornito.

In passato, nelle applicazioni dell'azienda Mullvad si usava un fork dell'implementazione di WireGuard in Go — wireguard-go, ampliato con il supporto per DAITA e Multihop. Secondo le statistiche di Google, l'85% di tutti i rapporti di arresto anomalo inviati dagli utenti del client Android di Mullvad erano legati al codice di wireguard-go, quindi l'azienda ha deciso di sostituire l'implementazione di WireGuard con una versione più affidabile.

La scelta di sviluppare in Rust è stata motivata dal fatto che l'applicazione Mullvad VPN è scritta in Rust, ad eccezione del codice wireguard-go, il cui interazione è stata organizzata tramite un'interfaccia FFI (foreign function interface) complessa e che utilizza blocchi unsafe. Nella versione del client Android di Mullvad pubblicata alla fine di novembre, l'implementazione di wireguard-go è stata sostituita da GotaTun, risolvendo problemi di affidabilità: rispetto alle versioni precedenti, la metrica che riflette il numero di crash è passata dallo 0,40% allo 0,01%.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster