Tor (réseau)

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Tor.
Tor
Image illustrative de l'article Tor (réseau)
Logo

Développeur Projet Tor[1]
Première version 2002[2]
Dernière version 0.2.4.21 (le 1 mars 2014,
il y a 53 jours
[3]
)
[+/-]
Écrit en C
Environnement Multiplate-forme
Licence Licence libre : BSD
Site web Torproject.org

Tor (acronyme de The Onion Router, littéralement le routeur oignon ) est un réseau informatique superposé mondial et décentralisé, implémentation du principe de réseau mélangé ("mix network"). Il est composé de routeurs organisés en couches, appelés nœuds de l’oignon, qui transmettent de manière anonyme des flux TCP. Le réseau Tor peut ainsi rendre anonymes tous les échanges internet basés sur le protocole de communication TCP. Ce logiciel libre est distribué sous licence BSD révisée.

Le projet Tor a reçu le prix du logiciel libre 2010, dans la catégorie projet d’intérêt social[4].

Le routage en oignon dans Tor[modifier | modifier le code]

Le routage en oignon fut conçu pour pallier certaines carences des systèmes existants (notamment les serveurs mandataires) qui ne suffisent pas à garantir l’anonymat.

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). Il a donné naissance au projet Commotion[5].

Vue d'ensemble[modifier | modifier le code]

Le routage en oignon fait rebondir les échanges TCP au sein d’Internet afin de neutraliser les analyses de trafic sur une partie du réseau (notamment les analyses par attaque de l'homme du milieu). Les utilisateurs du réseau deviennent alors impossibles à identifier. Dans le paragraphe suivant on prendra l'exemple de l'échange d'un paquet entre un client et un serveur (voir Client-serveur).

Construction d'un circuit[modifier | modifier le code]

En « + » vert les ordinateurs Tor, en rouge le chemin en clair et en vert un chemin chiffré. Après un certain temps le circuit change aléatoirement.

La première étape consiste à la récupération d'une liste de nœuds Tor[6].

Ayant accès à une liste de nœuds de Tor, chaque client choisit automatiquement 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ît votre adresse IP. Mais dès le deuxième nœud, la négociation se fait 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 dispose d'une clef secrète qui lui est propre et ne connaît que son prédécesseur et son successeur au sein du circuit.

Échange de paquets[modifier | modifier le code]

Pour acheminer un paquet au serveur, le client doit chiffrer son paquet de nombreuses fois :

  • la première fois, le client chiffre son paquet TCP avec la clef publique correspondant au dernier nœud, numéroté n ;
  • la deuxième fois, avec celle de l’avant-dernier nœud, numérotée n-1 ;
  • la troisième fois, avec celle de n-2 ;
  • la quatrième fois, avec celle de n-3, etc. 
  • la dernière fois, avec celle du premier nœud, numéroté 1.

À ce stade, toutes les couches de l’oignon enferment le paquet TCP. Voyons comment l’oignon est pelé lorsque le client envoie ce paquet au circuit qu’il a construit :

  • le premier serveur du circuit déchiffre le paquet avec la clef 1 et l’envoie au deuxième serveur ;
  • le deuxième serveur déchiffre ce paquet avec la clef 2, etc. ;
  • le dernier serveur déchiffre ce paquet avec sa propre clef privée n et obtient le paquet original.

En pratique, un client du réseau Tor peut configurer son navigateur web pour utiliser un serveur mandataire personnel qui donne accès à Tor (par exemple Privoxy). Voici le déroulement d’une visite ce client au site web Wikipédia :

  • Son navigateur web envoie la requête HTTP à Privoxy ;
  • Privoxy retranche l’information non anonyme, passe l’information via SOCKS au client Tor. Le client construit un circuit (si ce n’est déjà fait), chiffre les données à envoyer, et les passe au premier nœud ;
  • Ce premier nœud déchiffre une partie de l’enveloppe et fait suivre les données jusqu’à atteindre le nœud de sortie ;
  • Ce nœud de sortie envoie la requête à Wikipédia.

La même chose se passe en sens inverse. L’échange est ainsi anonyme, mais est cependant très ralenti.

Services cachés[modifier | modifier le code]

Tor propose à ses utilisateurs un ensemble de services cachés, qui ont pour but de publier des sites internètiques 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 internètiques 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, 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 internètiques 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 supprimer 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[réf. nécessaire]. Ce projet est programmé pour aboutir en .

Un anonymat partiel[modifier | modifier le code]

Tor ne peut assurer la protection de paquets UDP, et n’en soutient donc pas les utilisations, notamment les requêtes aux serveurs DNS, pourtant nécessaires à la navigation internètiques et extrêmement révélatrices des habitudes de navigation du client. Cependant Tor offre la possibilité d'acheminer les requêtes DNS à travers son réseau, notamment à l’aide de la commande « torsocks » (à ne pas confondre avec « torify »). Les auteurs recommandent l’extension Firefox Torbutton qui fait passer tout le trafic Firefox par Tor et non une partie configurée. Torbutton peut utiliser un proxy anonymiseur comme Privoxy ou Polipo.

Par ailleurs, tout site peut disposer sur ses pages du code JavaScript qui lui renvoie l’adresse IP de ses clients[réf. nécessaire], annulant ainsi l’efficacité de Tor, qui avait justement pris soin de masquer cette information. Il est difficile de se prémunir contre ce problème, car bloquer l’exécution de ce type de code bloque également des fonctions parfois indispensables aux services rendus par un site. On peut cependant utiliser NoScript, une extension Firefox qui gère les scripts JavaScript en les activant uniquement dans les domaines de confiance. Mais le mieux est de désactiver toutes les extensions (JavaScript, Flash, plugins multimédias…).

Attaque de type Time Pattern[modifier | modifier le code]

Tor permet d’empêcher un attaquant de suivre le chemin pris par une connexion. Cependant, s’il ne peut reconnaître le contenu du flux, il existe des moyens dont le principe est en quelque sorte lié au problème des canaux cachés. Par exemple, envoyez un flux comme du code morse : 3 paquets envoyés en salve, puis 5 secondes de silence, puis 3 paquets, etc. Lorsque vous verrez un flux sortir d’un nœud Tor et dont le motif temporel ressemble à celui-ci, alors vous saurez que c’est le vôtre.

Selon ce principe, vous pouvez chercher à attribuer une signature temporelle à un flux que vous essayez de suivre, ce qui vous permettra peut-être de le faire. Un attaquant peut d’ailleurs augmenter ses chances en donnant lui-même un motif temporel au flux qu’il cherche à suivre. C’est en effet chose possible. Comme au sein d’un nœud tous les paquets sont transférés par le biais d’une machine commune et se partagent donc les ressources du système, un attaquant peut inonder un nœud de ses propres paquets pour moduler un ralentissement de la machine comme il l’entend, et ainsi créer une signature temporelle pour les flux qui traversent ce nœud précis.

Ces deux types d’attaques sont très différentes et posent de nombreuses questions. La première montre que même si le réseau Tor protégeait parfaitement l'anonymat, des moyens simples peuvent le contourner complètement et fortement compromettre son efficacité. Le second exemple montre que, bien que Tor soit un outil efficace, il est possible de l’attaquer directement, à la condition d'avoir accès aux informations des réseaux, c'est le cas des opérateurs et des gouvernements.

Financement[modifier | modifier le code]

Le projet coûte 2 M$ annuellement pour son développement et pour payer les nombreux serveurs. En 2012 :

Polémique[modifier | modifier le code]

L’existence d’un tel réseau est sujette à polémique :

  • Risque de surveillance globale de la population par les gouvernements. Les gouvernements peuvent utiliser Tor à des fins d'espionnage. Il peut également être utilisé par des organismes d'État ou des sociétés privées spécialisées dans le droit, pouvant, avec l'aide d'huissiers, constater des problèmes légaux avec un site, en limitant la possibilité de se faire détecter par celui-ci. Des organes d'états des États-Unis utilisent par exemple ce type de procédé[9]. Par contre, du fait de la faille du motif de temps (time pattern), et de la possibilité pour les gouvernements d'accéder aux clefs des opérateurs réseau, il est facile pour ceux-ci de surveiller les utilisateurs de Tor, perdant de fait l’intérêt initial de ce projet.
  • Utilisation pour des actes malveillants. Si la communauté Tor fait en effet valoir que les délinquants utilisent déjà d’autres techniques (cybercrime, vol, piratage, ingénierie sociale, etc.), et qu’en outre, pour certains échanges, la condition d’anonymat est primordiale : journalistes, réseaux militants, etc., il reste que l’on ne saurait ignorer le risque que des actes illicites soient, à l’aide de Tor, commis sans qu’aucune archive ne permette d’identifier les éventuels auteurs d’infractions (la police allemande a ainsi saisi, en , des serveurs du réseau Tor dans le cadre de l’instruction d’une affaire de pédophilie)[10]. On qualifie donc parfois ces systèmes de réseaux d’impunité, les nœuds étant situés dans le monde entier, alors même qu’une législation à l’échelle d’un seul pays est déjà difficile à mettre en œuvre.
  • Blocage des utilisateurs de Tor par certains serveurs. La liste des serveurs Tor étant connue (par nécessité et par volonté des responsables du logiciel)[11], certains sites internet et canaux IRC bloquent l’accès aux utilisateurs venant du réseau Tor. Par exemple, Wikipédia a la volonté d'empêcher les modifications de pages par les IP masquées par Tor. Le message affiché est le suivant : « Vous n'avez pas la permission de modifier cette page pour la raison suivante ; cette adresse IP a été automatiquement bloquée car elle fait partie du réseau de proxies anonymiseurs de Tor. Pour prévenir les abus, l’édition à partir de ces ordinateurs est interdite. […] Date d’expiration du blocage, ce blocage affectera cette adresse IP tant qu’elle fera partie du réseau Tor. […] ».

Implémentations[modifier | modifier le code]

Plusieurs logiciels tirent parti du réseau Tor. Par exemple (ceux disposant d'un article dans Wikipédia) :

Plusieurs systèmes d'exploitation basés sur la sécurité font un usage intensif de Tor, tels que :

Notes et références[modifier | modifier le code]

  1. (en) Tor Project: Core People, [lire en ligne] ;
  2. http://archives.seul.org/or/dev/Sep-2002/msg00019.html
  3. (en) Roger Dingledine (03-01-2014), « Tor 0.2.4.21 is released », tor-talk.
  4. (en) Annonce officielle de la FSF.
  5. Yves Eudes, « Commotion, le projet d'un Internet hors de tout contrôle », Le Monde,‎ 30 août 2011
  6. depuis un serveur (en) Tor: Overview — The solution: a distributed, anonymous network sur torproject.org
  7. Geoffrey A. Fowler, « Tor: An Anonymous, And Controversial, Way to Web-Surf - WSJ.com », Online.wsj.com,‎ 2012-12-17 (consulté en 2013-05-19)
  8. a et b The Tor Project, Inc., « TorProject 2012 Annual Report », Tor Project,‎ 2013-04-03 (consulté le 28 mai 2013)
  9. (en) Tor: Overview — Overview sur torproject.org
  10. (en) http://www.theregister.co.uk/2006/09/11/anon_servers_seized/ Article de The Register du 11 septembre 2006.
  11. http://torstatus.blutmagie.de/ est la page officielle du projet permettant d'avoir la liste des serveurs instantanément

Annexes[modifier | modifier le code]

Sur les autres projets Wikimedia :

Articles connexes[modifier | modifier le code]

  • Anonymat sur Internet
  • Censure de l'Internet
  • Darknet : les médias considèrent que Tor est un Darknet (en dépit de la définition originale).
  • Filtrage d'Internet
  • I2P : ce logiciel permet (entre autres) de naviguer anonymement sur les sites internètiques hébergés à l'intérieur d'I2P (le "réseau I2P"), à la manière des services cachés de Tor, mais ne se destine pas à naviguer sur internet en clair comme le permet Tor.
  • P2P anonyme : informations générales sur les principes du P2P anonyme (une technique utilisée par Tor), et tableau comparatif de logiciels.
  • Vie privée, Vie privée et informatique

Liens externes[modifier | modifier le code]