Le réseau Tor en passe d'être réécrit en Rust
lun, 12/07/2021 - 17:18
Tor (The Onion Router) est un réseau informatique superposé mondial et décentralisé, implémentation du principe de réseau mélangé. Il est composé de routeurs organisés en couches, appelés nœuds de l’oignon, qui transmettent de manière anonyme des fluxTCP. Le réseau Tor peut ainsi rendre anonymes tous les échanges internet basés sur le protocole de communication TCP. Tor est actuellement écrit en C, mais Tor est en passe d'être réécrit en Rust.
Zcash Open Major Grants (ZOMG) a en effet annoncé une subvention de 670 000 dollars au projet Tor, pour créer une implémentation Rust de Tor qui permettra aux développeurs Zcash d'intégrer Tor à des outils Zcash largement utilisés. Pour mémoire, Zcash Open Major Grants est un comité de subventions élu par la communauté qui finance des projets liés à la cryptomonnaie Zcash.
ZOMG pense que la confidentialité est un droit humain fondamental et de ce fait soutient le projet Tor dans le but d'améliorer la confidentialité de la couche réseau et la résistance à la censure aux utilisateurs de Zcash.
Ce projet s'appelle Arti, “A Rust Tor Implementation,”. Cette nouvelle implémentation doit être réalisée à partir de zéro, pour donner à Tor une base de code de nouvelle génération qui se concentrera sur la flexibilité d'intégration, la maintenance simple, le déploiement flexible et les performances.
Arti, une fois terminé, permettra aux nœuds clients des réseaux Zcashd et Zebrad d'inclure plus facilement la prise en charge Tor intégrée, facilitant ainsi des niveaux beaucoup plus élevés de confidentialité de la couche réseau pour les utilisateurs de Zcash, souligne ZOMG.
Pour ZOMG, Rust est un langage plus sûr que C. Arti a un fil de discussion sur le forum de Zcash. Nick Mathewson, un des co-fondateurs de Tor, y écrit : L'implémentation actuelle de Tor porte les signes de son âge. Tor est implémenté en C, en tant que proxy réseau autonome. (Cela avait du sens en 2002, lorsque les langages multi plates-formes hautes performances étaient moins courants sur le terrain.) Étant donné que Tor est un proxy autonome, il est difficile à intégrer pour les tiers : nous avons un « mode bibliothèque », mais le mode bibliothèque exécute simplement le proxy dans un ensemble distinct de threads. Et parce que Tor est écrit en C, il est difficile d'avoir la même confiance dans sa sécurité de mémoire qu'il serait possible avec un langage de sécurité de mémoire de niveau supérieur. De plus, parce que C est dangereux et sujet aux erreurs, notre développement nécessite plus de temps et d'énergie qu'il ne le devrait, ce qui nous ralentit lors de la fourniture d'améliorations à nos utilisateurs.