A empresa Mullvad apresentou o GotaTun, uma implementação do VPN WireGuard na linguagem Rust

O provedor de VPN Mullvad, que desenvolve o navegador web Mullvad Browser e fornece infraestrutura para o serviço Mozilla VPN, apresentou o projeto GotaTun, com a implementação do protocolo VPN WireGuard, escrita na linguagem Rust e funcionando no espaço do usuário. O código do projeto é distribuído sob a licença BSD. A empresa Mullvad já integrou o GotaTun no cliente VPN para a plataforma Android e no próximo ano planeja migrar os aplicativos para desktops e iOS.

O GotaTun é um fork da ferramenta BoringTun, desenvolvida pela Cloudflare e utilizada no aplicativo WARP. O GotaTun se destaca do BoringTun por oferecer suporte completo à plataforma Android, otimizações de desempenho e recursos adicionais para proteção da privacidade.

O GotaTun integra suporte à tecnologia DAITA (Defense Against AI-guided Traffic Analysis) para proteção contra a análise de tráfego criptografado realizada utilizando ferramentas baseadas em sistemas de aprendizado de máquina. A DAITA normaliza o tamanho dos pacotes enviados, mistura um tráfego de fundo aleatório e distorce padrões típicos de fluxos de dados. O GotaTun também implementou um modo Multihop, permitindo acessar VPN-servidores não diretamente, mas através de uma série de nós de trânsito, o que, por exemplo, possibilita organizar a passagem do tráfego por rotas mais otimizadas.

Para aumentar a performance, o GotaTun implementou processamento multithread e adotou uma estratégia de gerenciamento de memória em modo zero-copy, sem buffer intermediário, utilizando apenas o buffer fornecido originalmente.

Anteriormente, nos aplicativos da Mullvad, utilizava-se um fork da implementação do WireGuard na linguagem Go — wireguard-go, ampliado com suporte a DAITA e Multihop. Segundo estatísticas do Google, 85% de todos os relatórios de falhas enviados pelos usuários do cliente Android da Mullvad estavam relacionados ao código do wireguard-go, por isso a empresa Mullvad decidiu substituir a implementação do WireGuard por uma alternativa mais confiável.

A implementação na linguagem Rust foi escolhida porque o aplicativo Mullvad VPN é escrito em Rust, exceto pelo código wireguard-go, cuja interação foi organizada por meio de uma interface FFI (interface de função externa) complicada e que utiliza blocos unsafe. Na versão do cliente Android do Mullvad, lançada no final de novembro, a implementação do wireguard-go foi substituída pelo GotaTun, resolvendo problemas de confiabilidade — em comparação com versões anteriores, a métrica que reflete o número de falhas mudou de 0,40% para 0,01%.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster