TOR | |
Développeurs | Roger Dingledine Nick Matthewson |
---|---|
Dernière version | 0.2.1.26 [+/-] |
Version avancée | 0.2.2.15-alpha [+/-] |
Environnements | Multiplate-forme |
Licence | Licence BSD |
Site Web | www.torproject.org |
modifier |
The Onion Router (Tor) (littéralement : le routage en oignon) est un réseau mondial décentralisé de routeurs, organisés en couches, appelés nœuds de l’oignon, dont la tâche est de transmettre de manière anonyme des paquets TCP. C’est ainsi que tout échange Internet basé sur TCP peut être rendu anonyme en utilisant Tor. C'est un logiciel libre distribué sous licence BSD révisée.
Le routage en oignon fut conçu à partir de l’appréciation des carences des systèmes pré-existants (notamment les serveurs mandataires) qui ne suffisent pas à garantir l’anonymat d’un individu.
Tor est la seconde génération de système de routage en oignon (la première génération contenait beaucoup de défauts et n’a donc jamais eu de vrai succès).
Le routage en oignon utilise diverses techniques pour faire rebondir un échange TCP au sein d’Internet afin que des analyses de trafic sur une partie du réseau (notamment par attaque de l'homme du milieu) ne puissent pas identifier un utilisateur. Dans la suite de l’article, on suppose vouloir échanger un paquet entre un client et un serveur (voir Client-serveur).
Ayant accès à la liste des nœuds de Tor, chaque client doit y choisir un chemin aléatoire (il pourra en changer au bout d’un certain intervalle de temps), puis construit un « circuit » au sein duquel chaque nœud a la propriété de connaître son prédécesseur et son successeur, sans en savoir plus.
Le premier nœud du circuit connaîtra votre adresse IP. Mais dès le deuxième nœud, la négociation se fera par l’intermédiaire du circuit partiel déjà construit, de sorte que le deuxième nœud, par exemple, ne connaîtra finalement que l’adresse IP du premier nœud (et du troisième lorsqu’un troisième nœud aura été ajouté).
Les paquets à acheminer sont associés à une identification du propriétaire du circuit (la personne qui l’a construit). Mais cette identification est un code arbitraire qui a été choisi au moment de la construction du circuit. L’identification réelle du propriétaire est inaccessible.
Cette construction fait appel au concept de cryptographie hybride. Chaque nœud d’oignon possède une clef publique, mais la cryptographie à clef secrète est bien plus rapide que celle à clef publique. L’idée est donc de distribuer à chaque nœud du circuit une clef secrète chiffrée avec leur clef publique.
Après la phase de construction, chaque nœud du circuit a une clef secrète qui lui est propre et ne connaît que son prédécesseur et son successeur au sein du circuit.
Pour acheminer un paquet au serveur, le client doit chiffrer son paquet de nombreuses fois :
À ce stade, toutes les couches de l’oignon enferment le paquet TCP. Voyons comment « est pelé l’oignon » : lorsque le client envoie ce paquet au circuit qu’il a construit :
En pratique, un client du réseau Tor peut configurer son navigateur web pour utiliser un serveur mandataire personnel qui donne accès à Tor (comme Privoxy). Voici le déroulement d’une visite de Wikipédia par ce client :
La même chose se passe en sens inverse. L’échange est ainsi anonyme, mais est cependant très ralenti.
Tor propose un ensemble de services cachés à ses utilisateurs, qui ont pour but de publier des sites web ou de proposer d’autres services sur internet en cachant l’identité du serveur qui les héberge. Ils permettent ainsi de cacher l’adresse IP, donc les coordonnées géographiques, de serveurs utilisant ce service caché.
Pour la mise en place de sites web cachés, le serveur doit d’abord être configuré localement par son créateur, puis Tor va « pointer » sur ce serveur pour que des personnes extérieures puissent y accéder. Dans ce cas, le serveur recevra de Tor une adresse en .onion, et il ne pourra être accessible que par l’intermédiaire de Tor. L’accès d’utilisateurs à un service web protégé par les services cachés se fait selon un protocole défini par Tor. Ce protocole gère notamment la notion de « rendez-vous » entre l’utilisateur et le site web, ce rendez-vous ayant lieu sur un des nœuds du réseau Tor.
La principale critique faite aux services cachés est le temps qu’il faut pour charger les pages de sites utilisant les services cachés. La longueur de la connexion peut ainsi excéder plusieurs minutes. Il est donc actuellement impossible d’utiliser les services cachés de Tor afin de créer des pages web très interactives ou encore de mettre en place des messageries instantanées. De plus, l’enregistrement d’un serveur sur le réseau Tor prend lui aussi beaucoup de temps ; il faut : définir le point d’introduction au serveur, les clés publiques et privées et construire les relais pour pointer sur le site.
C’est pour améliorer ces défauts que Tor a lancé le NLnet Project qui vise à repenser la structure des services cachés et à rendre leur utilisation plus rapide. Ce projet est programmé pour aboutir en mai 2009.