La société Mullvad a présenté GotaTun, une implémentation du VPN WireGuard en Rust.

Le fournisseur de VPN Mullvad, qui développe le navigateur web Mullvad Browser et fournit l'infrastructure pour le service Mozilla VPN, a présenté le projet GotaTun, qui implémente le protocole VPN WireGuard, écrit en Rust et fonctionnant en espace utilisateur. Le code du projet est distribué sous licence BSD. La société Mullvad a déjà intégré GotaTun dans son client VPN pour Android et prévoit de migrer vers lui les applications de bureau et iOS l'année prochaine.

GotaTun est un fork de l'outil BoringTun, développé par Cloudflare et utilisé dans l'application WARP. GotaTun se distingue de BoringTun par un support complet de la plateforme Android, des optimisations de performance et des fonctionnalités supplémentaires pour la protection de la vie privée.

GotaTun intègre le support de la technologie DAITA (Defense Against AI-guided Traffic Analysis) pour protéger contre l'analyse du trafic transit chiffré, effectuée à l'aide d'outils basés sur des systèmes d'apprentissage automatique. DAITA normalise la taille des paquets envoyés, mélange un trafic de fond aléatoire et déforme les modèles de flux de données typiques. GotaTun met également en œuvre un mode Multihop, permettant d'accéder à VPN-des serveurs non pas directement, mais par le biais d'une série de nœuds de transit, ce qui permet, par exemple, d'organiser le passage du trafic par des itinéraires plus optimaux.

Pour améliorer les performances, GotaTun a mis en œuvre un traitement multithread et utilise une stratégie de gestion de la mémoire en mode zero-copy, sans buffer intermédiaire, utilisant uniquement le buffer initialement fourni.

Auparavant, les applications de la société Mullvad utilisaient un fork de l'implémentation de WireGuard en Go — wireguard-go, enrichi par le support de DAITA et Multihop. Selon les statistiques de Google, 85 % de tous les rapports d'accidents envoyés par les utilisateurs du client Android de Mullvad étaient liés au code wireguard-go, c'est pourquoi la société Mullvad a décidé de remplacer l'implémentation de WireGuard par une option plus fiable.

La réalisation en langage Rust a été choisie car l'application Mullvad VPN est écrite en Rust, à l'exception du code wireguard-go, dont l'interaction a été organisée via une interface FFI (foreign function interface) complexe et utilisant des blocs unsafe. Dans la version publiée fin novembre du client Android de Mullvad, l'implémentation de wireguard-go a été remplacée par GotaTun, ce qui a résolu les problèmes de fiabilité — par rapport aux versions précédentes, la métrique reflétant le nombre de plantages est passée de 0,40 % à 0,01 %.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster