mardi 20 octobre 2015

Tor

Tor (réseau)

Page d'aide sur l'homonymie Pour les articles homonymes, voir Tor.
Tor
Logo
Logo

DéveloppeurThe Tor Project, Inc1 (ONG financée à 80% par le gouvernement américain et d'autres ONG pour la démocratie)
Première version20012
Dernière version0.2.6.9 (le 11 juin 2015,
il y a 4 mois
3
)
 [+/-]
Écrit enC
EnvironnementMultiplate-forme
LicenceLicence libre : BSD
Site webtorproject.org
Tor (depuis la génération alpha, l’acronyme récursif de Tor onion routing4,5 et également pour la seconde génération l’acronyme de The Onion Router6,7, littéralement « le routeur oignon ») est un réseau informatique superposé mondial et décentralisé, mis en œuvre du principe de réseau mélangé (mix network). Il est composé derouteurs 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 fondé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êt8.

Le « routage en oignon »[modifier | modifier le code]

Le principe de Tor est le routage en oignon. Il fut conçu au milieu des années 1990 par un laboratoire de l'armée américaine, le Naval Research Laboratory, dont l'une des spécialités est la guerre informatique. Le mathématicien Paul Syverson, les ingénieurs Michael Reed et David Goldschlag, ont participé à sa conception. LaDefense Advanced Research Projects Agency (DARPA) l'a développé.
Le routage en oignon pallie 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 Commotion9.

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 Tor10.
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 de 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 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 deTor. 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 à leurs débuts était le temps qu’il fallait pour charger les pages de sites utilisant cette technologie. La longueur de la connexion pouvait ainsi excéder plusieurs minutes. Aujourd'hui (2015) le débit et le temps de réponse général sur le réseau Tor s'est très largement amélioré car de plus en plus de nœuds sont créés dans le monde. De plus, il est maintenant possible aux utilisateurs de créer des services cachés très efficaces de façon simple et rapide, que ce soit des pages web, de la messagerie instantanée ou même de la VoIP. En fonction du nombre de nœuds que la route Tor de l'utilisateur emprunte le temps de réponse varie entre 200ms et 650ms ce qui peut être considéré comme "performant" pour un réseau construit de cette façon.

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. 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.
On peut 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 (JavaScriptFlash, plugins multimédias…).
La NSA a mis en place plusieurs nœuds Tor afin de collecter des informations sur le réseau11. La présentation Tor: Overview of Existing Techniques, explique également qu'une des techniques consiste à détourner le trafic de certains sites consultés par les activistes vers des serveurs contrôlés par la NSA11.

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, puis5 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. C'est le cas par exemple de la National Security Agency, service de renseignement des États-Unis qui a installé différents système espions sur les principaux opérateurs réseaux comme l'a divulgué Edward Snowden11.

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 sujet à 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 et de la police, constater des problèmes légaux avec un site, en limitant la possibilité de se faire détecter par celui-ci. Des organes d'État des États-Unis utilisent par exemple ce type de procédé14. 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 de cybercrime, vol, piratage (phishing, cheval de troie, ingénierie socialeetc.), 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)15. 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)16, 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 ; cetteadresse 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 :
  • Tor Browser : le produit phare du projet Tor, il inclut le navigateur web Mozilla Firefox ESR modifié, préconfiguré pour protéger l'anonymat sans devoir installer aucun autre logiciel. Il peut être exécuté depuis des médias amovibles et est disponible pour Windows, Mac OS X, et GNU/Linux ;
  • Bitmessage : messagerie anonyme (similaire à I2P-Bote, laquelle utilise le réseau I2P) ;
  • Syndie : forums et blogs en architecture distribuée ;
  • Vuze (ex-Azureus) : client BitTorrent ;
  • Torbutton a été abandonné pour laisser la place à Tor Browser Bundle ;
Plusieurs systèmes d'exploitation basés sur la sécurité font un usage intensif de Tor, tels que :


Aucun commentaire:

Enregistrer un commentaire