Tor (réseau)
Un article de Wikipédia, l'encyclopédie libre.
Cet article est une ébauche à compléter concernant la sécurité informatique, vous pouvez partager vos connaissances en le modifiant. |
TOR | |
---|---|
Développeur | Roger Dingledine et Nick Matthewson |
Dernière version | 0.1.1.26 |
Environnement | Windows, Mac OS X, Linux, BSD, Unix |
Licence | Licence BSD |
Site Web | tor.eff.org |
The Onion Router ou 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 anonymisé en utilisant Tor.
Sommaire |
[modifier] Le routage en oignon dans Tor
Le routage en oignon fut conçu à partir de l'appréciation des carences des systèmes pré-existant (notamment les serveurs mandataires) qui ne suffisent pas à garantir l'anonymat d'un individu.
Tor est la seconde génération de systèmes de routage en oignon (le premier a révélé beaucoup de ses défauts et n'a donc jamais eu de succès.)
[modifier] Vue d'ensemble
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 celui qu'on appelle un homme au 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).
[modifier] Construction d'un circuit
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.
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 crypté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.
[modifier] Échange de paquets
Pour acheminer un paquet au serveur, le client doit crypter son paquet de nombreuses fois :
- la première fois, le client crypte son paquet TCP avec la clef secrète 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-3.
- la quatrième fois, avec celle de n-4.
- ...
- la dernière fois, avec celle du premier nœud, numérotée 1.
À 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 :
- le premier serveur du circuit décrypte le paquet avec la clef 1 et l'envoie au deuxième serveur.
- le deuxième serveur decrypte ce paquet avec la clef 2.
- ...
- le dernier serveur décrypte ce paquet avec la clef 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 (comme Privoxy). Voici le déroulement d'une visite de Wikipédia par ce client :
- Son navigateur envoie la requête HTTP à Privoxy.
- Privoxy retranche l'information non anonyme, construit un circuit au sein de Tor si ce n'est déjà fait, crypte les données à envoyer, et les passe au premier serveur du circuit via SOCKS.
- 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 à Wikipedia.
La même chose se passe en sens inverse. L'échange est ainsi anonyme, mais est cependant très ralenti.
[modifier] Un anonymat partiel
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 Web et extrêmement révélatrices des habitudes de navigation du client.
Par ailleurs, tout site Web peut disposer sur ses pages un applet Java qui lui renvoie l'adresse IP de ses clients, annulant ainsi l'efficacité de Tor, qui avait justement pris soin de masquer cette information. Il est difficile de se prémunir de cette parade, car bloquer l'exécution de ce type de code bloque également des fonctionnalités parfois indispensables aux services rendus par un site.
- Attaque de type "Time Pattern" :
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 innonder 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érents et posent de nombreuses questions. La première montre que même si le réseau Tor protégeait parfaitement votre anonymat, des moyens simples peuvent le contourner complètement et fortement compromettre son efficacité. Le second exemple est plus destiné à montrer que bien que Tor reste un outil formidable, on peut l'attaquer directement, et il n'est donc pas un paradis pour hackers.
[modifier] Polémique
L'existence d'un tel réseau est sujet à polémique : certains anonymats sont moins sains que d'autres.
La communauté Tor avance l'argument que les gredins utilisent déjà d'autres techniques (vol, piratage, ingénierie sociale, etc.) et que certains échanges ne peuvent se faire qu'à la condition de l'anonymat (en particulier : les informateurs, les réseaux militants...)
Malgré tout, les opposants arguent de la facilité avec laquelle des activités malsaines peuvent être menées sans qu'aucune archive ne puisse incriminer les fautifs. (La police allemande a saisi en septembre 2006 des serveurs du réseau Tor dans le cadre d'une enquête anti-pédophiles, sans aucun résultat probant sans doute.) On peut parler de réseaux d'impunité car les nœuds sont localisés dans le monde entier et il est déjà difficile de s'accorder sur une législation à l'échelle d'un pays.
La liste des serveurs Tor étant connue (par nécessité et par volonté des responsables du logiciel), certains sites Web et canaux IRC ont bloqué l'accès à leurs données par le réseau Tor.
[modifier] Autres réseaux d'anonymisation
[modifier] Liens externes
- Le site officiel, hébergé par l'EFF
- Tor, article de Framasoft
- (en) Statistiques sur le réseau Tor
- (en) Weaknesses of Tor
|
|