Les dĂ©veloppeurs du rĂ©seau anonyme Tor ont prĂ©sentĂ© le projet Arti, dont l'objectif est de crĂ©er une implĂ©mentation du protocole Tor en Rust. Contrairement Ă l'implĂ©mentation en 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 diffĂ©rentes applications. Le travail est en cours depuis plus d'un an avec un financement dans le cadre du programme de subventions Zcash Open Major Grants (ZOMG). Le code est distribuĂ© sous les licences Apache 2.0 et MIT.
Parmi les raisons évoquées pour la réécriture de Tor en Rust, figure le désir d'atteindre un niveau plus élevé de sécurité du code grùce à l'utilisation d'un langage garantissant une gestion mémoire sécurisée. Selon les développeurs de Tor, au moins la moitié de toutes les vulnérabilités suivies par le projet sera éliminée dans l'implémentation en Rust, si 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 à des garanties strictes qui évitent le temps perdu sur des vérifications doubles et l'écriture de code superflu. En outre, le développement du nouveau projet tient compte de toute l'expérience accumulée lors du développement de Tor, ce qui permettra d'éviter des problÚmes architecturaux connus et de rendre le projet plus modulaire et efficace.
Dans son Ă©tat actuel, Arti peut dĂ©jĂ se connecter au rĂ©seau Tor, assurer l'interaction avec serveurs trĂšs chargĂ©s les rĂ©pertoires et Ă©tablir des connexions anonymisĂ©es au-dessus de Tor en fournissant un proxy basĂ© sur le protocole SOCKS. Son utilisation n'est pas encore recommandĂ©e dans les systĂšmes de production, car toutes les fonctionnalitĂ©s de protection de la vie privĂ©e ne sont pas mises en Ćuvre et la compatibilitĂ© inverse au niveau de l'API n'est pas garantie. La premiĂšre version du client, rĂ©pondant aux critĂšres de sĂ©curitĂ©, prenant en charge les nĆuds de garde et l'isolation des flux, est prĂ©vue pour octobre.
En mars 2022, la premiĂšre version bĂȘta avec une implĂ©mentation expĂ©rimentale de la bibliothĂšque intĂ©grĂ©e et des optimisations de performance est attendue. La premiĂšre version stable, avec une API, un CLI et un format de configuration stables, ainsi qu'un audit, est prĂ©vue pour la mi-septembre 2022. Cette version sera adaptĂ©e Ă une utilisation initiale par des utilisateurs ordinaires. Une mise Ă jour 1.1, ajoutant la prise en charge du transport plug-in et de ponts pour contourner les blocages, est prĂ©vue pour fin octobre 2022. La prise en charge des services onion est planifiĂ©e pour la version 1.2, tandis que l'atteinte d'une paritĂ© avec le client en langage C est attendue pour la version 2.0, dont les dĂ©lais ne sont pas encore dĂ©finis.
Ă l'avenir, les dĂ©veloppeurs prĂ©voient une diminution progressive de l'activitĂ© liĂ©e au dĂ©veloppement de code en C et une augmentation du temps consacrĂ© Ă l'Ă©dition en Rust. Lorsque l'implĂ©mentation en Rust atteindra un niveau capable de remplacer la version en C, les dĂ©veloppeurs cesseront d'ajouter de nouvelles fonctionnalitĂ©s Ă l'implĂ©mentation en C et, aprĂšs un certain temps, arrĂȘteront complĂštement son support. Cependant, cela n'arrivera pas de sitĂŽt, et tant que l'implĂ©mentation en Rust n'atteindra pas le niveau d'un remplacement complet, le dĂ©veloppement du client et des relais Tor en C se poursuivra.
Source : opennet.ru
