Ajouter un commentaire

Arti 1.0 : un client Tor écrit en langage Rust

Par:
fredericmazue

jeu, 08/09/2022 - 13:44

Un billet sur le blog du projet Tor nous apprend que celui-ci a entreprit de réécrire son implémentation du client au réseau Tor en langage Rust en 2020. Auparavant le client était écrit en langage C. Aujourd'hui le projet Tor considère que cette nouvelle implémentation est suffisamment mature pour être utilisée en production et annonce la disponibilité d'Arti 1.0.

Pourquoi réécrire Tor en Rust ? Car malgré (ou à cause de) sa maturité, l'implémentation de Tor en C accuse son âge. Alors que C était un choix raisonnable lorsque nous avons commencé à travailler sur Tor 2001, nous avons toujours souffert de ses limites : il encourage une approche inutilement de bas niveau pour de nombreux problèmes de programmation, et son utilisation en toute sécurité nécessite des efforts et des soins minutieux. En raison de ces limitations, ce rythme de développement en C a toujours été plus lent que nous l'aurions souhaité.

De plus, notre implémentation C existante s'est développée au fil des ans pour avoir une conception pas si modulaire : presque tout est connecté à tout le reste, ce qui rend encore plus difficile l'analyse du code et la réalisation d'améliorations sûres, explique le projet.

Le projet souligne avoir eu une excellente expérience avec le langage Rust, et si ce langage a la réputation d'être un langage difficile avec un compilateur pointilleux, c'est en fait 'une grande aubaine'.

En supposant que vous avez installé Arti (avec cargo install arti, ou directement à partir d'un référentiel cloné), vous pouvez l'utiliser pour démarrer un proxy SOCKS simple pour établir des connexions via Tor avec :

$ arti proxy -p 9150

et utilisez-le plus ou moins comme vous utiliseriez l'implémentation C Tor.

Arti est un logiciel libre sous licence Apache et MIT, disponible sur GitLab

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 TTTTTT  M   M  X   X  III  N   N 
TT MM MM X X I NN N
TT M M M X I N N N
TT M M X X I N NN
TT M M X X III N N