Jan 272013
 

Au cours de précédents articles, nous avons abordé certaines faiblesses (réelles ou présumées) du réseau Tor. J’ai fait de mon mieux pour les expliquer le plus clairement possible, et en refléter la gravité le plus fidèlement possible.

Cependant, cela fait plusieurs mois que je cherche un moyen d’aborder celle qui me paraît la plus nocive, la plus toxique au bon fonctionnement du réseau. Du moins, sur le long terme.

N’arrêtez pas la lecture trop vite en en lisant le nom. Cela peut sembler bateau, mais derrière ce titre générique, se cache une dynamique complexe, fragile, et beaucoup trop peu évoquée du fonctionnement du réseau Tor.

Voyons donc ensemble, si vous vous en sentez le courage, quelle est le principal réel problème posé à la viabilité du réseau Tor.

La diversité des noeuds du réseau

Avant d’attaquer l’effet pervers et furtif, revenons d’abord sur l’évidence.

Votre client Tor établit un « circuit » de 3 relais choisis le plus aléatoirement possible parmi la liste des noeuds présents sur le réseau. Comme nous l’avons vu, pour espérer compromettre une connexion, il faut que la même personne/entité parvienne à détenir le premier et le dernier noeud du circuit.

Dit comme ça, et étant donné que le réseau compte 3000 noeuds actifs, la probabilité de voir son circuit compromis semble raisonnablement basse.

  • La mécanique derrière le concept d’Entry Guard est là pour réduire d’avantage la probabilité d’assembler un premier noeud avec un éventuel dernier noeud détenu par la même personne.
  • À cela s’ajoute le fait qu’un détenteur de plusieurs noeuds peut les désigner comme « appartenant à une même famille », ce qui aura pour effet d’interdire à votre client d’utiliser plus d’un noeud de la même famille (même administrateur) dans un même circuit. Un attaquant malicieux ne configurera évidemment pas ces « familles », mais si un administrateur honnête voit ses noeuds mis sur écoute passive, ce petit réglage peut mitiger l’attaque.
  • Et pour couronner le tout, évidemment, l’équipe de Tor observe d’un oeil attentif la mise en ligne et le comportement des noeuds de sortie, autant que possible, afin que la mise en place du jour au lendemain d’un honeypot ne passe pas inaperçue, et soit sanctionnée de blacklisting.

Lire tout ça vous a probablement enveloppé d’une confortable impression de sécurité.
Après tout, tout cela semble judicieux, justifié et sacrément efficace, quand utilisé en conjonction, pas vrai ?

…pas vrai ?

Une erreur d’appréciation

exit-probability-cdf-a
Si votre sentiment de sécurité ne viens pas de s’ébranler, c’est que la signification de ce schéma ne vous est pas parfaitement claire.

Malheureusement pour vous, je ne laisserai pas cette confusion demeurer un refuge plus longtemps.

Ca veut dire quoi ?

Ce que ce schéma signifie que:

  • A chaque fois que vous établissez un circuit, vous avez environ 45% de chances de choisir au moins un relais parmis les 10 mêmes.
  • Plus de 80% de vos circuits passeront toujours par les 40 mêmes relais.
  • Comme si ce n’était pas encore assez inquiétant, non seulement vous réutiliserez souvent les mêmes relais, mais en plus, tous les autres utilisateurs de Tor sont soumis à cette même probabilité, de passer par le même relais

Donc en clair, une proportion écrasante des utilisateurs de Tor passent par les 40 mêmes relais parmis les 3000 listés.

Qu’est ce que ça implique ?

Principalement, deux choses.

La première, c’est qu’un nombre très réduit de noeuds porte sur ses épaules une portion imposante du traffic Tor. Pas seulement en nombre de circuits, mais également en volume. Si ces relais venaient à disparaître du réseau pour une raison ou pour une autre, les 2950 autres relais unis ne suffiraient pas à
supporter la charge du réseau. A court terme, le réseau s’écroulerait sur lui-même et cesserait de fonctionner. A moyen terme, on suppose que la demande s’ajusterait. Le réseau fonctionnerait, mais le débit atteint par les clients serait, en comparaison, ridicule.

Beaucoup se plaignent de la lenteur actuelle de Tor, mais si cette bande passante moyenne par client était réduite de 80%, une simple navigation deviendrait tout simplement insupportable.
Et qui dit navigation insupportable, dit obligation de passage à un navigateur « traditionnel », et donc perte d’anonymat pour beaucoup de gens en ayant besoin pour leur sécurité et celle de leur famille.

Pire encore, ces relais pourraient être compromis, plutôt que déconnectés.
Comme vous vous en rappellez probablement, le principe d’un Entry Guard est qu’on tente d’utiliser le même premier noeud le plus souvent possible. Immaginez un réseau de 30 noeuds où il n’y en a qu’un d’infecté. Si vous ouvrez 30 connexions en changeant à chaque fois de premier noeud, vous passerez obligatoirement au moins une fois par ce noeud compromis. Mais si vous vous limitez à utiliser toujours le même noeud, vous en choisissez un seul parmis les 30, avec 29 chances sur 30 d’en choisir un bon, et même après 1000 connexions, vous avez échappé au noeud malicieux. Vous l’aurez cependant deviné, si vous avez la malchance de choisir le mauvais noeud dès le départ, chacucne de vos connexion passera par celui-ci…

En temps normal, cette probabilité est très faible, tant qu’il y a une majorité d’Entry Guards « sains » sur le réseau, ou qu’… une minorité restreinte d’Entry Guards compromis ne brassent pas 80% du trafic ?

Si cela venait à être le cas, un attaquant détenant un de ces noeuds, et mettant un exit node en ligne, augmenterais grandement la probabilité que plusieurs personnes choisissent par malchance un circuit utilisant ces noeuds compromis comme premier et dernier relais du circuit. Plus l’Exit Node est petit, moins cette probabilité est élevée, mais si l’attaquant détiens deux noeuds parmis ces 40 plus utilisés, quelle est la probabilité de choisir à la fois le noeud d’entrée et celui de sortie parmi ces 40 noeuds « centraux » ?

En regardant le graphique, la seule chose qui me vienne à l’esprit est « Trop grande à mon gout. »

Pourquoi c’est comme ça ?

Pour comprendre comment on en est arrivé là, il faut comprendre comment un circuit est choisit à travers le réseau Tor.

La sélection des noeuds par votre client Tor n’est pas complètement aléatoire.
Elle tiens compte de plusieurs paramètres, parmi lesquels:

  • Il faut que le noeud de sortie accepte de faire passer le protocole qu’on désire utiliser
  • Ne jamais utiliser deux noeuds de la même « famille » (même opérateur) au sein d’un même circuit
  • Réutiliser un même Entry Guard le plus souvent possible
  • Favoriser les noeuds ayant le plus de capacité

C’est ce dernier point qui nous pose tant de problèmes.

Pour être utilisé, Tor a besoin d’être utilisable.

Cela implique un débit minimum, en dessous duquel internet n’est pas praticable. Or, quand on passe par trois relais, on augmente déjà inévitablement la latence des connexions, ce qui donne déjà une impression de lenteur. Mais surtout, le débit maximal qu’on peut espérer sur le circuit d’une connexion est, au maximum, celui du relais le plus lent. Il s’agit là d’une loi immuable en réseau.

Si mon premier relais peut m’allouer 300ko/s, que le second peut m’en offrir 35ko/s et que le dernier m’en offre 280ko/s, je ne pourrai jamais transférer plus de 35ko/s de données sur cette connexion.

Or, tout circuit nécessite un exit node, et ceux-ci, pour diverses raisons, son non seulement peu nombreux sur le réseau, mais ont souvent un débit réduit. Beaucoup d’entre eux peinent à transférer plus de 300ko/s. En tout. Ce sont donc 300ko/s à partager entre plusieurs dizaines de connexions.

Le résultat est un goulot d’étranglement de la bande passante.
Choisir un seul noeud « lent » dans votre circuit va brider la bande passante de tout votre circuit.
Et des noeuds « lents », dans le réseau, il y en a beaucoup. Surtout parmi les exit nodes.

Pour pallier à cela, il a donc fallu établir un compromis. c’est pourquoi, à la sélection des noeuds d’un circuit, votre client donne un poids différent à la probabilité de choix des noeuds du réseau, en fonction de la bande passante qu’ils allouent.

Cependant, cette sélection « intelligente » se retourne contre la sécurité du client lorsqu’un petit nombre de TRES TRES TRES GROS relais (et Exit Nodes, qui plus est!) sont généreusement mis à disposition du réseau Tor. Ceux-ci rendent l’utilisation de Tor beaucoup plus tolérable, mais déséquilibrent la charge du réseau.

C’est ainsi qu’un nombre restreint de noeuds gargantuesques en arrivent à brasser une énorme portion du traffic du réseau. Tout simplement parce qu’ils le peuvent. Ils ont à eux seul plus de bande passante qu’un grand nombre d’autres relais réunis.

Comment résoudre ce problème ?

Si vous remontez voir le graphique de probabilité de choix des plus gros noeuds, vous verrez que la courbe a fluctué en fonction du temps.

Les développeurs de Tor font leur possible pour mitiger ce problème, mais étant donnée la disparité entre la vitesse moyenne des noeuds (de sortie, principalement) « normaux », et celle des « gros » noeuds, l’équilibre est très fragile.
Si on délaisse un peu trop les énormes noeuds, les utilisateurs vont trop souvent passer par des noeuds « goulot d’étranglement » et Tor deviendra invivable pour beaucoup d’utilisateurs. Mais si ces noeuds sont trop utilisés, un même utilisateur passera toujours par les mêmes noeuds, ce qui pose d’évidents problèmes de sécurité.

Jouer avec les formules mathématiques et les poids attribués aux noeuds en fonction de leur bande passante a ses limites, c’est une approche condamnée à l’échec, étant donné l’état actuel du réseau.

La solution, c’est de changer l’état du réseau.

We’ll need bigger boats

Le premier réflexe, quand on parle de problème de diversité dans le réseau Tor, c’est l’approche « extrêmement décentralisée ».
C’est à dire, mettre en ligne le plus de petit noeuds possible, pour contre-balancer la centralisation de gros noeuds.

Dans notre cas, c’est une erreur fatale.

Le réseau Tor ne manque pas de noeuds. Il en a 3000.
3000 noeuds est un nombre qu’on aime voir grandir au fil des mois, mais pour le nombre d’utilisateurs qu’il porte, ça devrait être assez de diversité.

Le réseau Tor n’a pas besoin de 6000 petits noeuds pour rétablir un équilibre.
Il a besoin de 3000 PLUS GROS noeuds.

En résumé, il ne faut pas PLUS de noeuds, il faut faire GRANDIR ceux qui existent déjà.

Pour cela, deux stratégies me tiennent à coeur :

La collaboration

La solution la plus facile à organiser, c’est de faire grossir les noeuds déjà en place, déjà configurés.

Si vous voulez aider le réseau Tor, au lieu de rajouter un petit noeud à 100ko/s qui sera complètement ignoré, pourquoi ne pas chercher, dans vos connaissances de confiance, un ami qui héberge déjà un noeud Tor? Vous pourriez vous arranger pour financer ensemble une facture deux fois plus grande, pour une bande passante deux fois plus importante, et que ce noeud ait deux fois plus de poids !

De cette façon, vous doublez le poids d’un noeud en lequel vous avez tout autant confiance.

Vous pouvez même vous mettre à plusieurs (personnes de confiance) pour financer le même gros noeud, pour un meilleur résultat encore !

La mutualisation

Si la collaboration peut permettre de doubler, tripler, quadruler la « puissance » d’un noeud, ce système se complique lorsqu’on veut aller au delà.

Il est difficile de trouver 10, 15, 20 personnes de confiance. Et oui, vous devez concurrencer une 50aine de noeuds qui sont 100 à 1000 fois plus rapide qu’un noeud individuel moyen, donc rechercher un x20 est loin d’être excessif.

Pour un tel dispositif, il faut s’organiser en grand nombre, se structurer, avoir une comptabilité transparente, bref, s’associer.

C’est exactement ce que l’initiative « nos-oignons » cherche à accomplir.

Nos-Oignons est un groupe de personnes ayant constaté, identifié cette problématique de diversité, et ayant décidé d’agir pour y remédier le plus efficacement possible.

Pour ce faire, ils veulent créer une organisation qui se chargera d’héberger des noeuds

  • les plus conséquents possible
  • sur le territoire français
  • administré par des gens de confiance
  • financé par des membres adhérents, et des donnateurs. VOUS.

Tout cela, afin d’apporter le plus de diversité au réseau Tor possible. Pas seulement une diversité de petits noeuds ignorés, mais une diversité de gros noeuds utiles. Faisant la différence.

Let the Onions GROW

nos-oignons n’est ni le premier, ni le seul groupe s’étant fixé ces objectifs. Le plus connu étant torservers.net, une organisation allemande hébergeant des noeuds à travers le monde.

Ces derniers mois, suite à ces constats, la communauté Tor a cherché des moyens de monter plus d’initiatives pour augmenter la taille des noeuds présents sur le réseau, et rétablir une équité dans sa diversité. Des projets sont en train de se monter aux Pays-Bas, et nos-oignons cherche donc à le faire en France.

Je suis convaincu que ces initiatives sont non seulement d’excellentes idées, mais également, à long terme, une question de survie pour le réseau Tor.
A terme, il faudrait qu’un grand nombre de pays aient au moins un organisme chargé de mutualiser des énormes noeuds Tor sur leur propre territoire, pour garantir un réseau sain, efficace, digne de confiance.

La situation est grave, mais pas désespérée.

Si vous cherchez donc comment contribuer au réseau Tor, au lieu de planter des champs entiers d’oignons atrophiés, pensez à prendre soin de ceux qui sont déjà plantés, et ne demandent que vous pour parvenir à s’épanouir pleinement !

Fév 172012
 

Dans mes deux articles prédécents, j’expliquais comment l’« attaque » de Filiol avait affreusement mal quantifié et référencé les Bridge Relays du réseau Tor, puis comment il avait recyclé un procédé de « Packet Spinning » exposé en 2008.
Celui-ci se concentrera sur le troisième aspect de cette « attaque », à savoir la mise à mal des trois niveaux de chiffrement utilisés par Tor, laissant les communications claires comme de l’eau de roche pour l’attaquant, tant de par son contenu que ses origines et destinations.

Voyons de plus près ce qui se cache derrière la déclaration la plus audacieuse de l’équipe de Filiol, mais également la plus opaque, la plus imprécise, et la plus mystérieuse de tout son procédé.

Cette partie devait être la plus intéressante, puisque par élimination, ça devait être la seule apportant quoi que ce soit de nouveau sur la table, contrairement aux deux premiers aspects déjà discutés ici.

Le chiffrement de Tor complètement décimé par l’attaque de Filiol…

Les déclarations furent imprécises, variables, et incohérentes au possible, mais qu’il s’agisse d’un déchiffrement entier ou partiel de la communication, la tendance semblait préoccupante pour la technologie Tor.

Car je le rappelle, la philosophie de la technologie Tor est de fournir un anonymat à ses utilisateurs via de multiples couches de chiffrement relatifs à de multiples relais choisis au hasard.
Retirez le chiffrement de l’équation, et vous avez un anonymat du niveau de ce que l’on faisait en 1995, « efficace » contre les attaques connues dans les années 90.

Le résultat en est une technologie vous rendant invisible… dès lors que votre adversaire a délibérément décidé de garder les yeux fermés.

Vous conviendrez que cette annonce a de quoi inquiéter le demi-million de personnes à travers le monde ressentant le besoin d’utiliser Tor chaque jour de la semaine.

Le Threat Model du réseau Tor

Ceux ayant lu mes articles dans l’ordre, et ayant particulièrement commencé par mon article détaillant clairement le principe de fonctionnement de Tor, se rappelleront que toute la magie du procédé de Tor est de passer par trois relais aléatoires.

Ceux ayant suivi attentivement se rappelleront également que dès lors que quelqu’un était capable d’écouter chaque point entre le client, les relais, et la destination en même temps, il était capable de déterminer à la fois l’origine, la destination, et le contenu exact de la communication.

Ces quelques informations constituent, en très gros, ce qu’on appelle le « Threat Model » de la technologie Tor.
Pour faire simple, le Threat Model est une description des scénarios dans lesquels un outil de sécurité offre efficacement un service, et dans quels scénarios il est soit inefficace, soit dangereusement contre-productif.

Ce Threat Model, établi en même temps que la technologie Tor en 2003, décrit dès le départ ce scénario dans lequel Tor sait qu’il ne peut rien, et ne prétendra jamais être efficace. Tor est le Superman de l’anonymat en ligne, et à l’instar de celui-ci, il évitera sa Kryptonite comme la peste.

C’est pour se prémunir de ce cas de figure bien connu que les relais sont choisis aléatoirement, qu’il est important que leur nature, origine, fournisseur d’accès internet et propriétaires soient aussi divers que possibles, c’est également pour éviter cela que la notion de « Entry Guard » a été introduite.

Bref, ce n’est pas nouveau, et il existe un paquet de dispositifs sensés rendre ce cas de figure aussi mathématiquement improbable que possible, afin d’assurer l’anonymat des communications transitant via Tor.

Ce que Filiol nous expose est certainement intéressant s’il permet de ne pas avoir à compromettre les trois relais de la communication à la fois. Ce faisant, il rendrait inutiles les dispositifs d’Entry Gard et l’architecture même du réseau Tor, et en accord avec la définition communément acceptée d’une sécurité « cassée », il aurait effectivement « cassé » Tor en exposant un nouveau moyen plus facile et efficace de compromettre une communication.

…sauf qu’en fait non.

…ou pas ?

S’il est bien connu que Tor ne peut intrinsèquement pas protéger ses utilisateurs contre une communication dont au moins le premier et le dernier relais sont compromis, la fameuse « attaque » de Tor commence par « une fois le premier et le dernier relais compromis… »

Mais voyons en détail, et dans son ensemble, le raisonnement de Filiol.

La première partie de son attaque était de lister les Bridges Relays du réseau Tor, sensés être confidentiels. Ceci afin de soit les blacklister, soit les cibler pour les compromettre. (comment ? pourquoi ? l’histoire ne le dit pas.)

La seconde partie visait elle à rendre le réseau plus facile à compromettre, en réduisant le nombre de relais actifs en ligne, et réduisant donc également le nombre de relais à compromettre pour qu’un même attaquant contrôle la majorité du traffic.

La troisième et dernière partie est décrite comme suit :

  • Filiol affirme qu’il y a environ 50% de relais tournant sur des sytèmes Windows.
  • Filiol estime qu’environ 80% de ces 50% seraient donc vulnérables d’une façon ou d’une autre à un exploit permettant une prise de contrôle à distance de la machine. À savoir: une faille de sécurité importante dans Windows. (Notez qu’il ne précise pas laquelle, c’est ici pure conjecture.)
  • Filiol part du principe qu’il lui serait possible d’infecter ces 40% du réseau Tor (80% de 50% = 40%), et qu’en ciblant les relais tournant sous Linux/Mac osx/BSD/Solaris (sisi !)/autres, il parviendrait à que les 50% de relais tournant sous Windows deviennent 60, 70, 90 voir 100% des relais en ligne, augmentant donc le rendement de son attaque (80% de 100% = 80%, pour ceux qui n’ont rien suivi)
  • Une fois qu’il a en sa possession environ 80% des relais du réseau Tor, il y injecterais un virus de sa confection, chargé de modifier le logiciel Tor exécuté par les relais, pour, en simplifiant, désactiver le chiffrement des communications entre relais.

Il était une fois…

…dans une contrée très lointaine, un monde où les deux premières parties de l’attaque soient pratiquement utilisables, et utiles pour la suite de son attaque.
Un monde où toute théorie s’applique à la perfection, et où les approximations et postulats de Filiol sont parole d’Évangile.

Même dans ce monde, son attaque rencontrerait quelques problèmes majeurs.

Pour commencer, la sélection aléatoire des Relais lors de l’établissement d’un circuit par le client (cad. l’envoyeur) tient compte de leur capacité de bande passante. En clair, ça veut dire que plus un relais a de la bande passante, plus il sera sollicité.
Ceci ayant pour conséquence que, les relais ayant le plus de bande passante tournant sur Linux/BSD, quand Filiol soustrait 50% de relais Non-Windows, il retire environ 80 à 95% de la capacité de bande passante de tout le réseau Tor. (Il faut de sacrés moyens pour y arriver, mais on évolue ici dans un monde magique, donc chut.)

A ce moment précis de l’attaque, il reste environ 10-15% de capacité de bande passante, devant gérer l’exacte même demande en bande passante. (Filiol s’attaque aux relais, il n’a aucun moyen de réduire le nombre de gens à travers le monde ayant envie/besoin d’utiliser Tor). En clair, et même en rajoutant un grand nombre de serveurs à lui pour gérer du traffic, la quantité de données transitant par le réseau est telle qu’il se retrouverait avec environ 1 à 3% de relais actifs par intermitence de quelques secondes à quelques minutes.

S’il n’y a pas de réseau Tor utilisable, il n’y a pas de réseau Tor à compromettre. Encore moins quand les machines piégées destinées à le compromettre sont victimes d’un DDoS au centre duquel elles se sont elles-même placées. (Bien joué, Mr. le Directeur de centre de recherche de l’ESIEA ! J’ai hâte de jouer aux échecs avec vous :))

De plus, même dans ce monde imaginaire, il ne semble pas très sérieux de prétendre avoir une nouvelle « attaque » compromettant les communications Tor, quand celle-ci prend pour point de départ une situation déjà considérée comme un Échec et Mat par les développeurs de Tor eux-même, depuis environ… 2003 ?

Car il me semble utile d’insister que dans un scénario où un attaquant a déjà compromis au moins le premier et le dernier relais de la communication, j’ai déjà expliqué dans mes articles précédents qu’il n’y a pas besoin de déchiffrer les transmissions pour en découvrir le contenu et la provenance/destination.
Pourquoi dès lors prendre la peine d’interférer avec le logiciel Tor exécuté par ces relais, quand il suffit d’écouter ce qui se passe sur les interfaces réseau, et de regarder ce qui entre/sort du relais en temps réel ?

Pour affirmer que ce procédé soit nouveau, Filiol ne semble pas s’être attardé sur l’analyse du Threat Model de Tor lors de ses travaux de recherche.
Pour ceux qui ne sont pas familiers avec les méthodologies de recherche scientifique, disons que cette étape se trouve quelque part entre « lire la page Wikipedia de l’outil dont on va faire un travail de recherche » et « lire les précédents travaux académiques faits ces 10 dernières années sur le sujet pour être au courant de ce qui a déjà été dit et établi.»
Deux autres étapes sur lesquelles Filiol ne semble pas s’être attardé non plus.

Voici trois ressources qui, si elles avaient été consultées avec attention, auraient évité beaucoup d’erreurs de jugements et d’approximation dans les affirmations de Filiol :

Pour la petite histoire, le dernier lien aurait permis à Filiol de ne pas prétendre avoir listé « tous » les 128 Bridge Relays du réseau tor, quand les statistiques publiques en comptent 600.

Reality Check.

Retour au monde réel que nous connaissons et qui régit, rappelons le, le réseau que l’« attaque » de Filiol tente de compromettre.

Comme précisé dans mon article précédent, tenter de mettre hors ligne des pans entiers du réseau Tor n’est pas quelque chose qui passerait inaperçu. Je n’imagine pas que les quelques personnes gérant les « Directory Autorities » de Tor (les annuaires, si vous voulez) restent les bras croisés pendant le processus, alors qu’ils regardent chaque jour le nombre et la nature des nouveaux noeuds mis en ligne sur le réseau Tor.

De plus, les chiffres et proportions données par Filiol sont au mieux idéalistes, et je m’étonne qu’il affirme publiquement qu’une des étapes vitales et capitales de son attaque soit, simplement « posséder un exploit pour une faille de sécurité affectant 80% des Windows dans le monde en ne nécessitant que l’adresse IP de la cible pour s’y introduire. ».
Rien que ça ?
Si je ne remet pas en cause la réputation d’insécurité de ce système, je me contenterai de faire remarquer que ce n’est pas exactement le genre d’exploit qui pousse sur les arbres, et quand bien même un jour un tel exploit soit découvert, la sécurité du réseau Tor sera la moindre de nos préoccupations.

Enfin, et même si Filiol semble prêcher la « sécurité par la transparence » — en évoquant les Bridge Relays dont la nature implique qu’ils n’ont aucun intérêt s’ils sont publiques — il s’est systématiquement refusé à révéler le code source ou même le moindre exemple d’implémentation de son fameux virus destiné à « désactiver le chiffrement des relais Tor » (je simplifie)

Petite remarque : Ce que j’évoque ici est l’éternel débat, pourtant obsolète, de ce qu’on appelle la « Security through obscurity. », c’est à dire la sécurité par l’obscurité.
Il s’agissait d’un dogme prévalant jusque dans les années 70-80, où on supposait que la meilleure façon de s’assurer qu’on avait un moyen de chiffrement/sécurité inviolable était de s’assurer que personne ne sache comment il fonctionne.

Plus tard, quand les informations sont devenues plus faciles à échanger, et que la société a réduit les distances informationnelles, les agences gouvernementales et services secrets se sont vite aperçus qu’il était illusoire de garder secret la mécanique d’un procédé de chiffrement/sécurité très longtemps.
Utiliser des systèmes dont le secret est le fonctionnement est donc une pratique qui a progressivement disparu.

A la place, on a choisi des systèmes dont le fonctionnement est public et visible par tous, mais dont le secret soit une clé de chiffrement (ou un équivalent), différente pour chaque utilisation. Ainsi, on réduit l’information critique à une simple clé plus facile à garder secrète et à remplacer en cas d’accident, et on a plus de confiance en son procédé de sécurité car si le monde entier peut le voir, et qu’aucun chercheur, expert ou hobbyiste ne parvient à le mettre à mal, ça semble indiquer que les services secrets d’en face n’en sont probablement pas capable non plus. Et si un jour quelqu’un devait trouver un moyen de casser le chiffrement, ils seraient rapidement au courant, et pourraient s’adapter.

Vous comprendrez donc mieux pourquoi, dans le monde de la sécurité, le terme Security Through Obscurity est une sorte d’insulte désignant un système dont la philosophie est issue du siècle dernier, et qui n’a plus beaucoup sa place de nos jours.

Que Filiol prétende que garder les Bridge Relays secret corresponde à de la Security Through Obscurity reviens à peu près à dire que PGP/GPG est un système opaque, parce que la clé de chiffrement qu’on utilise pour signer/chiffrer des données n’est pas une donnée publique. Alors que, tant pour PGP/GPG que pour Tor, tout le modus operandi est publique et lisible par tous, seules les données confidentielles générées par son utilisation le sont, de la même façon qu’il ne doit pas exister un moule de la clé de votre porte d’entrée sur la place publique.
Que Filiol critique Tor pour son « opacité », alors qu’il refuse de publier le code source, ni même la moindre preuve de l’existance de son « virus », semble… pour le moins ironique 🙂

Ce fameux logiciel n’a peut-être jamais fonctionné ni même existé, mais heureusement pour Filiol, cette étape est absolument futile étant donné — je le répète — que n’importe qui ayant lu mon article, ou la page wikipedia de Tor aura compris qu’en possédant au moins le premier et le dernier relais d’un circuit Tor, il n’est pas nécessaire de le déchiffrer pour en dévoiler le contenu.

Malheureusement pour Filiol, c’était la seule et unique partie de l’attaque dont il est l’auteur.

Mais au final, c’est tout de même une attaque qui pourrait, dans certains cas théoriques, être efficace, donc pertinente, n’est ce pas ?

Absolument, si demain quelqu’un rédige une recherche scientifique dans le domaine médical, et prétend avoir découvert un tout nouveau moyen révolutionnaire de tuer quelqu’un : « lui planter un tournevis dans la gorge ! », et qu’on ignore le fait que depuis au moins 3500 ans l’homme a appréhendé le fait que « truc pointu dans la gorge = mort », alors oui, le travail de Filiol peut être considéré comme « original » et « non-trivial ».

Pour le reste d’entre nous, de la communauté scientifique, et d’experts en sécurité informatique, ça fait bientot 10 ans qu’il est communément accepté que « premier et dernier relais compromis = anonymat compromis ».
Que ça soit en écoutant les interfaces réseau, en altérant le fonctionnement du binaire chargé en RAM, en branchant le cache du CPU à un fax ou en apprenant à un singe à crier à voix haute ce qui passe par de la fibre optique connectée à son nerf optique, ce n’est plus que de la sémantique autour du fait que ce cas de figure a déjà été décrit et documenté en 2003 quand le projet est devenu public pour la première fois.

Courte analyse d’un fiasco académico-médiatique

Que s’est-il passé ? Comment en est-on arrivé là ?

De mon point de vue, l’explication la plus simple, et probablement pas la plus flatteuse, serait que Filiol avait pour responsabilité de diriger un travail de fin d’étude assigné à quelques uns de ses étudiants.
Filiol leur aura donné comme sujet « mettre à mal l’anonymat de Tor », comme beaucoup de chercheurs outre-atlantique le font eux aussi. Car je le rappelle, c’est un aspect important d’un procédé de sécurité que d’être en permanence scruté par des chercheurs, mathématiciens ou informaticiens, afin d’être certain que personne n’a encore trouvé une faille remettant la technologie en question.

Toujours selon moi, ces étudiants guidés par Filiol auront modestement mis au point une méthode imparfaite pour lister une partie des Bridge Relays, et probablement pensé ou mis au point une méthode pour exploiter différemment le cas de figure où on a déjà pris le contrôle des relais importants d’une communication Tor.

En soi, ce n’est pas un mauvais travail de fin d’études, c’est même certainement intéressant à traiter, et ça a certainement appris beaucoup de choses à ces jeunes étudiants sur ce qu’est Tor, et comment rédiger un travail académique.

Là où les choses ont mal tourné, c’est tout d’abord que Filiol ne semble pas avoir corrigé ses étudiants quant à la validité du référencement des Bridge Relays, n’ayant vraissemblablement pas lu la documentation fournie par les développeurs de Tor, qui détaille la stratégie de distribution de relais. D’où la détection de 128 Bridges alors qu’il est publiquement anoncé qu’il y en a entre 500 et 600 actifs en permanence.

Ce sont des choses qui arrivent, surtout quand un directeur de recherche se contente de pointer du doigt et de lire en diagonale le travail de ses chercheurs/étudiants, sans se documenter sur la nature du sujet, ni accompagner attentivement ce processus.

Ce qui n’est pas admissible, cependant, c’est que Filiol s’approprie l’entièreté du travail, ne citant ses étudiants qu’épisodiquement, parlant à leur place, et décide de porter tout cela aux médias comme s’il s’agissait du nouveau bug de l’an 2000, ou plus récemment de la faille SSL de debian.
Tout dans ce travail crie « travail formateur de fin d’études fait par de jeunes étudiants », aucune part de ce travail n’est originale, spécialement pertinente, ni méritoire de la moindre attention médiatique. Ce n’est pas son objectif. Son objectif est de servir à des étudiants à s’introduire au monde académique de la recherche, en s’attaquant à un morceau de viande pas trop difficile à mâcher, sans être complètement trivial non plus.

Tous les travaux de recherche ne sont pas bons à présenter au Brésil, au Japon, et encore moins en Allemagne au CCC, peu importent les pressions d’investisseurs, peu importe le contexte malsain du monde de la recherche en France, peu importent les tensions dont Filiol a pu faire l’object pour « sortir un papier médiatisable pour générer un peu de prestige, de visibilité dans les médias, d’argent ».
Filiol aurait du garder la tête froide, et reconnaître que ce n’est pas avec ce travail académique là qu’il relancera sa carrière, redorera la moindre réputation du moindre établissement, ni rendra le moindre service à ses étudiants dont il va présenter sur trois continents différents les fautes qu’il n’a pas su corriger.

Je n’ai rien contre le personnage de Filiol, et plusieurs de mes amis m’ont répété qu’il avait fait d’autres choses intelligentes à coté, qu’il n’était ni complètement stupide, ni complètement incompétent.
Cependant, dans ma vision du monde, le meilleur moyen d’avoir un écosystème scientifique, intellectuel et académique sain, c’est de gifler les gens compétents avec les inepties qu’ils produisent, jusqu’à ce qu’ils les corrigent ou les retirent.

Ainsi, on augmente la proportion de signal/bruit, et on pousse des individus brillants dans leur domaine à donner le meilleur d’eux-même, ou de s’améliorer.

To be continued ?

Oct 292011
 

Dans mon article précédent, j’évoquais l’empressement de la presse francophone à relayer et appuyer le message selon lequel Tor serait compromis.
J’ai tenté d’expliquer pourquoi une telle déclaration n’est pas à faire à la légère, les répercussions qu’auraient une vulnérabilité réelle et intrinsèque au réseau Tor, et pourquoi tant de chercheurs s’intéressent à cette technologie de si près.

J’ai également voulu apporter un regard critique sur les allégations faites, et la réalité technique de ce que Eric Filiol, directeur de recherche à l’ESIEA, prétend avoir découvert comme faille.

Cet article se positionne dans la continuité directe dudit article précédent, et abordera cette fois-ci la seconde « faille » que Filiol dit avoir découvert dans Tor, à savoir rediriger le traffic Tor de cibles potentielles vers des relais compromis, en créant de la congestion dans les autres relais, et rendant les relais « sains » indisponibles.

avertissement

Comme dans mon article précédent, je vous conseille vivement d’avoir lu mon article déblayant des notions fondamentales du fonctionnement de Tor.

Ces notions ne sont pas bien complexes, mais sont nécessaires à comprendre la réalité de ce que Filiol et son équipe avancent.

Mon but est que, après avoir lu mes articles, chacun puisse débattre de la fiabilité du reseau Tor, et de la réelle menace que l’attaque de Filiol constitue. Pour cela, il est indispensable que chacun ait compris la technologie sous-jacente. Ne serait-ce que dans son principe général.

J’en profite d’ailleurs pour vous rappeller qu’il en va de même pour toute technologie de sécurité informatique : votre confiance en celle-ci doit être proportionnelle à votre compréhension de la technologie.

Ne vous fiez pas à une technologie parce qu’un expert vous dit qu’elle est fiable. Fiez vous à une technologie parce que vous comprennez qu’elle est suffisamment solide pour l’utilité que vous en faites.

Les experts se trompent, ne sont pas toujours objectifs, et sont parfois opaques.
S’il en était autrement, ces articles n’auraient pas besoin d’exister.

Tor et les relais compromis

Comme décrit dans mon article explicatif de Tor, Tor est une technologie reposant sur aux minimum 3 relais choisis au hasard dans le réseau Tor. Les messages que vous voulez envoyer à une destination sont chiffrés autant de fois qu’il y a de relais, et chaque relais ne peut déchiffrer que le niveau de chiffrement lui étant destiné.

Source (vous) -> Relais1 -> Relais2 -> Relais3 (en clair) -> Destination (votre correspondant)

À chaque fois qu’un relais reçoit l’information, il la déchiffre avec sa clé, et passe le résultat au relais suivant, qui fera de même, jusqu’à ce que Relais3 déchiffre le dernier niveau de chiffrement, et envoie l’information en clair à la destination.

Ceci est fait pour qu’il soit impossible à aucun des trois relais de connaître à la fois le contenu, la destination et l’origine de l’information (vous).

C’est donc pour cela qu’on dit que Tor permet d’utiliser des relais pour vos communications, sans avoir à faire confiance en ces relais. Même si un de ces relais est en fait un mouchard, s’il est à la position du Relais1 ou du Relais2, il ne peut pas déchiffrer le message entièrement, et n’a donc aucune idée ni du contenu du message, ni de sa destination réelle (que seul Relais3 découvrira quand il déchiffrera le message avec sa clé), s’il est à la place de Relais3, il connaitra le contenu et la destination, mais pas l’origine, il lui sera donc impossible de vous identifier. S’il est à la place du Relais2, il ignorera tout : le message, l’origine, et la destination.

Notez que si vous avez chiffré votre message par SSL ou autre avant de l’envoyer via Tor (en contactant un site via son adresse https:// par exemple), le Relais3 ne possèdera que cette information chiffrée par SSL, et ne connaitra donc pas le message en clair non plus.

Si vous avez compris ceci, vous verrez donc qu’aucun relais ne peut trahir l’anonymat de la communication, mais s’il arrivait qu’une même personne parvienne à corrompre au moins deux des trois relais (le premier et le dernier, en règle générale), elle pourrait connaitre qui a envoyé une information à travers Tor (le premier relais est en contact avec l’origine de l’information : vous), ainsi que le contenu de votre message (s’il n’était pas chiffré), mais surtout la destination de votre message, ces deux informations étant révélées par le 3eme relais.

Si l’attaquant ne possède que deux des trois relais, il lui faudra deviner et reconnaitre que le trafic envoyé du Relais1 au Relais2 (qu’il ne possède pas), et reçu du Relais2 au Relais3 est bien le même (Rappelez-vous, ces données ont été déchiffrées par le Relais2 entre-temps, les paquets d’information ne sont donc plus les mêmes)
En faisant des attaques statistiques, il est possible de reconnaître le trafic assez effectivement, contrairement à ce que je pensais en rédigeant le premier article.

Si l’attaquant possède les trois relais, la communication peut être tracée de vous vers votre correspondant, et de votre correspondant à vous avec une probabilité d’exactement 100%.

En d’autres termes, ces deux scénarios entrainent une défaite totale de l’anonymat.

C’est donc le vecteur d’attaque le plus couramment évoqué pour corrompre l’anonymat d’une communication Tor, mais également le scénario que le logiciel de routage doit éviter à tout prix.
Pour ce faire, l’équipe de Tor doit s’assurer que le choix des relais à travers lesquels faire passer la communication dans le réseau Tor soit bel et bien déterminé au hasard, et qu’il y en ait assez pour que la probabilité d’en choisir 2 ou 3 au hasard parmi des relais mis en ligne pour servir de « pièges » (honeypots ou mouchards) soit extrêmement faible.
Pour renforcer le tout, ils ont également introduit la notion d’Entry Guard, diminuant drastiquement la probabilité de choisir un Relais1 qui ait été compromis par la même personne que le Relais3.

Vous l’aurez compris, tracer une route pour vos communications à travers des relais « sains » est un enjeu principal ici, si pour une raison ou une autre ce choix de relais se trouve compromis, Tor est battu.

Si une notion de ce bref rappel vous échappe ou n’est pas claire, tout ceci est détaille dans mon article explicatif de Tor. N’hésitez pas à aller le lire, au risque de me répéter, si tout ceci n’est pas limpide, lire la suite de l’article ne vous apportera rien.

Comment forcer une route compromise

À ma connaissance, il n’existe que trois procédés pour y arriver.

truquer le choix des relais au niveau du client

C’est l’approche la plus directe et la plus évidente.

Elle consisterait à altérer le fonctionnement du logiciel Tor installé sur votre machine, et de truquer son choix de relais censé être aléatoire, afin qu’il choisisse toujours une route composée de relais compromis par l’attaquant, même s’il sont extrêmement peu sur le réseau.

Ceci peut être accompli de deux manières :

  • infecter votre ordinateur par un virus spécialement conçu pour affecter le comportement de Tor
  • Ceci permettrait à l’attaquant de prédéfinir le tracé de vos communications à travers Tor, mais également d’observer ce que vous envoyez à travers Tor avant que la communication ne soit chiffrée. C’est donc un échec et mat immédiat.

    Gardez un système à jour, et si possible, n’utilisez pas Windows pour des communications « sensibles » 😉

  • vous fournir une version altérée du logiciel Tor
  • Ce procédé-ci consisterait à vous fournir une version du logiciel dont la sélection des relais ne soit pas aléatoire mais fixée à des relais compromis par la personne vous fournissant le logiciel. Cela semble impensable, mais c’est en réalité réalisable.
    Pour s’en prémunir, vérifiez toujours, absolument toujours le checksum du logiciel Tor que vous téléchargez avant de l’installer. Ce checksum est une valeur de vérification de l’intégrité du fichier affichée sur le site, assurant que le fichier n’a pas été altéré ou remplacé pendant que vous le téléchargiez. (attaque Man-In-The-Midle).
    Vérifiez également que le site duquel vous avez récupéré le fichier et vérifié le checksum n’est un une falsification (phishing), à l’aide de certificats.

compromettre tous les relais Tor

Si tous (ou plus de 80 ou 90%) des relais Tor sont compromis par une même personne, peu importe si le client choisit bien des relais au hasard dans le tas, la probabilité de tracer une route composée de deux ou trois relais compromis devient énorme.

Ceci dit, les statistiques publiques du réseau Tor nous révèlent qu’il y a actuellement plus de 2500 relais tor différents en ligne. Il n’est donc pas réalisable, en pratique, d’espérer compromettre 2000 à 2300 de ces relais sans que personne ne s’en aperçoive, ni d’espérer en mettre 10 000 compromis en ligne du jour au lendemain pour contre-balancer la proportion, sans que cela paraisse suspect.

Cette dernière hypothèse est d’autant plus improbable que Tor ne route pas le trafic en fonction du nombre de nœuds en ligne, mais bien de leur capacité. Mettre en ligne 10 000 nœuds tor pour espérer que Tor établisse souvent des routes entières composées de deux à trois nœuds compromis ne suffirait pas, il faudrait mettre en ligne l’équivalent de plusieurs fois la bande passante totale du réseau.

C’est à la fois invraisemblable, et très peu discret.

diminuer le nombre de relais tor présents sur le réseau

Comme mis en évidence dans le point précédent, ce qui fait la force de la sélection aléatoire de relais Tor parmis les nœuds présents sur le réseau, c’est leur nombre.

Leur nombre garantit qu’il sera toujours très difficile d’en compromettre la majorité. La présence de plusieurs nœuds ayant de très grosse bande passante garantit qu’il sera toujours relativement difficile et couteux de parvenir à déséquilibrer la proportion de bande passante passant par des relais « sains » et celle passant par des relais « compromis ».

Cependant, un équilibre est un compromis, et tout compromis, comme tout équilibre, peut être renversé si un effort suffisant ou les conditions le permettent.
Le compromis est jugé efficace si les conditions pour le déséquilibrer sont suffisamment difficiles à mettre en place.

L’approche la plus audacieuse, mais aussi la plus utopique, est donc de chercher un moyen de réduire le nombre de relais en ligne. Soit en les déconnectant du réseau, soit en les surchargeant.

C’est le vecteur d’attaque que Filiol semble avoir choisi.

Le packet spinning

Le « Packet Spinning » est une des méthodes que Filiol présente dans son attaque.

Derrière ce nom barbare se cache en réalité un procédé plutôt ingénieux.

l’établissement d’une route Tor

Lorsqu’une route Tor est décidée, elle est créée par incrément.

Le Client décide qu’il utilisera les nœuds Relais1, Relais2 et Relais3 pour sa route, choisis au hasard dans le réseau Tor.
Une fois cette sélection faite, le Client contacte le Relais1, et effectue un échange de clés publiques (afin de pouvoir envoyer des données chiffrées que seul Relais1 pourra déchiffrer)

Ensuite, le Client envoie à Relais1 un paquet spécifique appellé « Extend Cell », qui sert à « rallonger la route » d’une unité. Ce paquet contient les coordonnées du Relais2, pour que Relais1 sache que pour cette connexion établie, il devra tout acheminer vers Relais2.

Le Client envoie ensuite un second paquet qui rallongera la route d’un intermédiaire, ce paquet passera par Relais1, et sera lu et interprété par Relais2, qui connaîtra désormais les coordonnées du Relais3.

Une fois la route complètement définie, la transmission vers le correspondant peut commencer, et les paquets de cette connexion passeront toujours par ce même itinéraire.

l’attaque

L’attaque dite par Packet Spinning consiste à exploiter le fait qu’il est virtuellement possible de rajouter des HOPs (relais) à l’infini, et de mettre plusieurs fois les mêmes dans une même route.

Ceci a pour résultat de faire circuler un même paquet d’information dans une boucle (presque) infinie, et créer une charge énorme sur les relais désignés.

Pour illustrer, voici à quoi ressemble une route créée par un client Tor « sain » :

Client -> Relais1 -> Relais2 -> Relais3 -> Destination

et voici à quoi ressemblerait la route d’une attaque par Packet Spinning :

Client -> Relais1 -> Relais2 -> Relais3 -> Relais4 -> Relais1 -> Relais3 -> Relais1 -> Relais5 -> Relais3 -> Relais1 -> Relais2 -> Relais3 -> (…)

On voit par exemple que les Relais1 et Relais3 apparaissent plusieurs fois, et feront donc circuler plusieurs fois le même paquet, sans s’en douter, puisque celui-ci change à chaque passage de Relais (vu qu’il y est déchiffré)

Concrètement, si on établit une route circulaire où chaque relais apparaît 100 fois, pour 1mo de données envoyées à travers cette route, chaque relais devra traiter 100mo.

On se rend bien compte qu’il s’agit ici d’un moyen extrêmement efficace de surcharger des pans entiers du réseau Tor avec seulement une infime fraction de la bande passante que les relais possèdent, de par la facilité de la retourner contre-eux.

la parade

C’est ici que ça se corse.

Pour faire court, il n’y en a pas d’efficace.

L’attaque a cependant été rendue plus difficile à mettre en place par les développeurs de Tor.

En effet, les paquets de « rallongement de route » ne sont pas chiffrés. Du moins pas entièrement.
Les premiers relais de la route, aussi appelés Entry Guard, savent qu’ils sont les premiers de la route. Il est donc de leur responsabilité de compter les requêtes de rallongement de route qui passent. S’ils en voient plus de trois passer, dont celle qui leur était adressée, ils coupent la connexion immédiatement, afin d’éviter des routes à rallonge qui pourraient surcharger tout le réseau.

Ce procédé n’est malheureusement pas infaillible.

Il est effectivement possible d’utiliser « Tor dans Tor » : créer une route « normale et saine » Tor, à travers laquelle on fera passer les « Extend Cells ». Ces requêtes ne passeront donc par aucun Relais en clair avant d’arriver au dernier relais de la route à rallonger.
C’est plus fastidieux, mais c’est possible.

Il n’existe actuellement pas de parade absolue au Packet Spinning dans le protocole Tor, principalement parce que c’est un défaut intrinsèque à tout procédé d’anonymat par le chiffrement dans plusieurs relais.

Cependant, ce genre d’attaque ne passerait pas longtemps inaperçue, étant donnée sa nature. Il ne faudrait pas plus de quelques heures pour que les premiers relais se mettent à filtrer les origines de l’attaque, réduisant exponentiellement son efficacité au fur et à mesure.
Cette mesure n’est pas absolument efficace non plus, vu la difficulté pour les relais d’identifier l’origine des requêtes reçues (ce qui est le principal avantage de Tor, il me semble nécessaire de le rappeler)

En clair, il serait bel et bien possible pour une organisation ayant assez de moyens à disposition de sérieusement perturber le transit du réseau Tor pendant plusieurs heures, voir même forcer le réseau à s’écrouler sur lui-même et le rendre inopérant pendant plusieurs heures.

une parade ? mais Filiol n’a pas encore révélé les détails de son attaque !

Et c’est là que le bas blesse.

Si cette attaque est réellement ingénieuse, et un des seuls moyens connus de réellement entamer la disponibilité de Tor pendant un intervalle de temps relativement important, Filiol ne l’a absolument pas inventé, ni même mise au point.

Cette attaque a en réalité premièrement été décrite en septembre 2008 par Vasilis Pappas, Elias Athanasopoulos, Sotiris Ioannidis, et Evangelos P. Markatos, lors du 11ème Information Security Conference (ISC 2008).

Ceux voulant lire les détails de cette attaque astucieuse et très intéressante peuvent trouver l’étude ici.

Les lecteurs informés ou attentifs auront remarqué que j’ai légèrement simplifié le principe de l’attaque par souci de simplicité (notamment la nécessité d’utiliser un Entry Guard compromis)

Eric Filiol ayant la fâcheuse tendance de déclarer qu’il est le premier académique au monde à avoir abordé Tor en tant que « réseau » et d’avoir « mis au point » une attaque l’exploitant en tant que tel, ferait bien de citer ses sources lorsqu’il présentera « son » attaque les 29 et 30 octobre à São Paulo lors de sa conférence « Hackers to Hackers ».

Il est déjà inquiétant de voir qu’il prétend être le seul a aborder Tor en tant que réseau (ignorant plus d’une dizaine d’autres travaux, j’y reviendrai dans la prochaine et dernière partie de mon article), mais il serait assez grave de sa part de prétendre ignorer l’existence des travaux de recherches de ses confrères en 2008 dont il réutilise la terminologie de « Packet Spinning », ou du moins de ne pas préciser très clairement que cette attaque n’est pas de lui, et de revoir ses déclarations. En effet, l’étude dont il recycle les résultats et l’attaque est indéniablement une étude étudiant et attaquant Tor en tant que « réseau » et non plus « un nœud à la fois », trois années entières avant que Filiol vienne déclarer être le premier sur la balle.

S’il ne veut pas se retrouver avec des échardes de plagiat enfoncées dans son CV ainsi que sa page Wikipedia, il ferait donc bien d’être beaucoup plus prudent lors de ses présentations et déclarations à venir.

Est-ce que ça « casse » Tor ?

En théorie, ça le fragilise. En réalité, pas exactement.

Tout d’abord, même en supposant qu’une organisation assez organisée et ayant suffisamment de ressources parvienne à mettre hors service assez de nœuds, tout en mettant en ligne assez de nouveaux nœuds assez dispersés géographiquement pour ne pas être tous blacklisté par les gestionnaires de nœuds Tor attentifs, et que les nœuds Tor compromis soient assez nombreux et aient assez de bande passante pour être privilégiés lors de la création d’initéraires au sein du réseau Tor… ils ne feraient que se mettre hors-service.

En effet, même en supposant qu’une organisation parvienne à mettre tout ceci en place, elle devrait alors faire face à tout le débit supporté par l’infrastructure Tor « intacte » avant de tomber, qui cherchera à se re-router par les seuls nœuds restant en ligne. Si ce scénario est celui recherché par l’attaquant, et garantirait un haut taux de communication passant intégralement par des relais compromis, ces relais compromis receveraient tellement de requêtes en un intervalle si court de temps que l’issue la plus probable d’un tel procédé serait une surcharge colossale des nœuds compromis, probablement au point de ne même pas arriver à établir une seule route à travers les nœuds compromis (l’établissement de la route ayant un timeout de 60 secondes).

Pour que cette attaque soit efficace, il faudrait que l’attaquant déploie au moins une, voire deux ou trois fois la bande passante totale des 2500 nœuds présents avant l’attaque, sachant que bon nombre d’entre-eux ont une capacité de bande passante abyssale.

Conclusion

Nous avons donc vu que si cette attaque est redoutable pour perturber le bon fonctionnement du réseau Tor pendant un intervalle plus ou moins long avec relativement peu de ressources, il ne semble pas applicable de façon réliste à une un déploiement en situation réelle.

Il reste néanmoins que ce procédé fonctionne parfaitement en conditions simulées avec des proportions de bande passante à contrôler beaucoup plus équilibrées.

« Équilibré » est ici le mot clé.
La meilleure parade à cette attaque reste dans le fait qu’il serait démesurément couteux et complexe de mettre en place une infrastructure capable a la fois de faire passer assez de transit pour que le réseau privilégie ceux-ci, et de tenir la charge. (compte tenu du nombre de nœuds légitimes présents sur le réseau, de la capacité très importante des plus importants d’entre-eux, et du trafic constant circulant à travers Tor et qui cherchera à se re-router sur ces nouveaux nœuds, les surchargeant)

Cette attaque, comme la précédente, ne fait que nous confirmer la nécessité d’assurer la résistance du réseau Tor et sa fiabilité en hébergeant et en ayant le plus de nœuds possible sur le réseau, et si possible une bande passante conséquente pour qu’il soit encore plus difficile de renverser la balance vers un sous-réseau malicieux.

De plus, j’insiste sur le fait que pas le moindre aspect de l’attaque à laquelle j’ai ici consacré un article entier, et plus de 3500 mots, n’est issue d’Eric Filiol dans la moindre mesure possible.
Tout ceci a été décrit et présenté en 2008, plus de trois années entières avant que Filiol ne déclare être le premier à aborder Tor en tant que réseau dans une attaque, ce que —il me semble— cette attaque fait déjà.

Pas de quoi remettre en question la fiabilité du réseau Tor ici, donc, si ce n’est avoir une vision plus précise de ses limitations, et du fait qu’il est plus facile à perturber qu’on le pensait il y a quelques années.

Je conclurai donc en disant que NON, ce second « tiers d’attaque » ne « casse » toujours pas Tor, et que NON, ceci n’est toujours pas un exploit méritant ni publication académique, ni battage médiatique.

Cet article en trois parties se conclura dans les jours qui viennent avec son épilogue, décrivant cette fois ci le dernier et plus flou des aspects de l’attaque de Filiol, ainsi qu’un point fait sur la crédibilité de son auteur.

Oct 242011
 

UPDATE : Il est intéressant de noter que Filiol prétend avoir recensé en tout 181 « Bridges » Tor avec son procédé, alors que les statistiques publiques du réseau montrent qu’il y en a au moins 500.

Eric Filiol est un expert français en sécurité informatique, spécialisé en virologie.
S’il a un CV et un parcours impressionnants, vous avez très certainement entendu parler de lui récemment dans un des nombreux articles où il prétends avoir brisé la fiabilité de la technologie d’anonymat Tor.

« La confiance dans le réseau d’anonymisation Tor est ébranlée »

C’est le titre qu’on a pu lire dans bon nombre d’articles de blogs, de sites d’actualités, ou de tweets.

Le fond de l’histoire est donc qu’un groupe de chercheurs français pense avoir démontré que le réseau Tor est vulnérable, peu fiable et est dangereusement indigne de la confiance qu’on lui porte.

Pour appuyer leurs déclarations, ceux-ci — Eric Filiol en tête — présenteront une démonstration de leur attaque le 29 et 30 octobre à São Paulo dans le cadre de la conférence « Hackers to Hackers ».

Si aucun des rédacteurs d’actualité, ou de blogs, ne semblent avoir voulu attendre la démonstration pour mesurer la pertinence des déclarations faites, je vais en faire de même, et proposer mon humble analyse préliminaire des propos tenus par Filiol jusqu’ici.
Je vais donc prendre le temps de détailler le contexte de la nouvelle, puis de méthodiquement expliquer en quoi les attaques de Filliol consistent une par une en faisant le point sur leur réelles implications pour la sécurité du réseau Tor, puis enfin d’évaluer la crédibilité de Filiol et de ses propos.

Les déclarations.

De l’article d’itespresso dont le contenu technique est plus qu’imprécis, il ressort plusieurs points principaux :

  • Avec son équipe, il aurait mis au point un « algorithme de scripts très complexes » pour dresser une liste des Entry Nodes (Bridges) Tor censés être secrets.
  • Avec son équipe, il aurait trouvé un moyen de déterminer à l’avance, et de forcer la route Tor qu’un client établirait, le forçant potentiellement à constituer une route de 3 relais Tor compromis.
  • Toujours à l’aide de son équipe, il serait arrivé au constat qu’une part importante de relais tournent sous des versions vulnérables de Windows, et aurait mis au point un virus capable de percer le chiffrement de Tor.

Ces trois déclarations peuvent se résumer en une seule phrase, lancée par Filiol lui-même, et qui à elle seule devrait provoquer un raz-de-marée dans l’univers de la sécurité informatique à l’échelle mondiale :

« Nous sommes parvenus à briser à la fois l’anonymisation et le chiffrement (…) Ce qui nous permet d’accéder à la totalité des informations claires. »

Pour ceux que ça intéresse, Filiol a illustré d’avantage ses déclarations dans une série de 3 vidéos publiées sur Dailymotion, passées relativement inaperçues. Elles n’apportent que peu d’informations supplémentaires, si ce n’est qu’elles sont plus claires que l’article d’un point de vue technique.
Partie 1 / Partie 2 / Partie 3

Les implications.

Pourquoi une telle déclaration est-elle si importante ?

Tor est un protocole et un outil permettant de garantir un anonymat extrêmement solide à vos communications sur internet. Il a été développé — comme bon nombre d’outils de sécurité informatique, y compris internet lui-même — dans un premier temps par l’armée navale américaine et est aujourd’hui un protocole et un logiciel libre.
Existant depuis 2002, son utilisation est largement répandue au sein des forces armées, des journalistes, des entreprises, des activistes ou blogueurs dont les idées et propos dérangent dans des pays où la liberté d’expression est à géométrie variable, ou des citoyens voulant simplement préserver leur vie privée.

Il est également dit que Tor aurait joué un grand rôle dans la diffusion d’informations lors du printemps arabe, où internet a été régulièrement victime de filtrages agressifs.

En un mot, c’est une technologie extrêmement utilisée, et sollicitée, sur laquelle beaucoup de gens reposent pour garantir leur anonymat, leur intégrité physique, ou même leur vie.

Annoncer que Tor est vulnérable, cassé, perméable ou qu’il n’est pas digne de confiance met des millions d’utilisateurs à travers le monde en danger potentiel, et impliquerait de revoir profondément la façon dont tous ces individus doivent garantir l’anonymat de leurs communications.

À juste titre, cette technologie est donc continuellement dans le collimateur de tous les experts en sécurité informatique du monde, ou du moins une quantité impressionnante de chercheurs, de doctorants, d’experts et de développeurs, une moitié d’entre-eux cherchant à découvrir la faille dans cette technologie qui leur permettra d’entrer dans l’histoire, et de marquer la fin d’une ère dominée par Tor, et l’autre moitié cherchant à améliorer cette technologie pour la rendre moins sensible aux divers moyens de blocage mis en place par des gouvernements totalitaires, et garantir au mieux la sécurité des citoyens s’abritant derrière ce bouclier technologique.

Depuis 2002, cette technologie est donc scrutée attentivement, au point de la connaître par cœur, d’en avoir identifié les forces et les faiblesses.
Depuis 2002, cette technologie reste inviolée, même si dans certains cas extrêmement improbables et pessimistes, il est possible de la fragiliser, son principe reste le plus solide et le plus fiable que l’on connaisse, et ce depuis 10 ans.

Déclarer avoir cassé Tor est probablement pour le monde de la sécurité informatique aussi éloquent que déclarer avoir prouvé que P = NP pour le monde des mathématiques, ou d’avoir cassé le chiffrement AES pour le monde de la cryptographie (ce qui est ironique dans notre cas, nous verrons plus tard pourquoi)

Comme pour ces deux analogues, régulièrement, un individu annonce avoir décroché le saint Graal, et le monde entier retient son souffle en vérifiant ses résultats, et de la même façon, en général ces résultats se révèlent soit inexacts, soit grandement exagérés.

Récapitulatif : Comment fonctionne Tor ?

Mon article va s’intéresser aux détails techniques revendiqués par les déclarations de Filiol et son équipe, et va donc analyser en profondeur le fonctionnement de la technologie Tor.
Si j’espère parvenir à toucher un public le plus large possible, et initier par la même occasion ceux qui ne connaissaient Tor que de nom jusqu’ici, pour pleinement comprendre et juger les propos qui vont suivre, il est impératif d’avoir lu mon précédent article au sujet de Tor, où j’explique le plus simplement et de la façon la plus imagée possible quel est le raisonnement derrière la technologie Tor, et quelles sont les garanties qui font sa solidité et sa fiabilité.

J’insiste : si vous n’êtes pas intimes avec la mécanique derrière Tor, lisez mon article « Some people just want to see the world TOR » (rédigé en français, malgré le titre)

Une fois cela fait, nous pourrons analyser ensemble les déclarations de l’équipe de Filiol.

Lister les Entry nodes (Bridges) secrets de Tor.

Cet article en plusieurs parties abordera ce point ci en premier, alors que les parties qui suivront approfondiront chacune une autre problématique soulevée par Filiol, par souci de clarté.

Pour vous rafraîchir la mémoire : un bridge est un point d’entrée au réseau Tor. Ils existent car la liste des points d’entrée au réseau Tor est connue et publique, beaucoup de pays oppresseurs sont donc souvent tentés de bannir toutes ces IP, afin d’empêcher leurs citoyens d’accéder au réseau Tor. Les Bridges sont donc des points d’entrée au réseau Tor qui ne sont pas répertoriés dans les listes publiques.

Où trouver des Bridges quand on en a besoin ?

La question est donc, s’ils sont si secrets, comment des dissidents peuvent-ils obtenir leurs coordonnées lorsqu’ils en ont besoin pour accéder au réseau Tor ?

La réponse est que par défaut, chaque fois qu’un Bridge est créé, il communique ses coordonnées, non pas aux listes publiques, mais à un serveur Tor qui les répertorie sans en révéler la liste à qui que ce soit.
Quand quelqu’un a besoin de joindre Tor, il n’a qu’à envoyer un mail à l’adresse bridges@torproject.org avec pour seul message « get bridges ». Le serveur de Tor choisira alors 3 Bridges aléatoirement dans la liste et les lui enverra par mail.
De cette façon, les gens qui en ont besoin peuvent obtenir des Bridges sans qu’il soit possible d’accéder à la liste complète d’un coup, ce qu’un pays oppresseur pourrait faire afin de bannir ces Bridges aussi facilement que les points d’entrée diffusés sur les listes publiques.

Quelle est l’attaque proposée par Filiol, alors ?

Après avoir lu le point précédent, il ne faut pas être Directeur du centre de recherche de l’ESIEA pour comprendre qu’en envoyant assez de demandes de nœuds Tor à d’adresse mail bridges@torproject.org, il finira, trois par trois, par nous envoyer la liste complète des Bridges, petit à petit.

Pour compliquer cette tâche, l’équipe de Tor a mis en place un filtre qui ignore toute demande ne provenant pas de gmail, yahoo, ou du MIT, et n’autorise qu’un certain nombre de requêtes pour chaque IP.
Le but ici est de compliquer la tâche d’un organisme voulant tous les répertorier pour les bannir : il n’est jamais revendiqué qu’il est impossible d’abuser de ce système et de garantir que personne ne créera 50 adresses gmails et passera deux mois à envoyer des mails en boucle au serveur pour épuiser sa liste. L’équipe de Tor rend juste ce processus suffisamment laborieux et lent pour que, le temps qu’une entité ait répertorié la majorité de la liste de Bridges « secrets », d’autres auront été rajoutés à la liste, probablement plus rapidement qu’il n’est possible d’en dresser la liste, en pratique.

L’ « attaque » de Filiol ne semble pas être plus élaborée que ça.
En effet, ce qu’il qualifie fièrement d’ « algorithmes de scripts très complexes » (sic.) mis au point par son équipe de chercheurs, n’est vraisemblablement rien d’autre qu’un petit programme ne dépassant probablement pas les quelques dizaines de lignes de code, à la portée de n’importe quel lycéen de 16-17 ans s’intéressant à la programmation en Perl, en une après-midi de travail.

Si vous ne me croyez pas, allez voir un programmeur de votre entourage, pas nécessairement expert en sécurité informatique, et demandez lui combien de temps et de lignes de code il lui faudrait pour automatiser l’envoi de mails, et dresser une liste des IP contenues dans les réponses reçues.
Pour un informaticien de profession, ça ne devrait pas prendre plus d’une heure de travail, même s’il n’est pas diplômé d’une École d’Ingénieur réputée.

À vrai dire, c’est un dispositif plusieurs fois moins complexe que celui nécessaire pour envoyer des volées de spams aux adresses mails récupérées grâce à google, qui inondent probablement le répertoire « Indésirables » de votre boite.

Pas de quoi crier à l’exploit, en soi.

Est-ce que ça « casse Tor » ?

Pas vraiment, non.

Comme décrit plus haut, avec assez de patience, il est évident qu’il est possible de répertorier les éléments de cette liste, et d’en bannir une partie. C’est un risque calculé par l’équipe de Tor, qui préfère avoir un moyen facile de distribuer des Bridges Tor à quiconque en fait la demande, quitte à ce que certains organismes passent des semaines à en demander pour espérer en bannir une partie.

Tout d’abord, comme je l’ai également évoqué plus haut, la tâche a suffisamment été compliquée pour espérer que le temps qu’une entité malveillante ait fait le tour de la liste, d’autres bridges aient été créés et injectés dans cette liste, rendant la « blacklist » établie caduque.

Ensuite, même s’il existait un moyen de récupérer tout le contenu de cette liste assez rapidement pour en bannir tous les éléments, Filiol semble ignorer qu’il est parfaitement possible de créer un Bridge Tor « secret » qui ne sera même pas annoncé sur la liste confidentielle de Tor.
En gros, ce Bridge ne sera connu que par la personne qui le crée, et donc dit « privé ». Libre à lui ensuite de le communiquer de façon confidentielle à des gens de confiance en ayant besoin, se l’échangeant entre cercles de confiance afin d’éviter qu’il ne tombe aux mains des censeurs.

C’est un moyen de diffusion un peu plus laborieux pour ceux en ayant besoin, mais c’est la démarche logique et justifiée dans un pays où des crimes de guerre sont commis à chaque coin de rue, et où les médias et journalistes sont persécutés.

C’est très facile à mettre en place, et expliqué dans la documentation de Tor.

Il suffit de rajouter ces deux lignes dans votre fichier de configuration torrc :

BridgeRelay 1
PublishServerDescriptor 0

La première activant le mode « Bridge » de votre logiciel Tor, et la seconde demandant que votre Bridge ne soit communiqué à personne, pas même la fondation Tor.

Conclusion

Il n’y a donc ici absolument pas lieu de s’inquiéter, et encore moins de crier avoir « ébranlé Tor ».
Non seulement il serait laborieux de dresser la liste des Bridges Tor présents dans la liste détenue par Torproject.org en espérant qu’entre-temps il n’y en ait pas eu de nouveaux ajoutés et qu’il faille en refaire tout le tour, mais en plus il en existe bon nombre qui ne sont listés nulle part, et qui ne peuvent pas être détectés aussi facilement.

Tout ce que Filiol fait ici, c’est nous rappeler pourquoi il est important de créer suffisamment de Bridges Tor, et d’en avoir quelques uns de « privés » à envoyer à des contacts de confiance se trouvant victime de persécution, par exemple.

Si possible, faire utiliser une nouvelle adresse ip à vos Bridges de temps en temps n’est pas une mauvaise idée, histoire de renouveler la liste « secrète » des nœuds répertoriés.

Ce que Filiol dit avoir « découvert » ici n’a aucune répercussion sur la confiance qu’on peut avoir en le réseau Tor, n’étant pas une méthode prétendant compromettre l’anonymat de Tor, mais prétendant simplement simplifier son filtrage.

Contrairement aux deux autres procédés qu’il a évoqué, et qui eux prétendent réduire à néant la sécurité garantie par la technologie Tor.

J’analyserai ceux-ci dans les parties 2 et 3 de mon article, à venir dans les jours qui viennent.

Mar 132011
 

TOR.

Je pensais que toute la population « geek » connaissait cette technologie, et j’avais probablement raison.
Je pensais qu’après les derniers événements en Tunisie, Égypte, Libye, même le — plus ou moins — grand public avait entendu parler de cet outil, et j’avais peut-être raison.

Je pensais que l’un dans l’autre, l’utilité et la nécessité de cet outil était découverte et comprise.
J’avais assurément tort.

Mes conversations m’ont récemment souvent mené à l’effrayante conclusion que beaucoup de gens soit ignorent l’existence de TOR, soit — pire — n’en comprennent pas l’importance.

Si, par exemple, je peux comprendre que l’utilité et l’approche de Wikileaks peut être sujette à débats, celle de TOR n’est à mes yeux tout simplement pas raisonnablement contestable.

J’espère grâce à cet article vous en convaincre.

Pourquoi utiliser TOR ?

L’anonymat est une composante vitale d’une démocratie saine, si pas une condition préalable.

Pourquoi le vote est-il anonyme, et même obligatoire en Belgique ?
Tout simplement parce qu’on est conscient que notre monde n’est pas idéal, et qu’il existe beaucoup de gens en position d’autorité ou de puissance qui pourraient — si le vote était public et nominatif — en user pour faire pression sur leurs sujets. L’exemple le plus typique est celui des chefs d’entreprise qui surveilleraient qui a été voter quoi, et mettre en place des représailles pour ceux qui voteraient contre les intérêts de ces chefs d’entreprises.

Voter est-il illégal ? Voter est-il immoral ? Votre vote est-il secret ?
Non, non, et pas « secret », mais confidentiel. N’importe qui vous connaissant un peu pourra sans peine deviner la couleur de votre vote, mais si votre patron avait une certitude absolue que vous ayez voté d’une façon qui ne lui plaît pas, il pourrait tenter de vous dissuader de voter d’une certaine couleur, ou de voter tout court.
C’est pour cela que — pour lutter contre la dissuasion de voter — le vote est obligatoire en Belgique, et — pour lutter contre la dissuasion de voter ce que vous voulez —, le vote est anonyme.
C’est en effet une question d’ « hygiène » pour une démocratie saine.

Cependant, les événements ayant eu lieux en Tunisie, Égypte, Libye et même aux États-Unis nous ont démontré que dans certaines régions du monde, la démocratie ne tenait qu’à un fil… de cuivre.
Internet s’est révélé crucial, non seulement pour organiser les manifestations, et propager des informations relatives à la répression de l’état, ou des pillages en temps réel, mais également pour publier et mettre à jour des preuves de crimes contre l’humanité commis par les gouvernements — renversés ou pas.

Certains gouvernements ne jouent pas le jeu de la démocratie, la truquent, la mélangent à de la dictature, de l’oppression, de la torture. D’autres ne tentent même pas de faire semblant. Il y a donc des situations où vous devez protéger l’anonymat de vos opinions pour préserver votre intégrité physique, et celle de votre famille. Non pas vous protéger d’un patron, mais d’un adversaire bien plus costaud : votre gouvernement, et toute institution qu’il contrôlerait.

Dans certains pays, la presse est muselée, le gouvernement décide qu’un citoyen réclamant la possibilité de constituer un parti d’opposition est un terroriste, ou qu’une foule pacifiste réclamant des droits constitutionnels doit être bombardée. L’anonymat est un bouclier permettant de réduire le risque qu’un être humain court en revendiquant des libertés, et donc de leur redonner une chance dans un affrontement avec un Goliath prêt a tout.

D’autre part, une question de vie privée se pose. Je ne vais pas m’étendre sur cette problématique certes secondaire, mais tout du moins aborder cet argument de « qu’est ce que tu peux bien avoir à cacher ? ».
La réponse est souvent « rien. ». Il n’y a pas besoin d’avoir quelque chose à cacher pour ne pas avoir envie que ça soit public.
Le secret médical en est un exemple. Avoir un cancer n’est pas illégal, mais il appartient à l’individu de choisir quand comment et à qui l’annoncer, ou ne pas l’annoncer.

Pour reprendre une phrase de Cory Doctorow dans son livre « Little Brother » :

« Ce n’est pas parce que je n’ai rien à cacher que j’aime chier en public. »

TOR est un outil d’anonymat permettant à un individu de publier du contenu, ou d’échanger des informations sur internet sans que quiconque puisse relier ces échanges à un individu.

TOR est l’outil de ceux qui n’ont plus confiance ni en leur gouvernement, ni en leur fournisseur d’accès internet.

« Ouais mais TOR c’est un outil de terroriste islamiste, de pédophile et de criminel ! »

Euh… hein ?

Bien que je n’en ait pas entendu parler à ce jour — les gens les plus malveillants n’étant pas forcément les plus technologiquement compétents — il est possible qu’un certain nombre de gens utilisant TOR s’en servent pour cacher des communications qui pourraient révéler des crimes qu’ils ont commis, sont en train de commettre ou comptent commettre. TOR pourrait être utilisé par des criminels pour rendre leurs méfaits plus faciles, tout comme l’introduction des téléphones portables leur a permis de s’organiser plus rapidement en fuite ou organiser des meurtres, et comme l’invention de l’automobile leur a procuré un moyen de locomotion efficace pour s’échapper d’une banque qu’ils auraient braqués.

Faut-il pour autant interdire ou suspecter l’usage du téléphone mobile, ou même de la voiture ?
Tous sont des outils, et comme tout outil, sont neutres. Ils peuvent donc être autant utile à améliorer la qualité de vie des gens honnêtes et vertueux qu’à offrir des options à des criminels ingénieux.

Faut-il priver notre société de l’utilisation d’un de ses derniers remparts démocratiques sous prétexte qu’il pourrait être utilisé par des personnes malveillantes ? Pour ma part, je préfère courir le risque de laisser les criminels échanger des information, plutôt que des armes et des munitions, si c’est le prix à payer pour la liberté que mon gouvernement m’a promis un jour et semble regretter.
Car si tout outil est neutre, celui qui permet d’échanger des informations impunément me semble plus raisonnable à laisser en circulation que celui qui permet de faire des trous dans les gens.

Curieusement, aux États-Unis, on ne pense pas comme moi.

TOR, c’est quoi ?

TOR ( The Onion Routing ) est un projet d’anonymisation du trafic internet.
Il se base sur l’idée de « proxy », c’est à dire qu’un ordinateur relaiera tout ou une partie de votre trafic internet et enverra vos requêtes au site cible à votre place. De cette manière, le site avec lequel vous communiquez ne communiquera qu’avec votre intermédiaire, et n’aura connaissance que de l’identité de votre intermédiaire.

Par exemple,

l’ordinateur A s’adresse à Google.com en passant par le proxy B :

  • A envoie la requête « chercher le mot « wikileaks » » à B en lui disant qu’elle doit parvenir à Google.
  • B l’envoie donc ensuite telle quelle à Google, sans révéler l’existence de A.
  • Ainsi, seule l’IP de B se trouve dans les logs d’accès de Google, qui ne peut remonter à A.

TOR améliore ce raisonnement en créant un réseau comportant un très grand nombre d’intermédiaires possibles, dont 3 sont choisis au hasard. Ainsi, il est impossible de prévoir quels intermédiaires vous allez utiliser, et compromettre leur sécurité — par exemple en les confisquant et les transformant en mouchards.

De plus, le trafic est non seulement chiffré au sein de réseau, mais également pour chaque relais :

si vous envoyez une information par le réseau TOR en passant par trois relais :

  • votre ordinateur choisit trois relais au hasard dans le réseau TOR, ensuite il chiffre trois fois les données que vous voulez envoyer.
  • Il envoie ce paquet triplement chiffré au premier relais, qui déchiffre le premier niveau, et y découvre une information chiffrée destinée au second relais, ainsi que l’instruction d’envoyer le paquet à l’adresse du second relais.
  • Celui-ci recevra donc ce paquet là, et déchiffrera à son tour un niveau de chiffrage, découvrant à son tour une information chiffrée, et l’adresse du relais auquel la faire parvenir.
  • Enfin, le dernier relais déchiffre le dernier niveau de chiffrement, et est alors en possession de l’information en clair à envoyer au site auquel vous voulez accéder, et bien évidemment son adresse.

En clair ?

  • À aucun moment, aucun des relais — hormis le dernier — n’a connaissance du message que vous faites parvenir à la destination.
  • À aucun moment, aucun des relais — hormis le dernier — n’a connaissance de la destination de ce message, et ne sait donc avec qui vous voulez communiqer.
  • À aucun moment, aucun des relais — pas même le dernier — n’a connaissance de l‘itinéraire du message au delà de ses deux intermédiaire directs. Aucun relais n’est donc capable de reconstituer la route dans son intégralité, cette information étant détruite à chaque « passage du bâton »

Avec ce principe très simple, on arrive à un niveau d’anonymat extrêmement robuste et fiable, puisque non seulement les intermédiaires, mais également des personnes interceptant le message à n’importe quel endroit du processus, ne peuvent établir de lien entre vous et le message envoyé à la destination.

Les limitations techniques de l’anonymat par TOR

Le première remarque faite à l’encontre de TOR, c’est qu’il n’est pas parfait.

C’est vrai, il comporte des limitations intrinsèques à son principe de fonctionnement, mais celles-ci sont beaucoup moins conséquentes que les critiques ne l’affirment, et l’anonymat n’en est que très peu victime.

Si votre vie dépends de TOR, renseignez vous à l’avance sur cette page qui reprends toutes les réponses aux questions que vous pouvez vous poser, peu importe votre niveau technique.

Le 3eme relais.

Comme nous l’avons vu dans la description du mécanisme, le 3eme relais — « point de sortie » du réseau TOR — se trouve en possession à la fois du message en clair, et de la destination de celui-ci.

Cela pose deux grands problèmes à ne jamais oublier lorsqu’on utilise TOR :

  • Le dernier relais peut potentiellement lire ce que vous voulez faire parvenir à la destination
  • C’est le point le plus important.
    Si ce que vous voulez transmettre est confidentiel, vous devez impérativement chiffrer cette information avant de la faire passer par TOR — de «bout à bout », c’est à dire chiffré chez vous, d’un bout de la communication, et déchiffré chez la destination, de l’autre bout de cette communication.

    TOR est un outil d’anonymisation, pas de chiffrement, pour éviter d’être « lu » entre le troisième relais compris et la destination, vous devez chiffrer. Ce n’est pas réellement une faille de TOR, c’est un fait à avoir à l’esprit dès qu’on décide d’utiliser TOR, et à tenir en compte à chaque utilisation. VOUS êtes le seul responsable si vous décidez d’utiliser TOR pour ce qu’il n’est pas destiné à faire.

    La simple utilisation de SSL (https), de GPG, ou autre chiffrement suffiront à garantir la confidentialité de vos données, en plus de leur anonymat garanti par TOR.

  • Si vous utilisez un protocole/application qui écrit votre adresse ou identité dans les messages qu’elle transmet, le 3eme relais peut compromettre votre anonymat.
  • Un autre point extrêmement important à comprendre.
    Certains protocoles ont besoin pour fonctionner de faire parvenir votre adresse ip, ou un identifiant à leur destination. De tels protocoles sont intrinsèquement incompatibles avec l’usage de TOR, comme de toute technologie d’anonymat en général.

    Cela revient à demander à un intermédiaire qui ne vous connaît pas d’aller lire à voix haute un message anonyme que vous avez signé. Cela paraît stupide, mais il est important de se renseigner sur les quelques protocoles qui trahiront votre anonymat quoi que vous fassiez.

    Des exemples ?
    Le protocole SMTP, c’est à dire celui d’envoi de mails.
    En effet, dans un mail sont contenues les informations de l’adresse mail de l’envoyeur ainsi que son adresse IP, et à moins de les censurer ou falsifier manuellement, vous enverrez votre identité à qui veut l’entendre !

    Le protocole torrent également, qui en plus de saturer la bande passante du réseau TOR, divulgue de toute façon votre identité.
    Deux bonnes raisons de ne pas router votre traffic de P2P par TOR.

    Les plugins flash et beaucoup d’autres extensions également, qui ne sont pas faites pour l’anonymat et qui diffusent allègrement votre ip personnelle aux réseaux avec lesquels ils communiquent. Heureusement, l’extension TorButton pour Firefox se charge de désactiver ces mouchards lorsqu’on active TOR, si configuré de la sorte.

Pour conclure, il est important d’avoir à l’esprit à tout moment qu’il est inévitable que le 3eme relais possède ces informations, et que vous devez agir en conséquence.

Les requêtes DNS

Très rapidement pour ne pas vous perdre dans des détails techniques :

Une requête DNS est une opération consistant à consulter un « annuaire de l’internet » pour savoir quelle est le « numéro de téléphone » — c’est à dire adresse IP — d’un site sous la forme « exemple.com » car les programmes ont besoin d’une adresse ip pour contacter un site, pas de son « nom de domaine ».

Le problème est que ce protocole se comporte d’une façon un peu particulière et contourne totalement le réseau TOR.

En quoi est-ce un problème ?
Si vous tenter d’accéder à http://wikileaks.ch, et que vous ne voulez pas que votre Fournisseur d’Accès Internet — en qui pour une raison ou une autre vous n’avez pas confiance dans votre pays — ne puisse s’en rendre compte en mettant votre trafic sur écoute — DPI pour Deep Packet Inspection —, vous voulez utiliser TOR pour garantir votre anonymat et la confidentialité des sites que vous consultez.
Et comme expliqué plus haut, tout votre trafic sera anonymisé entre vous et wikileaks.ch, ainsi votre FAI ne pourra savoir ni ce que votre trafic contiens, ni sa réelle destination.

Seulement voila, si à coté de tout ce trafic précautionneusement anonymisé, votre FAI voit passer un paquet DNS demandant à un «annuaire » « quelle est l’adresse de wikileaks.ch ? », il pourra en déduire que vous avez tenté de consulter ce site, même s’il n’en sait pas plus.
Malheureusement dans certains pays du globe arborant un pouvoir autoritaire, cela suffit pour tomber sous la présomption de « terrorisme » et d’être arrêté, probablement torturé, et parfois exécuté.

La solution est simple et se résout en une ligne dans la configuration de TOR, qui consiste à demander à TOR de faire office d’annuaire confidentiel.

L’analyse statistique du trafic

Sous ce nom pouvant rebuter les individus allergiques aux mathématiques se cache en réalité un concept très simple :

Si j’espionne le trafic de l’ordinateur source, et celui de la destination — par exemple si google est à la fois votre FAI et le site auquel vous voulez accéder —, même si ce n’est pas exactement la même information — rappelez-vous, elle a été déchiffrée à trois reprises depuis — elle a la presque même taille, est coupée en autant de morceaux, et envoyés selon un rythme comparable.

Si ceci n’est pas une science exacte, des chercheurs ont mis en évidence qu’il s’agissait d’une faille théorique permettant potentiellement à des espions ayant beaucoup de ressources ou stratégiquement placés de « reconnaître » le trafic d’une personne avec une certaine probabilité statistique, et donc de supposer qu’il est l’origine de ces messages.

Pour illustrer, il s’agit par exemple de peser la lettre anonyme lorsque vous la déposez dans la boite aux lettres, et la peser à nouveau quand elle arrive à destination, et de tenter de supposer, si le poids est proche, qu’il s’agirait bien de la même lettre.

Non seulement cela permettrais d’entamer l’anonymat de la communication, mais si le message n’a pas été chiffré et a été intercepté en clair, on peut associer le contenu de votre message à votre personne.

Comment s’en prévaloir ?
Eh bien, pour faire simple : on ne s’en prévaut pas.

Cette attaque est extrêmement théorique, compliquée à mettre en place et peu réaliste dans des conditions non-idéales. La communication doit être lente, sur un réseau lisse, et d’informations simples. De plus, par précaution, les développeurs de TOR ont mis en place plusieurs dispositifs pour rendre plus aléatoire la taille des paquets entre chaque intermédiaire, le rythme de transmission, l’ordre des paquets, et ainsi de suite. Tout ceci rendant ce genre d’attaque impraticable en réalité, même si notable d’un point de vue théorique.

EDIT : Contrairement à ce que je pensais initialement, Il semblerait que ces dernières années, des chercheurs soient parvenus à mettre au point des analyses statistiques diaboliquement efficaces permettant de reconnaître le traffic d’un client Tor à la sortie. Cela implique que si l’adversaire contrôle le premier relais (ou le FAI et quelconque tronçon du réseau entre vous et internet), et le dernier relais (ou le site de destination), il lui serait relativement facile de corréler les deux traffics et vous reconnaître.

Par conséquent, Tor ne vous protègera pas si Google soupçonne que l’adresse « kakaproute@gmail.com » est utilisée par votre IP, et met votre connexion sur écoute (les Spyfiles montrent qu’on a largement sous-estimé l’industrie du DPI, et si Google devient un jour votre FAI, vous verrez que ce scénario est de moins en moins improbable), alors votre anonymat est brisé.

Ceci n’est pas une limitation de Tor, mais plutot du concept même d’un anonymat à « faible latence » (low latency), vu que le protocole tente d’acheminer vos informations de la manière la plus rapide possible, le rythme de transmission de vos données peut être reconnu.

La meilleure réponse est donc de se prévaloir d’une prise de contrôle du premier ET dernier relais de votre circuit Tor, et de garder à l’esprit que si vous êtes déjà soupçonné et sur écoute pour comparer le traffic de votre destination avec celui de votre domicile, aucun protocole à « faible latence » (low latency) ne peut empêcher l’adversaire de reconnaître le traffic
Évitez donc de vous trouver sous la surveillance du site avec lequel vous communiquez 🙂
(ou faites usage des Hidden Services)

compromettre le premier et le dernier relais

Comme nous l’avons vu plus haut, compromettre le premier ou le dernier relais n’a pas beaucoup d’utilité dans l’entreprise de l’atteinte à votre anonymat.
Individuellement, non, mais si une même personne a le contrôle à la fois du premier relais et du dernier, l’anonymat est dissout.

Source -> Relais 1 [déchiffrement] -> Relais 2 [déchiffrement] -> Relais 3 [déchiffrement — message et destination désormais en clair] -> Destination

Comme nous le voyons ici, les relais compromis peuvent connaître l’origine du paquet — par le relais 1 —, déterminer le second relais — le relais 1 sachant évidemment à quel relais il transmet l’information —, puis, en utilisant une analyste statistique telle que décrite plus haut, « reconnaître » ce paquet — déchiffré et donc modifié une fois depuis — une fois qu’il arrive au relais 3, et ainsi connaître son contenu et sa destination.

La gravité de cette situation proviens du fait que si une même personne contrôle le premier et le dernier relais, et arrive efficacement à établir une corrélation entre le paquet envoyé au relais 2 et celui reçu au relais 3, il se trouve à la fois en possession du contenu du message, de sa destination, et de sa provenance — votre identité —.
En bref : vous n’avez plus aucune forme d’anonymat.

Tout d’abord, soulignons que cette attaque repose encore une fois sur une analyse statistique peu efficace, pas toujours fiable et produisant des résultats très aléatoires. (voir encadré « EDIT » dans « L’analyse statistique du trafic »)
De plus, elle suppose que par un hasard malheureux vous avez choisi dans votre route deux relais compromis par la même personne. Il existe des centaines, si pas des milliers de relais TOR disponibles pour la route, tant que ce réseau reste abondamment peuplé, il est donc extrêmement, vraiment très improbable qu’un tel cas de figure se produise jamais.
Cependant, l’équipe de TOR a décidé de ne pas se satisfaire de cet état de fait, et a mis en place une notion de « Entry Guard ».

En effet, s’il ne peut pas être fait grand chose contre la prise de contrôle du dernier relais, et que cette prise de contrôle ne pose pas grand problème si des précautions et une attitude prudente sont adoptées, il est possible de réduire la probabilité de mettre ses pieds dans un pot de miel dans le cas du premier relais.

Le raisonnement est le suivant :

Si j’utilise un nombre directement croissant de point d’entrée — premier relais — au réseau TOR pour chaque utilisation, la probabilité d’un jour, tomber sur un relais compromis, et qu’en plus le 3eme relais soit compromis par la même personne, est simplement fonction du nombre de relais disponibles pour établir une route aléatoire.

Plus il y en a, moins ce cas de figure est probable. Exponentiellement.
Mais si à l’inverse,

je garde les deux ou trois mêmes points d’entrée au réseau TOR d’un jour à l’autre, d’une utilisation à l’autre, la probabilité de me connecter à un premier relais compromis n’est plus que de deux ou trois sur le nombre total de relais disponibles.

À moins d’avoir moins de 5 relais disponibles sur tout le réseau TOR, la probabilité de tomber sur un premier relais compromis un jour est mathématiquement réduite à l’extrême minimum.

« et si par malchance, je tombe justement sur un relais compromis ? je vais rester avec lui et lui envoyer mes paquets pendant des semaines entières !! »
Oui. Exactement.
Et alors ?
Comme nous l’avons vu plus haut, un premier relais compromis n’a aucune utilité pour un attaquant; il n’est jamais en possession que d’une information triplement chiffrée, dont il ne verra jamais ni le contenu ni la destination. Il ne peut en aucun cas vous nuire. Le danger viens de la probabilité que la même personne soit en possession du dernier relais en même temps, sur la même route. Comme seul le premier relais est gardé durablement, les deux autres sont changés à chaque utilisation, pour chaque connexion, et donc la probabilité de tomber sur un dernier relais compromis par la même personne que le premier relais reste ridicule.

En bref, cette attaque est désormais rendue aussi statistiquement probable que d’être frappé par la foudre plusieurs fois en 10 minutes. Et elle dépends encore d’une analyse statistique peu fiable pour couronner le tout.

Il y a encore des candidats pour prétendre que le dispositif TOR est stupide, mal pensé, vulnérable ou naïf ? 🙂

Conclusions sur les limitations techniques de TOR

J’ai ici fait le tour des attaques connues sur le dispositif TOR, et pense avoir démontré raisonnablement et intelligiblement pourquoi elles n’étaient pas de grandes menaces pour les utilisateurs, voir même de purs modèles théoriques ne pouvant s’appliquer à la réalité pratique.

J’ajouterais que tout le protocole et les applications TOR sont libres et opensources, en évolution constante, et librement consultables. La probabilité d’un mouchard ou d’une backdoor implantée par les développeurs de TOR n’aurait donc pas une grande espérance de vie vu le nombre de contributeurs qui finiraient par s’en apercevoir très rapidement.

Conclusion :

vous n’avez pas ni à faire confiance en les développeurs de TOR, ni en les gens qui mettent des relais en place, pour avoir confiance en le système TOR.

Pour moi, un système de confidentialité et d’anonymat idéal est celui où on n’a besoin de faire confiance en personne d’autre qu’en soi-même, et en ce qu’on peut observer et comprendre soi-même.
De ce point de vue, TOR remplit pleinement ce critère, mieux encore que GPG, le fonctionnement de ce dernier étant plus difficile à comprendre et à expliquer, de mon point de vue.

Pourquoi héberger un relais TOR ?

Pourquoi les relais TOR sont-ils si importants ? Pourquoi chaque utilisateur de TOR devrait en avoir un ?
Et surtout, qu’est ce que cela implique ?

Sécuriser le réseau

Comme nous l’avons vu, la fiabilité du réseau TOR, le fait qu’on puisse ne pas dépendre de la confiance qu’on a en ses relais TOR proviens de leur nombre. Il suffit de peu de relais pour avoir une grande probabilité d’avoir une route fiable.
Cependant, il doit y avoir un rapport raisonnable entre le nombre d’utilisateurs et le nombre de relais TOR. S’il y a tout à coup beaucoup plus d’utilisateurs que de relais, le réseau se trouve être moins fiable et plus facile à déjouer.

Ces derniers temps, avec des populations oppressées à travers le monde qui réclament leurs droits, le réseau TOR a acquis une importance colossale, et s’il n’est pas encore assez connu et compris pour avoir relayé les messages de tous ces citoyens en soif de démocratie, il est de notre devoir de nous assurer que le réseau soit capable d’accueillir tous ceux qui en aient besoin, le temps d’obtenir la démocratie dont nous jouissons.
Il s’agit en quelques sortes de leur prêter un peu de notre démocratie, pour leur permettre de la planter chez eux, et de la faire germer

Solidifier le réseau

Internet évolue, et l’usage qu’on en fait également.

Il y a 10 ans, le web se limitait à du texte et des images de 100 pixels sur 100, mis en mozaïque pour constituer un fond d’écran.
Aujourd’hui, nous échangeons des images haute définition prises sur le vif, des vidéos, autant de contenu de plus en plus lourd.

Si nos fournisseurs d’accès internet s’adaptent à la taille de ces contenus, le réseau TOR, lui, a plus de mal.
En effet, sur la route de trois relais pour faire transiter du contenu, on dépends toujours du plus lent des trois relais. Il s’agit bel et bien d’une chaîne dont le maillon le plus faible détermine la capacité en bande passante.

Si nous voulons que les gens qui en ont besoin aient la capacité de transmettre des documents de valeur historique de qualité correcte et utilisable, il est vital d’allouer la bande passante nécessaire au réseau TOR, en hébergeant un relais là où on a une de capacité d’upload suffisante.
Les gouvernements en place dans les pays oppresseurs ont souvent le réflexe de s’en prendre à l’infrastructure d’internet, le rendant instable, lent, voir inopérant. Si on ne peut prévoir la qualité de la connexion de leur coté de la frontière, nous pouvons assurer la qualité de la liaison anonyme de notre coté du réseau.

Dans certaines situations, chaque secondes comptent. À la fois pour dénoncer un massacre en temps réel, comme en Libye, mais également pour transmettre une information sans avoir à s’y prendre à 5 fois pour envoyer un fichier pour finalement abandonner, l’envoyer sans TOR et se voir soi — et sa famille — aux mains de tortionnaires.

Comment héberger un relais TOR ?

Si vous n’êtes pas à l’aise avec les manuels et les explications complexes, vous pouvez toujours utiliser le logiciel graphique Vidalia, qui est destiné à simplifier l’utilisation de TOR, à la fois comme client et comme relais.

héberger un point d’entrée au réseau TOR

Le point d’entrée joue le rôle de premier relais.
Vous serez toujours le premier relais des routes TOR vous utilisant.

Vous avez donc la responsabilité de rester en ligne assez longtemps, car pour bien faire — et comme expliqué plus haut — les utilisateurs du réseau TOR tenteront de vous garder dans leur liste de « points d’entrée à long terme » et tenter de vous joindre d’un jour à l’autre.

Pas question de ne rester en ligne que 10 minutes par jour, ou de couper votre relais sans prévenir, cela irait à l’encontre du principe d’ « entry guards », et forcerait constamment le client TOR qui utilise votre relais à retrouver des points d’entrée.

Si ce rôle est capital, il n’est pas sans risques. En effet, un fournisseur d’accès internet ou un gouvernement opposé à l’utilisation de TOR, n’a pour seul recours que d’établir une blacklist de relais TOR, pour que lorsqu’un de leurs abonnés ou citoyen tente de se connecter à un des points d’entrée publiques de TOR, le réseau internet de leur FAI leur mente, et leur réponde que ces adresses internet ne sont pas attribuées.

Vous risquez donc de rapidement, et souvent automatiquement, vous retrouver inaccessibles depuis la Chine, le Maroc, et d’autres pays portés sur la censure d’internet — bientôt la France ?

Il est possible de préciser à Vidalia, ou à la configuration de TOR directement, de ne pas publier votre point d’entrée dans les listes officielles de TOR, mais de le garder privé, et n’en donner l’adresse qu’à des gens de confiance, afin d’éviter qu’il soit blacklisté.
Si vous procédez ainsi, le risque d’être blacklisté dans un pays oppresseur est à peu près inexistant, ceux-ci reposant en grande partie sur les programmes blacklistant automatiquement les listes publiques, mais incapables de deviner les points d’entrée privés.

Héberger un point de sortie au réseau TOR

C’est probablement le plus facile à configurer, mais aussi le plus risqué. Vous jouer ici de rôle de troisième relais.
Il suffit de préciser à Vidalia ou à TOR que vous désirez jouer le rôle de point de sortie, et de spécifier les protocoles que vous désirez autoriser. Toute requête de transmission d’un protocole non autorisé sera refusée.

Il est souvent conseillé d’autoriser les protocoles web, web sécurisé (https et ssh), principalement. Le protocole SMTP de mails est aussi conseillé, mais il faut cependant se préparer à relayer beaucoup de traffic de spam. À vous de voir l’importance que vous accordez à la libre communication de chaque protocole.
Il est bien évidemment possible de permettre tout protocole de transiter.

Les risques ici sont plus embêtants. Non seulement c’est votre adresse IP à vous, ou celle de votre serveur qui sera enregistrée sur les serveurs accédés par les gens utilisant votre relais — qui peuvent mener des activités illégales et répréhensibles, vous forçant à prouver que vous faisiez tourner un relais TOR et n’étiez donc pas responsable du trafic provenant de votre IP à ce moment là.

Mais en plus, les services ayant subi des abus — flood, spam, autres — et prennent parfois la décision, sommes toutes stupide et extrêmement discriminante d’interdire les connexions provenant d’IP hébergeant un relais TOR.
Cela a pour conséquence que votre IP, ou celle de votre serveur soit interdite de sites web, de services de chat comme IRC, ou de sites gouvernementaux, de façon permanente.

Il s’agit donc du choix le plus téméraire et le plus difficile à assumer parmi les rôles des relais TOR, une liste des relais faisant point de sortie — ou pas — devant être disponible à quiconque au sein de réseau TOR pour établir une route, et donc pour le fonctionnement du réseau. Toutes ces IP sont donc facilement blacklistables.

Ce rôle est pourtant capital, et des individus assez courageux pour héberger ce genre de relais doivent exister, et méritent du respect pour le risque qu’ils prennent au nom d’un internet, et d’une société plus libre.

Héberger un relais intermédiaire au réseau TOR

Jouant le rôle de second relais, il s’agit en réalité d’un point de sortie particulier.

En effet, un relais intermédiaire n’est en réalité qu’un point de sortie dont tous les protocoles ont été interdits. C’est à dire qu’aucune communication d’aucune sorte n’est autorisée à sortir en dehors du réseau TOR avec votre propre adresse IP écrite sur l’enveloppe.
N’ayant d’autre choix, votre relais ne fera donc que transmettre les informations qu’on lui envoie à un autre relais TOR, interne au réseau.

De cette façon, vous n’êtes ni responsable de l’entrée au réseau, ni de sa sortie. Ces deux rôles étant les plus risqués, il est souvent considéré peu voir pas risqué d’héberger un relais intermédiaire.
À priori, vous blacklister de services en lignes n’aurait aucune utilité, il y a donc très peu de chances que ce relais TOR vous pose d’autres ennuis que la bande passante que vous lui octroyez — bien évidemment configurable.

Si vous voulez supporter l’infrastructure TOR, je vous conseille de commencer par ce type de relais-ci, et si un jour vous en avez le courage, de configurer un ou deux protocoles sécurisés en sortie, et un point d’entrée privé quelque part.

Conclusion

Cet article, bien que long, devrait être accessible à tous, et je l’espère, aura fait le tour de la question de la légitimité de TOR, sa fiabilité, ainsi que de pourquoi et comment y contribuer.

Il me semble inévitable que cette technologie se retrouve un jour au cœur de la défense de nos démocraties, souvent mises en danger par nos propres ministres, mais également pour la promotion de la démocratie dans des pays oppressés.

TOR s’est révélé être une technologie fiable, et un repère d’anonymat parmi les outils de confidentialité de la sorte. Les faiblesses du procédé sont bien connues, à priori de façon exhaustive, et soit purement théoriques, soit corrigées.
Si vous êtes convaincus de la nécessité de cet outil dans la société du 21e siècle, vous pouvez également renforcer la solidité et la pérennité du réseau TOR en hébergeant un relais chez vous ou sur votre serveur, et ainsi contribuer à la promotion et au partage de la plus précieuse richesse du monde occidental : la liberté.

Je vous encourage à réagir en commentaires si vous avez des questions ou des remarques sur cet article, je tâcherai d’y répondre 😉

Merci de votre attention.

Stay safe.
Stay free.