Première version stable d'Arti, l'implémentation officielle de Tor dans Rust

Les développeurs du réseau anonyme Tor ont créé la première version stable (1.0.0) du projet Arti, qui développe un client Tor écrit en Rust. La version 1.0 est marquée comme étant adaptée à une utilisation par les utilisateurs généraux et offre le même niveau de confidentialité, de convivialité et de stabilité que l'implémentation principale du C. L'API proposée pour utiliser la fonctionnalité Arti dans d'autres applications a également été stabilisée. Le code est distribué sous les licences Apache 2.0 et MIT.

Contrairement à l'implémentation C, qui a d'abord été conçue comme un proxy SOCKS puis adaptée à d'autres besoins, Arti est initialement développé sous la forme d'une bibliothèque modulaire intégrable pouvant être utilisée par diverses applications. De plus, lors du développement d'un nouveau projet, toute l'expérience passée en matière de développement de Tor est prise en compte, ce qui évite les problèmes architecturaux connus et rend le projet plus modulaire et efficace.

La raison de la réécriture de Tor en Rust était le désir d'atteindre un niveau plus élevé de sécurité du code en utilisant un langage sécurisé en mémoire. Selon les développeurs de Tor, au moins la moitié de toutes les vulnérabilités surveillées par le projet seront éliminées dans une implémentation de Rust si le code n'utilise pas de blocs « dangereux ». Rust permettra également d'atteindre des vitesses de développement plus rapides que l'utilisation du C, grâce à l'expressivité du langage et aux garanties strictes qui permettent d'éviter de perdre du temps en double vérification et en écriture de code inutile.

Sur la base des résultats du développement de la première version, l'utilisation du langage Rust s'est justifiée. Par exemple, il a été remarqué qu'à chaque étape, moins d'erreurs étaient commises dans le code Rust que dans un développement comparable en C - les erreurs apparues au cours du processus de développement étaient principalement liées à la logique et à la sémantique. Le compilateur rustc trop exigeant, considéré par certains comme un inconvénient, s'est en fait avéré être une bénédiction, car si le code est compilé et réussit les tests, la probabilité de son exactitude augmente considérablement.

Travailler sur la nouvelle variante a également confirmé une augmentation de la vitesse de développement, due non seulement au fait que la fonctionnalité a été recréée sur la base d'un modèle existant, mais également à la sémantique plus expressive de Rust, aux bibliothèques de fonctions pratiques et à l'utilisation du code de sécurité de Rust. capacités. L'un des inconvénients est la grande taille des assemblages résultants - puisque la bibliothèque Rust standard n'est pas fournie par défaut sur les systèmes, elle doit être incluse dans les packages proposés en téléchargement.

La version 1.0 se concentre principalement sur le travail de base dans le rôle client. Dans la version 1.1, il est prévu d'implémenter la prise en charge du transport de plug-ins et des ponts pour contourner le blocage. La version 1.2 devrait prendre en charge les services onion et les fonctionnalités associées, telles que le protocole de contrôle de congestion (RTT Congestion Control) et la protection contre les attaques DDoS. L'atteinte de la parité avec le client C est prévue pour la branche 2.0, qui proposera également des liaisons pour utiliser Arti dans le code dans divers langages de programmation.

Au cours des prochaines années, les travaux se concentreront sur la mise en œuvre des fonctionnalités nécessaires au fonctionnement des relais et des serveurs d'annuaire. Lorsque le code Rust atteint un niveau pouvant remplacer complètement la version C, les développeurs ont l'intention de donner à Arti le statut d'implémentation principale de Tor et d'arrêter de maintenir l'implémentation C. La version C sera progressivement supprimée pour permettre une migration en douceur.

Source: opennet.ru

Ajouter un commentaire