Le projet Tor a présenté une implémentation dans le langage Rust, qui remplacera à l'avenir la version C

Les développeurs du réseau Tor anonyme ont présenté le projet Arti, dans le cadre duquel des travaux sont en cours pour créer une implémentation du protocole Tor dans le langage Rust. 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. Les travaux sont en cours depuis plus d'un an grâce au financement du programme de subventions Zcash Open Major Grants (ZOMG). Le code est distribué sous les licences Apache 2.0 et MIT.

Les raisons de la réécriture de Tor dans Rust sont le désir d'atteindre un niveau plus élevé de sécurité du code en utilisant un langage qui garantit un fonctionnement sûr avec la 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. 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 évitera les problèmes architecturaux connus et rendra le projet plus modulaire et efficace.

Dans son état actuel, Arti peut déjà se connecter au réseau Tor, communiquer avec les serveurs d'annuaire et créer des connexions anonymisées sur Tor avec un proxy basé sur SOCKS. L'utilisation de ce développement n'est pas encore recommandée dans les systèmes de production, car toutes les fonctionnalités de confidentialité ne sont pas implémentées et la compatibilité ascendante au niveau de l'API n'est pas garantie. La première version conforme à la sécurité du client, prenant en charge les nœuds de garde et l'isolation des threads, devrait être publiée en octobre.

La première version bêta est attendue en mars 2022 avec une implémentation expérimentale de la bibliothèque embarquée et des optimisations de performances. La première version stable, avec une API, une CLI et un format de configuration stables, ainsi qu'un audit, est prévue pour la mi-septembre 2022. Cette version conviendra à une utilisation initiale par les utilisateurs généraux. La mise à jour 2022 est attendue fin octobre 1.1 avec la prise en charge du transport des plug-ins et des ponts pour contourner le blocage. La prise en charge des services onion est prévue pour la version 1.2, et l'atteinte de la parité avec le client C est attendue dans la version 2.0, dont le timing n'a pas encore été déterminé.

À l'avenir, les développeurs prévoient une diminution progressive de l'activité liée au développement du code C, et une augmentation du temps consacré à l'édition dans Rust. Lorsque l'implémentation de Rust atteint un niveau capable de remplacer la version C, les développeurs cesseront d'ajouter de nouvelles fonctionnalités à l'implémentation C et, après un certain temps, cesseront de la prendre complètement en charge. Mais cela n'arrivera pas de sitôt, et jusqu'à ce que l'implémentation dans Rust atteigne le niveau d'un remplacement complet, le développement du client Tor et du relais en C se poursuivra.

Source: opennet.ru

Ajouter un commentaire