En France, l’article 6 de la LCEN impose aux « personnes dont l’activité est d’offrir un accès à des services de communication au public en ligne » de sauvegarder et d’imputer l’activité des utilisateurs en mettant en place un dispositif de traçabilité. Ce dispositif évite aux propriétaires de réseau de consultation d’être inquiétés en cas d’enquête policière. Pour l’anonymisation, de plus en plus d’internautes utilisent TOR.
Par Killian Colleu
Laboratoire (C+V)O , Axe Confiance Numérique et Sécurité/Laboratoire de cryptologie et virologie opérationnelles (ESIEA)
1-La traçabilité et le filtrage Internet en France
En complément du dispositif de traçabilité, certains organismes activent un module de filtrage. Les structures accueillant des mineurs en ont même l’obligation (collèges, MJC, centres de vacances, etc.). Les modules de filtrage sont des applications logicielles conçues pour restreindre ou interdire l’accès à certaines ressources en fonction des critères suivants :
adresses IP ;
noms de domaine ou des URL ;
protocoles réseau (P2P, FTP, Web, etc.) ;
«mots clés» sensibles référencés dans des dictionnaires.
Ils fonctionnent généralement sur le principe de la liste blanche (WhiteList WL) ou de la liste noire (BlackList BL). La liste blanche n’autorise l’accès qu’à une liste de critères bien définie alors que la liste noire autorise tout, à l’exception d’une liste de critères bien définie.
Les modules de filtrage les plus aboutis savent traiter l’ensemble des critères. Ils examinent ainsi les adresses IP, les noms de domaines, les URL ainsi que des mots clés pour décider d’autoriser ou non l’accès à une ressource Internet.
Pour contourner les dispositifs de traçabilité/filtrage, plusieurs méthodes et outils ont été élaborés à travers l’exploitation de logiciels d’anonymisation, de proxy (serveurs mandataire) ou de VPN (Virtual Private Network).
Dans cet article, j’aborderai le cas de TOR (The Onion Router) et j’expliquerai comment un dispositif de traçabilité/filtrage peut empêcher son exploitation.
2-L’anonymisation avec TOR
TOR est l’acronyme de The Onion Router (« le routeur d’oignon »). C’est un réseau constitué de tunnels virtuels (VPN) créé en 2003. Il se compose de milliers de routeurs appelés « routeurs TOR » (Onion Routers OR) transmettant de manière anonyme des flux TCP. Dans ce chapitre, nous allons décrire le fonctionnement de ce réseau particulier.
a) Le réseau des oignons
TOR fonctionne de la même manière qu’Internet : lorsque vous effectuez une requête en ligne, vous envoyez des unités d’information (ou « paquets ») à travers le réseau. Celles-ci vont transiter par des routeurs jusqu’au serveur hébergeant la ressource souhaitée qui répondra par un ou plusieurs paquets contentant l’information demandée.
Une fois que vous avez téléchargé est installé le logiciel TOR, celui-ci va mettre en place sur votre ordinateur un agent local qui effectuera les requêtes à la place de votre navigateur. Ces agents sont appelés « clients TOR » ou « proxy TOR » (Onion Proxies – OP) ». Pour l’utilisateur, ce proxy est la porte d’entrée vers le réseau TOR.
En lançant le navigateur lors de la première connexion, votre proxy TOR va consulter un serveur d’annuaire (Directory Server) qui détient l’inventaire des routeurs TOR (OR).
b) Le routage
Pour définir un trajet privé et anonyme, TOR détermine un chemin aléatoire à travers les nuds de son réseau (OR). Les nuds ne sont pas capables de retracer un chemin complet emprunté par un paquet, car ils ne connaissent que le nud précédant et le nud suivant. Tout cela dans le but d’empêcher toute tentative d’identification du cheminement de l’information.
Le séquencement d’une communication est le suivant :
Le proxy TOR récupère la liste des OR à partir d’un des serveurs d’annuaire ;
Il choisit alors aléatoirement l’OR de sortie (nud de sortie) qu’il souhaite atteindre (OR3 dans l’illustration suivante) ;
Il sélectionne ensuite un OR d’entrée (OR1 dans l’illustration suivante). Il établit une connexion chiffrée avec cet OR à l’aide d’un mécanisme de clés publiques / clés privées ;
Il définit alors l’itinéraire des paquets pour établir un circuit aléatoire entre le nud d’entrée et le nud de sortie. Chaque OR traversé possède ses propres clés (publiques et privées).
Prenons un exemple simple où le chemin de routage ne comporterait que deux OR : OR1 (nud d’entrée) et OR2 (nud de sortie). Cf. illustration suivante.
1. Tout d’abord, le proxy TOR (OP) va envoyer une demande de création d’un segment de circuit vers OR1 (segment de circuit « C1 »). Cette demande est chiffrée avec la clé publique de OR1 pour que lui seul soit en mesure de la déchiffrer. Dans la même connexion, un échange Diffie-Hellman (DH) est initié. Cet échange permet de déterminer, de manière sécurisée, une clé secrète entre deux interlocuteurs (OP et OR1 dans le cas présent).
OR 1 revoit la confirmation de création du circuit. Tous les échanges seront dorénavant chiffrés au moyen d’un algorithme symétrique utilisant clé secrète connue que de OP et de OR1 (aucun autre nud n’est en mesure de déchiffrer ces flux).
2. Le proxy TOR (OP) envoie une demande d’extension du circuit (cellule Extension) à OR1. OR1 va alors transférer vers OR2 la demande de création du segment de circuit entre OP et OR2 (segment de circuit « C2 »). La demande d’extension est composée de l’identifiant d’OR2 ainsi que l’échange Diffie-Hellman chiffré avec la clé publique de OR2 que seule OP pourra exploiter. OR1 n’a pas connaissance de la clé symétrique partagée par OP et OR2.
3. Une fois le chemin créé, OP demande la ressource du serveur WEB qu’il souhaite obtenir, celle-ci est alors relayée par les différents OR.
Au final, seul OP connaît les identifiants et l’ordre des routeurs présents entre le nud d’entrée et de sortie. Il est le seul à posséder les différentes clés symétriques échangées lors de la création de chaque circuit.
c) Le chiffrement
TOR garantit l’anonymat, mais aussi la confidentialité des données transitant par le réseau. Pour cela le proxy TOR (OP) chiffre tous les paquets de la manière suivante :
- le paquet est chiffré avec la clé secrète du dernier nud (nud de sortie) du circuit (N)
- le paquet chiffré obtenu est rechiffré avec la clé de l’avant-dernier nud du circuit (N-1)
- et ainsi de suite
Une fois tous les paquets chiffrés (N fois), ils sont envoyés sur le premier nud OR1 du circuit.
Lorsque celui-ci les reçoit, il déchiffre la première couche grâce à sa clé privée que lui seul possède. Les paquets qui restent chiffrés par les autres couches sont alors envoyés au deuxième nud et ainsi de suite jusqu’à atteindre le destinataire qui reçoit les données en clair.
Le fait qu’il y est plusieurs couches de chiffrement permet qu’aucun des relais ne puisse déchiffrer les paquets complètement afin d’en connaître le contenu.
C’est de là que TOR tire sa comparaison avec un oignon. Chaque paquet de données est protégé sous plusieurs couches de chiffrement. Ces différentes couches font penser aux pelures d’un oignon.
3-Contremesure
Pour tenter de bloquer l’utilisation de ce réseau d’anonymisation, il est possible en utilisant un analyseur de trames (ou une sonde réseau) d’inventorier les adresses IP des nuds d’entrée et de sortie que TOR exploite. En ajoutant ces adresses IP à une liste noire (blacklist), elle-même intégrée dans un dispositif de filtrage, celui-ci pourrait en bloquer l’accès.
Ainsi, si un utilisateur se connecte à internet via TOR le dispositif de filtrage va détecter l’adresse IP black-listée des serveurs d’accès à TOR (les nuds d’entrées et de sorties) et la demande de connexion à ces nuds sera bloquée.
Pour vérifier pratiquement cette procédure, j’ai créé un démonstrateur exploitant le dispositif d’imputabilité/filtrage libre «ALCASAR».
Du fait que le réseau TOR évolue au jour le jour (particulièrement au niveau des OR d’entrées), les dispositifs de filtrage doivent s’adapter dynamiquement et intégrer des systèmes de mises à jour automatiques de leurs listes (BL et WL). Ceci est possible au moyen d’outils de synchronisation de listes. Des sites tels que « dan.me.uk » ou encore « torstatus.blutmagie.de » publient et répertorient régulièrement une liste d’adresses IP de ces nuds par l’intermédiaire du service public TorDNSEL. Ces listes sont basées sur les DNS. Elles sont extraites de l’annuaire du réseau TOR.
Dans le cadre de ce démonstrateur, j’ai créé un script qui permet de récupérer régulièrement ces listes d’adresses. Le script les adapter au dispositif de filtrage intégré à ALCASAR. Ce dispositif est fonctionnel et il est impossible de se connecter au réseau TOR une fois qu’il est activé.