Avertissement : Cet article a été traduit de l’anglais par un LLM. La précision n’est pas garantie. Vous pouvez lire l’article original en anglais.
Dans l’article d’aujourd’hui, nous allons parler de Tor et de la manière dont il peut offrir aux gens une meilleure anonymité sur le web. À cette fin, nous verrons à quoi il sert, comment il fonctionne et ce que sont les services cachés. Enfin, nous parlerons des attaques connues contre ce service et de la bonne façon de l’utiliser. Cet article ne vise pas à donner tous les détails sur le fonctionnement du réseau et en particulier des attaques qui le ciblent, mais à en donner un bon aperçu.
Qu’est-ce que Tor#
Tor, qui signifie “The Onion Router” (le routeur en oignon), est un réseau décentralisé composé de multiples serveurs appelés nœuds. Son objectif est d’anonymiser les échanges TCP. Il pourrait être utilisé par quelqu’un souhaitant consulter des sites web censurés dans son pays ou pour accéder à une partie du deep web (d’autres services comme I2P permettent d’accéder à différentes parties du deep web). Cette partie du web peut être difficile à quantifier, mais certaines publications ont fait des estimations. En 2001, on estimait qu’il était 400 à 550 fois plus grand que le World Wide Web. Le deep web contient beaucoup de ressources, mais celles dont on entend le plus parler sont celles liées aux activités illégales comme le trafic de drogue, la maltraitance des enfants, etc. Même si vous n’êtes pas familier avec le sujet, vous avez probablement entendu parler de la célèbre place de marché Silk Road. Ce site web était hébergé sur un service caché ; nous en parlerons davantage plus tard.
Comment ça fonctionne ?#
Utilisation de base#
Dans une utilisation standard du WEB, si Alice souhaite accéder à un site web, elle communiquera et échangera directement avec celui-ci. Ce faisant, elle laissera des traces de sa visite en plusieurs endroits. D’abord, son FAI saura qu’elle a visité ce site web en particulier, puis le propriétaire du site web saura que l’IP a.b.c.d a chargé certaines pages (et d’autres informations, mais ce n’est pas le sujet ici).
Avec Tor, cela aurait pu être évité. Reprenons l’exemple d’Alice souhaitant se connecter au site web de Bob, mais cette fois, elle utilisera Tor. D’abord, Tor contactera un serveur qui connaît une liste des nœuds pour savoir à quel nœud elle se connectera (comme on peut le voir sur l’image suivante).

Ensuite, un chemin aléatoire d’Alice vers le site web sera généré. Le navigateur Tor d’Alice contactera le premier nœud qui contactera le deuxième nœud, lequel contactera le troisième nœud (aussi appelé nœud de sortie) qui communiquera avec le site web (comme illustré ci-dessous).

Comme les images le montrent, avec Tor, le trafic est chiffré entre Alice et les nœuds et entre les nœuds eux-mêmes. Le seul trafic non chiffré pourrait se situer entre le site web de Bob et le nœud de sortie. L’avantage, c’est que les nœuds n’ont aucune idée du chemin emprunté par les données. Ils connaissent uniquement les machines avec lesquelles ils communiquent directement, mais ils ne savent pas si ces machines sont des clients ou des nœuds. Enfin, le seul nœud capable de savoir quelles données transitent à travers le réseau est le nœud de sortie, mais il n’a aucune idée de à qui ces données appartiennent.
Avant d’être transmis, les paquets sont chiffrés avec la clé publique du nœud de sortie, puis avec la clé publique du nœud précédent, etc. (voir l’illustration ci-dessous). Ainsi, pour que le paquet soit utilisable par le nœud de sortie, il doit avoir été déchiffré par tous les nœuds précédents. Cela implique que seul le nœud de sortie peut lire les données et seulement si elles ont emprunté le chemin défini. Malheureusement, cela signifie aussi que le nœud de sortie peut intercepter le trafic ; nous en parlerons un peu plus tard.

Tor offre également une fonctionnalité permettant de contourner le blocage de Tor. En effet, si un pays, une organisation ou quiconque décide de bloquer le réseau, il devrait bloquer les nœuds. Ce serait facile puisque les adresses sont publiques. Cependant, ils ne peuvent pas bloquer Tor grâce aux relais pont (bridge relays). Ces ponts sont des nœuds basiques, mais ils ne figurent pas dans la liste des relais ni nulle part en général. Comme il n’est pas possible de les connaître automatiquement, il devient difficile de les bloquer.
Les services cachés#
Enfin, Tor permet d’utiliser ce qu’on appelle les services cachés. Un service caché est un service accessible uniquement via le réseau Tor. Son URL se termine par “.onion” et son objectif est de rendre la localisation du service invisible.
Disons que Bob souhaite héberger un service caché. Pour ce faire, il devra sélectionner des nœuds aléatoires sur le réseau. Ils seront appelés “points d’introduction”. Ensuite, il générera un chemin vers ceux-ci (comme dans la partie précédente). Une fois cela fait, un descripteur de service caché sera créé. Il contient la clé publique de Bob et les adresses des points d’introduction. Bob signera ce descripteur avec sa clé privée et téléversera le tout dans une base de données qui sera utilisée un peu comme un serveur DNS. Une adresse de 16 caractères se terminant par .onion sera alors générée à partir de sa clé publique.
Maintenant, disons qu’Alice décide de se connecter au service de Bob. D’abord, elle récupérera le descripteur du service caché depuis la base de données. Puis, elle se connectera via un chemin aléatoire à un nœud aléatoire du réseau. Ce sera le point de rencontre. À ce stade, un secret à usage unique lui sera remis et elle forgera un message d’introduction (chiffré avec la clé publique du service caché) contenant l’adresse du point de rencontre et le secret à usage unique. Ce message sera envoyé à un point d’introduction. Lorsque le service caché recevra le message, il se connectera au point de rencontre et enverra son secret à usage unique. Alice sera alors notifiée que tout est en ordre et Alice et le service de Bob pourront désormais communiquer via le point de rencontre.
Des informations plus détaillées et des schémas sont disponibles sur le site web de Tor.
Les attaques connues#
Tor est bien conçu. Cependant, ce n’est pas de la magie. Un certain nombre de choses peuvent poser problème sur le réseau, et il n’y a aucune garantie d’être absolument anonyme, même en l’utilisant.
Le premier problème, comme je l’ai mentionné précédemment, ce sont les nœuds de sortie. Puisqu’ils sont les seuls à pouvoir voir le trafic non chiffré, ils peuvent mettre en place une attaque de type Man in the Middle et, par exemple, intercepter les paquets en transit pour obtenir des identifiants de connexion ou modifier le code de la page retournée pour y inclure du code malveillant pouvant être utilisé pour infecter l’ordinateur du client et, par exemple, trouver sa véritable localisation.
Il existe aussi d’autres possibilités bien plus difficiles à mettre en œuvre. Elles reposent principalement sur l’analyse du trafic de multiples nœuds contrôlés par la même personne ou organisation. Plusieurs agences gouvernementales comme la NSA ou le GCHQ sont connues pour opérer des nœuds Tor. Si certaines conditions sont remplies, il est théoriquement possible d’associer le trafic du nœud de sortie aux utilisateurs. Une façon de procéder serait de contrôler les nœuds d’entrée et de sortie effectivement utilisés par quelqu’un. En analysant les données entrant dans le nœud d’entrée, il serait possible de connaître la taille des données attendues et quand elles sont censées atteindre le nœud de sortie. Ainsi, une adresse IP réelle peut être liée à ce que son propriétaire fait avec Tor. Certaines publications développent ces attaques ; en voici deux :A Practical Congestion Attack on Tor Using Long Paths, On the Effectiveness of Traffic Analysis Against Anonymity Networks Using Flow Records.
Bonnes pratiques#
À partir des parties précédentes de l’article, nous pouvons maintenant déduire un certain nombre de bonnes pratiques qui devraient nous permettre d’améliorer notre anonymat avec Tor (même s’il n’y a aucune garantie d’être 100 % anonyme).
- Gardez le navigateur Tor à jour. Les agences gouvernementales sont connues pour utiliser des failles de Firefox afin d’infecter les ordinateurs des utilisateurs.
- N’activez pas les plugins comme Flash. Par exemple, Flash est responsable d’une bonne proportion de toutes les attaques visant les utilisateurs du web.
- Séparez vos identités contextuelles. Si vous souhaitez rester anonyme en utilisant Tor, utiliser Facebook dessus 10 secondes plus tard n’est pas une bonne idée.
- Évitez d’utiliser des fichiers téléchargés via Tor. Ces fichiers peuvent contenir des ressources sur le web et vous pourriez y accéder avec votre véritable adresse IP. Ils pourraient également contenir des logiciels malveillants.
- Utiliser un VPN pourrait constituer une mesure de sécurité supplémentaire.
- Lancez Tor en utilisant une distribution orientée sécurité comme Tails.
- Évitez de vous connecter à des sites HTTP en utilisant Tor.
- N’UTILISEZ PAS Tor pour faire du pair-à-pair ou pour télécharger des choses illégalement. Il n’est pas conçu pour cela, ce n’est pas efficace et cela ne fera que ralentir les utilisateurs légitimes.
- Tor n’est pas magique. Ne faites pas de choses illégales dessus ; vous ne pouvez pas être sûr à 100 % d’être absolument en sécurité.