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 !

  12 Responses to “We’ll need a bigger onion”

  1. Votre article dâte du 27 JANVIER 2013 et nous sommes le 12 MARS 2013.

    C’est très interressant et même professionnel comme attitude et position, seulement …
    votre approche extérieure (à mon point de vue_afaik) n’est pas conforme à la situation réelle.
    Je ne vais pas vous ennuyer par des opinions et avis et preuves et constats sur tel ou tel point de votre analyse [ Comment résoudre ce problème ? ]

    Je tiens simplement à signaler qu’il ne faut s’y prendre comme cela pour la simple raison qu’une infrastructure [ ne demandent que vous pour parvenir à s’épanouir pleinement ! ] exige des étapes intermédiaires. L’une d’entre elles (comme la plupart) regroupe d’autres secteurs très éloignés du sujet.

    Tant que ce fait ne sera pas avéré, rien ne sera possible (à mon point de vue_afaik).

    Je ne peux donc que vous souhaiter bonne chance mais persiste à croire que votre ouverture généreuse ou créative ; n’est pas prête de voir le jour avant longtemps.

    nota bene : J’ai beaucoup apprécié la lecture de votre article. Il mériterait d’être traduit et diffusé ; au moins cela clouerait le bec à des pseudos – militaires – scientifiques – experts. Ce commentaire n’engage que moi. Merci.

  2. Correctif :

     » … Je tiens simplement à signaler qu’il ne faut PAS s’y prendre comme cela …  »

    bien évidemment …

  3. C’est marrant comme commentaire… beaucoup d’allusions cryptiques à rien du tout.

    J’ai beau le relire, il n’a absolument aucun sens…. Et est erroné sur sa seule affirmation: « votre ouverture généreuse ou créative ; n’est pas prête de voir le jour avant longtemps. »

    -> des initiatives implémentant très exactement ceci existent depuis des années et sont mêmes référencées sur la page. Il en faut plus, et les faire grandir, c’est ce que cet article tente d’illustrer.

  4. C’est que tu ne comprends pas le français ! et le commentaire n’a rien erroné, t’es seulement fermé sur la réalité globale – déclarée comme n’ayant aucun sens … faut le faire …

    Cela ne sert à rien de faire et refaire la même chose avec d’autres mots et d’autres moyens tant que les blocages sont les mêmes car là ; c’est des nouvelles conceptions qu’il faut, auquelles ; vraisemblablement, tu est complètement étranger.
    Maintenant, tu peux toujours faire des pirouettes avec autant de mots que tu veux, et troller si cela te chante, la réalité est là : ta solution est périmée et ne plait qu’à toi et n’apporte rien.

    On ne fait pas allusion à tes initiatives ou bien celles d’autres, on te dit qu’il manque des étapes en MARS 2013 pour que ce genre de projet existe sous une autre forme, viable – seule condition à une quelconque utilité – c’est pourtant clair à toute personne un tant soit peu intelligente. Et ces étapes dépendent de secteurs qui ne sont pas à ta portée semble-t-il (vu ta réponse …).

    Rien de t’empêches de faire ce que tu veux mais tu reproduis un shéma obsolète, c’est tout … ( et alors nous dit koolfy ; c’est comme çà que cela marche … pfff … ).

    Ton article n’illustre rien, il prosélyte et manipule et restera là où il est placé ; en dehors du sujet.
    D’ailleurs, pourquoi autorise-tu des commentaires autres que les tiens ou de tes amis connus et répertoriés ; pour obtenir un satisficit, du pognon , un brevet de vertu, un laissez-passez ?
    Sinon, attends-toi – peut-être – à moins de suiveurs que souhaités.

    C’est bien la première fois de ma vie que l’on qualifie mes propos de  » n’ayant aucun sens » ; il faut croire que l’un de nous deux est un crétin.
    T’es trop inculte et trop con pour reconnaître que ce sont tes propos qui n’ont aucun sens ; c’est ce que mon premier commentaire a tenté vainement d’illustrer.

  5. Wah, on dirait les propos d’un schyzophrene tout droit sorti de l’asile! Dingue.
    Sinon merci pour l’article, fort intéressant, même si ça remet en cause mes installations de petits oignons

  6. « il faut croire que l’un de nous deux est un crétin. »
    Pas dur de deviner lequel ! Je sais pas ce que tu fumes mais j’en veux xD
    On ne pige rien à ce que tu baves car à aucun moment tu ne parles concrètement ! Quelles sont donc ces « étapes intermédiaires » ?

    Sinon, chapeau bas à cette belle initiative philanthropique.

  7. Merci pour ces articles sur Tor, très intéressants et documentés.

    Ceci dit j’ai quand même un problème de fond avec la stratégie exposée dans cet article. Financer de gros serveurs c’est bien, mais il faut bien les héberger quelque part. Il y a un moment où le gros serveur en question doit accéder à l’internet, et qui contrôle le tuyau ? Pas l’association qui possède le serveur, mais une entreprise privée, sur laquelle d’amicales pressions gouvernementales vont certainement s’appliquer. OK ce sera la DCRI qui aura accès au trafic de sortie et pas El-Assad ou Ahmadinejad, mais vu les ambitions de nos gouvernements « démocratiques » (cf. les récentes nouvelles étasuniennes) on peut quand même s’interroger sur la portée réelle de ces initiatives.

  8. L’endroit et l’infrastructure autour du « Gros serveur » est évidemment une question importante.

    Il faut faire « au mieux », ce qui n’est pas toujours facile…

    Je sais que Nos-Onions se donne du mal pour contrôle le plus possible le tuyau et l’infrastructure, et je leur souhaite bonne chance 🙂

  9. La concentration des noeuds de sortie pose aussi un problème: celui de la diversité des IP de sortie.
    Si la majorité des utilisateurs de TOR n’utilise que les 30 ou 40 plus gros serveurs, il devient alors facile pour administrateur de site web de bannir les connexions TOR. C’est ce qu’a fait Facebook récemment.
    Dans ce cas TOR devient inutilisable donc inutile …

  10. le probleme c’est quand on veut de l’anonymat c’est
    -soit pour une activité punis dans SON pays (critiquer le gouvernement en chine par ex) et la c’est pas grave si un chinois utilise l’IP du noeud de sortie en France ^^

    -soit car on est paranao et au’on ne veut pas etre suivis… OK ca aussi c’est pas un soucis

    -soit parce qu’on a une activité illicite DANS PLEIN DE PAYS (terroriste, pedophile, et j’en passe)

    et dans ce dernier cas… bah on a pas trop envie que l’IP de sortie soit responsable…

    le probleme n’est pas le partage de bande passante, mais plutot que l’IP de sortie se retrouve responsable d’actes commis par un utilisateur TOR

    Du coup beaucoup de particulier qui ont compris ca, ne vont jamais servir de noeud de sortie
    et donc pour compensé faut des gros noeud de sortie…
    car si 50 000 utilisateur squattent le noeud de sortie d’un mec en ADSL bah… ca va pas etre possible 😉

    le soucis qui en decoule… c’est que pour tuer le reseau faut tuer les gros noeuds
    ou parasiter les gros noeuds pour espioner ceux qui voulaient etre tranquille…

    mais je me demande… les hidden service (.onion) eux… ils passent pas par les noeuds de sortie ou bien ?

    en gros c’est comme un internet a l’interieur de tor non ?

  11. Super article merci , très instructif ! En plus de ça j’adore les tournures de phrases 🙂
    Sinon nonologie tu m’as tué .. T’as l’air assez intelligent mais à la fois très con et exécrable . Et puis c’est quoi ces fameuses étapes intermédiaires ? c’est ton commentaire qui n’a pas de sens tant que tu n’explique pas les aberrations qu’il contient . Bonne perche à l’acide mais pense à redescendre un jour , ça peut aider dans la vie de tous les jours..

  12. Bonsoir,

    C’est tt à fait intéressant.
    A-t-on des éléments sur le rapport entre proba de sortie et part dans la bande passante globale (de sortie bien sûr) ?

    Merci,

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>