Mis à jour le mercredi 30 novembre 2016
  • 15 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

Ce cours existe en eBook.

Vous pouvez obtenir un certificat de réussite à l'issue de ce cours.

J'ai tout compris !

Tor et le routage en oignon

Connectez-vous ou inscrivez-vous pour bénéficier de toutes les fonctionnalités de ce cours !

Le réseau Tor a été conçu pour protéger la vie privée de ses utilisateurs. Lorsque vous faites une requête par un proxy, le proxy est au courant de votre requête et de votre identité, et peut donc tout savoir sur vous.

Principe du routage en oignon

L'intérêt du réseau Tor réside dans le fait qu'il utilise plusieurs proxies (appelés relais) pour réaliser votre requête. Et cela change tout ! En effet, comme je vous l'ai dit précédemment, lorsque vous vous connectez à un proxy, votre connexion est chiffrée. Cela signifie que le message que vous lui envoyez ne peut être décodé que par lui.

Dès lors, lorsque vous utilisez plusieurs proxies, vous chiffrez plusieurs fois le message que vous voulez fournir au proxy qui fera votre requête. Ce message est décodé au fur et à mesure qu'il passe entre les différents proxies. Si bien qu'au final, seul le proxy qui fait votre requête connaît le message que vous lui avez adressé. C'est ce que l'on appelle le routage en oignon (qui donne son nom à Tor, qui signifie The Onion Router : le routeur en oignon).

Pour illustrer cela, faisons une analogie un peu plus concrète. Vous voulez envoyer un message à C, en passant par plusieurs intermédiaires. Vous prenez donc votre message et le mettez dans un coffre dont seul C a la clé (ici, ouvrir le coffre correspond à déchiffrer ce qu'il contient). Vous prenez ensuite ce coffre, et le mettez dans un autre coffre dont seul B a la clé, en ajoutant un petit mot "Fais passer ça à C". Et vous répétez l'opération, mais cette fois-ci dans un coffre dont seul A a la clé. Et vous passez ce coffre à A.

A va ouvrir le coffre, passer son contenu à B, qui va lui même ouvrir le coffre, passer son contenu à C, qui va ouvrir la coffre et lire le message. Et s'il veut vous répondre, il va donner la réponse à B, qui passera la réponse à A, qui vous donnera à son tour la réponse. Prenez ce procédé en remplaçant les coffres par un chiffrage du message et les intermédiaires par des relais, vous avez le fonctionnement de Tor !

Principe du routage en ognon, d'après un travail de H(Licence CC-BY-SA 3.0)
Principe du routage en oignon, d'après un travail de l'utilisateur HANtwister du Wikipedia Anglais (Licence CC-BY-SA 3.0)

Sur le réseau Tor, le message que vous voulez transmettre à un autre ordinateur d'Internet mais sans dévoiler votre adresse IP suit un cheminement similaire. Le message est d'abord chiffré de telle manière que seul le relais en bout de chaîne (le relais de sortie, ici C) puisse le déchiffrer, puis ce message chiffré est chiffré à nouveau si bien que seul le relais précédant le relais de sortie puisse le déchiffrer (ici, B). Et ainsi de suite pour les autres relais utilisés (ici, A).

On peut assimiler ces différents chiffrements à des couches qui enrobent votre message, et qui sont petit à petit enlevées par le réseau jusqu'à ce que le relais en bout de chaîne déchiffre votre message, qui peut être par exemple une requête pour votre site web préféré. Et c'est alors ce relais en bout de chaîne qui fait la requête pour vous, avec son adresse IP.

Intérêt du routage en oignon

Et ? Ça sert à quoi tout ça, à part perdre du temps à tout chiffrer, tout déchiffrer, et en plus multiplier les délais à cause de l'établissement de la connexion entre les différents intermédiaires ?

Comme je vous le disais, le réseau Tor a été conçu pour protéger la vie privée de ses utilisateurs.

Cette méthode du routage en oignon, qui est le cœur du réseau, a justement été inventée dans cette‌ optique. Pour mieux nous en rendre compte, voyons à quelles informations ont accès nos différents intermédiaires lorsque vous avez voulu faire passer votre message à C en utilisant plusieurs intermédiaires.

  • A sait que vous lui avez demandé de transmettre quelque chose à B.

  • B sait que A lui a demandé de transmettre quelque chose à C.

  • C sait que B lui donné un message, ici la requête.

Vous voyez où je veux en venir ? Ici, C ne sait pas que c'est VOUS qui avez envoyé le message. Il sait juste qu'il doit donner la réponse à B, qui lui-même sait qu'il doit donner la réponse à A, qui lui-même sait qu'il doit vous donner la réponse. Les différents intermédiaires ne connaissent que ceux qui sont en relation directe avec eux, pas ceux aux extrémités. Ainsi, votre message passe par une sorte de chaîne de relais, et ces derniers (qui constituent les maillons de la chaîne) ne connaissent que ceux qui sont en lien direct avec eux (les maillons voisins).

Nous avons ici une solution au problème rencontré en utilisant un proxy : celui qui fait la requête ne sait pas que c'est vous qui lui demandez de faire la requête. Dès lors, il peut conserver tout ce qu'il veut, il ne pourra pas directement savoir que c'est vous qui avez fait la requête.

Si l'on veut remonter jusqu'à vous, il faut avoir les informations de C, qui permettent de remonter à B, puis avoir les informations de B, qui permettent de remonter à A, et avoir les informations de A, pour enfin remonter jusqu'à vous. En pratique, il est quasi-impossible d'avoir toutes ces informations, car cela requiert la saisie de tous les serveurs ayant participé à la requête (A, B et C), ce qui se révèle extrêmement compliqué en raison des différentes législations auxquelles sont soumis les différents intermédiaires. Bref, une requête effectuée sur Tor sera beaucoup plus difficile à pister par un adversaire que si elle est faite par un simple proxy. C'est pour cela que Tor est le réseau d'anonymisation par excellence !

Exemple de certificat de réussite
Exemple de certificat de réussite