Ce 6ième épisode des "5 minutes du professeur Audenard" a pour thème le réseau informatique anonyme TOR. Ce sera l'occasion de découvrir les principes du "onion routing" et des principes de sécurité permettant d'accéder à Internet de façon anonyme.
Comment l'idée est venue ? C'est tout simplement à cause de l'actualité autour de Wikileaks. Car oui, le niveau des brèves de comptoir des bistrots français vient de faire un saut quantique vers le haut. Bon, j'exagère peu mais à peine : C'est lors d'une soirée avec des amis que le sujet Wikileaks est arrivé sur la table.
Envoyer des données à Wikileaks en toute confidentialité
Rapidement, les échanges se sont portés sur les les moyens utilisables par un informateur pour transmettre des informations sensibles à Wikileaks, le tout de façon simple tout en lui assurant un très haut niveau de confidentialité. En effet, un informateur voudra surement rester caché, et ce même vis-à-vis des personnes de Wikileaks.
<a href="http://cdn.streamlike.com/hosting/orange-business/embedPlayer.php?permalink=910e8d5a45fd458344ee17185e1de0f1&width=480&height=290"> <h1>tor</h1></a>
Le routage en "couches d'oignon"
L'un des principes fondamentaux d'un réseau comme TOR c'est le routage en mode "bulbe d'oignon" (onion routing). Dans un oignon, chacune des couches de celui-ci n'est en contact avec celles qui immédiatement adjacentes. Impossible pour une couche de savoir combien il y a de couches au dessus ou en dessous... Tout ce qu'elle peut connaitre de son environnement extérieur ce sont les couches directement et immédiatement en contact avec elle.
TOR, le réseau qui route selon un mode "oignon"
Dans le cas
des routeurs du réseau TOR, c'est exactement la même chose : Un routeur
TOR n'a pas connaissance d'autre chose que le routeur duquel il vient de
recevoir un paquet et le routeur auquel il va retransmettre ce paquet.
Il est donc impossible, dans un réseau TOR, pour un noeud du réseau de
"remonter" (ou d'avancer) plus d'un cran.
Déterminer un chemin dans le réseau
Si
cette absence de visibilité est essentielle pour les éléments
constitutif du réseau (les nœuds ou routeurs TOR), il en est tout
autrement pour la personne qui utilise le réseau TOR.
Une
personne (un informateur de Wikileaks par exemple) pourrait tout à fait
vouloir définir son point d'entrée dans le réseau, son point de sortie
ainsi que le nombre de sauts ("hops") empruntés. Cela lui permettrait
par exemple de définir qu'il souhaite utiliser plus de 3 routeurs TOR
entre lui et son destinataire ou préférer de "sortir" du réseau via des
routeurs TOR spécifiques (localisés dans tel ou tel pays par exemple).
Un logiciel client à installer sur sa machine
Pour
se connecter au réseau TOR, il est nécessaire d'installer un logiciel
supplémentaire sur sa machine. Ce logiciel fera office de proxy (ou
"relais mandataire") entre votre navigateur Internet et le réseau ; en
fait il s'agit d'un proxy respectant le protocole SOCKS. Ce client va se
charger de définir, selon son paramétrage, le chemin (nombre de "hops"
notamment) et de transmettre et recevoir les paquets.
Les communications entre votre PC et le routeur d'entrée TOR seront chiffrées en SSL.
Définition du chemin
Lors
de la première connexion, le client TOR va définir un chemin (ou une
"route") au sein du réseau TOR. Au strict minimum, ce seront trois (3)
routeurs TOR qui seront empruntés lors des échanges.
Nous nommerons
ces routeurs R1, R2 et R3. R1 étant le routeur d'entrée dans le réseau,
R3 celui de sortie et R2 étant un routeur dit de "transit pur".
Afin
de rendre toute tentative d'analyse du trafic encore plus compliquée,
ce chemin est automatiquement changé toutes les minutes. Cet aspect
"dynamique" du routage va rendre inefficace toute attaque au niveau des
clefs de chiffrement.
Génération des clefs de chiffrement
Une
fois les routeurs TOR connus, le client TOR va contacter chacun
d'entre-eux afin de convenir d'une clef de chiffrement symétrique. Pour 3
routeurs TOR choisis, ce sera donc 3 clefs de chiffrement différentes
qui seront définies. Les communications entre le client TOR et les
routeurs TOR sont faites "hop par hop", par l'intermédiaire de chacun
des routeurs TOR, le client TOR reste donc masqué.
La communication peut enfin commencer
Une
fois le chemin établi et les clefs de chiffrement connues la
transmission peut commencer. Le client TOR va chiffrer les échanges
selon un mode de "poupées russes".
Toujours dans le cas de 3 routeurs
(disons R1, R2 et R3) il va chiffrer les données avec la clef du de R3,
puis les chiffrer de nouveau avec la clef de R2 puis enfin avec R1.
Ensuite
il envoie les données : Chacun des routeurs va déchiffrer le paquet
avec sa clef que seul lui (et bien sur le client) connait.
Les routeurs intermédiaires (ou de "'transit") ne peuvent pas voir le contenu
Avec
un tel système, les routeurs R1 et R2 sont dans l'impossibilité d'accès
aux données transmises car ils n'ont pas connaissance de la clef de R3.
R2
n'a connaissance que des routeurs R1 et de R3 et encore uniquement des
connexions qu'il a avec eux. R2 ne peut pas voir qui "utilise" le
routeur R1 ou R3 par ailleurs.
La sortie de TOR, lieu de de tous les dangers
Comme
on a pu le voir, le routeur R3 va déchiffrer les messages et les
envoyer vers le serveur de destination. C'est à cet endroit ou certaines
attaques peuvent être menées : En effet, un attaquant ayant le contrôle
de R3 pourra écouter ("sniffer") les paquets et donc voir ce qui est
échangé. Sauf si... celles-ci ont été chiffrées en amont sur le poste de
l'utilisateur... c'est pourquoi il est recommandé d'utiliser le réseau
TOR avec des flux chiffrés (HTTPS/SSL par exemple) si l'on veut de la
confidentialité en plus de l'anonymat.
Un réseau pour l'anonymat
On
peut donc dire que le réseau TOR est un réseau fournissant des services
pour rendre anonymes les parties en communication. Si l'on souhaite une
confidentialité des communications alors il faudra TOR avec chiffrement
de niveau applicatif.
Un autre point dont je n'ai pas parlé et
qui a son importance : Sur le réseau TOR, vos flux sont "mélangés" avec
ceux de milliers d'autres utilisateurs... vous êtres donc "fondus dans
la masse", plutôt intéressant pour rester masqué. Un observateur sur un
routeur de sortie verra plein de connexions de tous type... difficile
pour lui de remonter par recoupement à une personne en particulier.
Les usages autorisés sont limités et la lenteur est de mise
Non,
ce réseau TOR ne va pas tout remplacer : Tout d'abord, l'utilisation de
certains protocoles est interdite sur le réseau (pas de SMTP/25, pas de
P2P notamment, ...) les débits sont plutôt lents et les délais de
connexion sont assez élevés. Faites le test par vous même et vous vous
rendrez compte : Cela n'a rien à voir avec une connexion Internet
directe !
Proposer du contenu de façon anonyme : Les points de rendez-vous
Le
réseau TOR permet aussi de publier de façon anonyme du contenu. Pour y
accéder, il suffira d'utiliser une URL de la forme
"http://ec7b3a9abc432.onion" : Notez le ".onion" à la fin !
Lorsque
cette requête rentrera dans le réseau TOR, elle sera automatiquement
converti en une adresse d'un nœud TOR via lequel le site web sera
accessible. Bien entendu, impossible pour la personne de savoir ou se
trouve réellement le site web.
Configuration du poste de travail essentielle
Utiliser
TOR implique aussi une configuration spécifique de son poste de travail
: Il ne s'agit pas que ses connexions IP soient anonymes et de laisser
des empreintes énormes à cause d'une applet Java intempestive.
D'ailleurs, les clients TOR sont livrés avec des logiciels
complémentaires comme Privoxy, un relais HTTP filtrant... Idem, des
risques existent de perdre son anonymat à cause de la résolution DNS.
Un système assez complexe et donc
Bref,
la technologie reste accessible à monsieur tout-le-monde mais pour
l'utiliser correctement, il est nécessaire de la comprendre... sans
quoi, on est pas anonyme du tout !
Un informateur souhaitant
communiquer des informations à Wikileaks sera peut-être plus à l'aise
d'envoyer ses informations par courrier postal que de se lancer dans
cette "tripaille technologique". :-) Même dans ce dernier cas, un
certain nombre de précautions sont à prendre.
Bloquer l'accès au réseau TOR
Le
réseau TOR a été conçu pour résister fournir un haut niveau d'anonymat.
Il est donc compréhensible que certaines entreprises souhaitent limiter
ou interdire les connexions à ce réseau ou encore contrôler les
connexions en provenance de TOR.
Il existe des listes régulièrement
mises à jour avec les adresses IP des routeurs TOR : Avec ces listes,
rien de plus simple que de bloquer les connexions correspondantes au
niveau d'un firewall d'entreprise.