Les développeurs du réseau anonyme Tor ont publié la version du projet Arti 1.1.0, qui développe un client Tor écrit en Rust. La branche 1.x est considérée comme adaptée à une utilisation par des utilisateurs ordinaires et offre le même niveau de confidentialité, d'utilisabilité et de stabilité que l'implémentation principale en C.
Contrairement à l'implémentation en C, qui a d'abord été conçue comme un proxy SOCKS, puis adaptée à d'autres besoins, Arti se développe dès le départ sous la forme d'une bibliothèque modulaire intégrable que diverses applications pourront utiliser. De plus, le développement du nouveau projet prend en compte toute l'expérience antérieure de développement de Tor, ce qui permet d'éviter les problèmes d'architecture connus et de rendre le projet plus modulaire et efficace.
Comme raison de la réécriture de Tor en Rust, on évoque le désir d'atteindre un niveau de sécurité plus élevé grâce à l'utilisation d'un langage qui assure une gestion sécurisée de la mémoire. Selon les développeurs de Tor, au moins la moitié de toutes les vulnérabilités accessibles par le projet seront éliminées dans l'implémentation en Rust, à condition que le code n'utilise pas de blocs « unsafe ». Rust permettra également d'atteindre une vitesse de développement plus élevée qu'avec C, grâce à l'expressivité du langage et à ses garanties strictes, ce qui évite de perdre du temps avec des vérifications doubles et la rédaction de code superflu.
La version 1.1 introduit la prise en charge des ponts pour contourner les blocages et des transports intégrables. Parmi les transports testés avec Arti pour masquer le trafic et lutter contre les blocages, on note obfs4proxy et snowflake. Les exigences pour l'environnement de compilation ont été augmentées : pour compiler Arti, il faut maintenant au moins la branche Rust 1.60.
Dans la prochaine version (1.2), le support des services onion et des fonctionnalités associées, telles que le protocole de contrôle de congestion (RTT Congestion Control) et les moyens de protection contre les attaques DDoS, est prévu. L'atteinte de la parité avec le client en C est prévue dans la branche 2.0, qui proposera également des liaisons pour utiliser Arti dans le code de divers langages de programmation. Au cours des prochaines années, le travail sera axé sur la mise en œuvre des fonctionnalités nécessaires au fonctionnement des relais et serveurs des répertoires. Lorsque le code en Rust atteindra un niveau capable de remplacer complètement la version en C, les développeurs envisagent d'attribuer à Arti le statut de principale réalisation de Tor et de cesser le support de l'implémentation en C. Le support de la version en C sera progressivement arrêté tout en permettant une migration fluide.
Source : opennet.ru
