« Mise en place d'un relais Tor » : différence entre les versions

De Marijan Stajic | Wiki
Aller à la navigation Aller à la recherche
 
Ligne 1 : Ligne 1 :
= Qu'est-ce que le réseau Tor =
= Qu'est-ce que le réseau Tor =
[[Fichier:Tor22.png|none]]


Tor est un réseau avec son propre navigateur qui a pour objectif de '''naviguer tout en étant le plus anonyme possible'''.
Tor est un réseau avec son propre navigateur qui a pour objectif de '''naviguer tout en étant le plus anonyme possible'''.

Dernière version du 30 avril 2023 à 13:27

Qu'est-ce que le réseau Tor

Tor est un réseau avec son propre navigateur qui a pour objectif de naviguer tout en étant le plus anonyme possible.

Éléments de base

Avant d'entrer dans le fonctionnement de Tor, il est important de comprendre certains points, notamment la différence entre le Deep Web et Dark Web, le fonctionnement d'un serveur proxy et le chiffrement des données.

Deep et Dark Web

Il existe une grande différence entre le Deep Web et le Dark Web.

Le Deep Web représente des sites internet non indexée par les moteurs de recherche connus, comme Google, Bing ou Yahoo. Ce sont donc des sites web auxquels nous pouvons accéder uniquement si nous avons un lien.

Le Dark Web sont des sites qui ne sont pas accessibles depuis les moteurs de recherche connus. On peut les retrouver uniquement sur des moteurs comme DuckDuckGo.

Tor peut-être donc considéré comme un Dark Web, car il existe des sites dans le réseau qui ne sont pas accessibles sur l'internet "standard", même si en réalité on n'utilise pas le terme "Dark Web" mais plutôt "réseau anonyme". Aussi, pour la recherche Tor utilise DuckDuckGo.

Serveur proxy

Un proxy peut avoir plusieurs fonctionnements, mais le plus standard est celui qui nous intéresse dans notre cas, c'est le fait de permette à l'utilisateur d'être anonyme sur internet.

Par exemple, nous avons un client qui utilise un proxy et qui souhaite accéder à Youtube.com.

Fonctionnement proxy.png
  1. Dans un premier temps, le client va faire une recherche sur son navigateur de Youtube.com. La requête du client va être envoyée au proxy avec l'IP de son FAI.
  2. Ensuite, le proxy va transmettre la requête avec son adresse IP vers Youtube.com.
  3. Youtube.com va répondre à la demande et va envoyer la requête à l'adresse IP du proxy.
  4. Le proxy va finalement envoyer la réponse de Youtube.com au client.
  • Youtube.com ne peut pas communiquer avec le client car il ne connait pas son adresse IP. Il va donc passer par le proxy. D'ailleurs, Youtube.com ne sait pas qu'il passe à l'intérieur d'un proxy. L'utilisateur est donc anonyme sur internet.

Un autre exemple de proxy concret, à la maison : Vous avez votre adresse IP locale (192.168.1.X) et, lorsque vous sortez, vous passez par le routeur de votre FAI qui ce situe entre vous et internet. Ce dernier a aussi une adresse IP, qui est donc différente de celle de votre ordinateur. Il y a également des entreprises qui proposent des services de proxy.

Cryptographie

La cryptographie permet de rendre incompréhensible par exemple un document pour un utilisateur car il sera chiffré. Le seule moyen de comprendre ce qui est écrit, c'est de le déchiffrer.

Chiffrement

Le concept de la chiffrement est une branche du chiffrement qui consiste à chiffrer toutes les données avec des clés afin de les rendre illisibles en remplaçant par exemple des lettres d'un message clair par un caractère au hasard de telle sorte à le rendre indéchiffrable sans clé.

Symétrique

Voici le fonctionnement de la cryptographie symétrique :

  • Une seule clé est utilisée pour cette méthode.
    Clef S.png
  1. Dans un premier temps, Marijan va envoyer une clé secrète à Fabien. Les deux utilisateurs se trouvent dans le même canal de communication.
    Crypto symetrique 01 01 01.png
  2. Ensuite, Marijan va envoyer un message à Fabien qu'il va chiffrer en utilisant la clé secrète.
    Crypto symetrique 02 02.png
  3. Fabien a reçu le message de Marijan qui est chiffré. Il va utiliser la clé qu'il a reçue pour le déchiffrer.
    Crypto symetrique 03 03.png
Asymétrique

Voici le fonctionnement de la cryptographie asymétrique :

  • Cette fois, il y aura pas une clé, mais deux. Une clé publique et une clé privée.
    Clef.png
  1. Dans un premier temps, Marijan va envoyer sa clé publique à Fabien et inversement, Fabien va envoyer la sienne à Marijan. Les deux utilisateurs se trouvent dans le même canal de communication.
    Crypto asymétrique 01 01.png
  2. Ensuite, Marijan va envoyer un message à Fabien qui va le chiffrer avec la clé publique à Fabien.
    Crypto asymétrique 02.png
  3. Fabien a reçu le message de Marijan qui est chiffré. Il va utiliser sa clé privée pour le déchiffrer.
    Crypto asymétrique 03.png

Routage en oignon

Le réseau Tor peut s'apparenter à une utilisation d'un proxy, sauf qu'il en contient plusieurs. Ceux-ci étant appelés des relais, les requêtes clients passent par plusieurs relais avant d'arriver au dernier, qui lui fera la requête finale, par exemple pour se rendre sur un site web.

Voici son fonctionnement lorsqu'un utilisateur se rend sur un site .onion :

Tor Chiffrement Officiel.drawio (1).png
  1. L'utilisateur se rend sur un site .onion avec le client Tor.
  2. Le client Tor va établir un itinéraire jusqu'au site internet en passant par les différents relais.
  3. Il va en premier récupérer la clé secrète du dernier relais.
  4. Ensuite, il va récupérer une clé publique de chaque proxy.
  5. Avec ces clés, il va utiliser en premier la clé secrète pour chiffrer le contenu. Par la suite, il va utiliser la clé publique du relais final pour chiffrer la requête du client.
  6. Ensuite, la requête déjà chiffrée avec la clé publique du relais final va être chiffrée à nouveau part le client Tor avec la clé publique du relais qui se trouve juste avant. Cette action sera répétée sur tous les relais qui se trouvent entre l'utilisateur et le relais final.
  7. Maintenant, notre requête va pouvoir être envoyée (Voir Échanges entre relais).
  8. La réponse fera le chemin inverse.

Si le site qu'on cherche est un site avec le TLD .onion, il est possible que le relais final soit le relais qui héberge le site en question. Par contre, si ce n'est pas un .onion mais par exemple un .com, le relais de sortie peut être n'importe lequel, tant que ce dernier a la configuration pour accepter d'être celui de sortie. C'est grâce à cette information que le client Tor établit l'itinéraire.

Il est important de souligner qu'il y a une différence entre un relais final et un relais de sorti. Un relais final est un relais qui héberge un site .onion et qui est donc le dernier relais dans le l'itinéraire. Le relais de sortie est aussi le dernier de l'itinéraire, mais celui-ci permet l'accès à un site qui se trouve sur internet, donc par exemple Youtube.com.

Échanges entre relais

Désormais, on sait comment le chiffrement se passe, on va voir maintenant comment l'échange se déroule entre les différents relais :

  • Comme vu dans le point précédant, le client Tor a chiffré le contenu avec la clé secrète puis la publique du relais final, qui elle a été chiffreé également par le client avec la clé publique du relais juste avant et cette action a été répétée jusqu'à ce que tout ce qui se trouve entre l'utilisateur et le relais soit chiffré.
Tor Echange Relais.drawio2.png
  1. Le premier relais va déchiffrer avec sa clé privée la requête car c'est lui qui a chiffré en dernier lors du chiffrement.
  2. Ensuite, il voit qu'il doit envoyer la requête vers le prochain relais.
  3. Cette action va se répéter jusqu'à arriver vers le relais final.
  4. Une fois la requête arrivée au relais final, il va pouvoir déchiffrer.
  5. Il devra encore une fois déchiffrer avec la clé secrète avant de pouvoir accéder au contenu et pouvoir traiter la demande.

L'objectif avec cette méthode de chiffrement et déchiffrement, c'est que le premier relais sait d'où provient la requête mais ne connait pas son contenu car elle est chiffrée. Et le relais final, lui, voit le contenu de la requête mais ne sait pas d'où elle provient car il voit simplement que c'est un relais qui lui l'envoie.

Chaque relais représente une couche d'un oignon, d'où le logo de Tor.

Domaine .onion

Sur l'internet "standard", les sites sont sécurisés grâce au protocole HTTPS. Pour activer ce protocole, l'administrateur est obligé d'installer un certificat SSL sur son serveur web. Pour obtenir ce certificat, il doit le demander auprès des autorités de certification et donc leur fournir des informations importantes sur le propriétaire du site. En fournissant ces données, on perd la notion de l'anonymat.

C'est pour cela que Tor a mis en place une alternative afin de conserver l'extension .onion pour les sites internet. L'administrateur du serveur n'a pas besoin d'un certificat SSL pour attester que son site est sécurisé. Évidemment, Les sites internet avec l'extension .onion sont réservés au réseau Tor, nous ne pouvons donc pas y accéder sans le client.

Pour assurer l'authenticité du site et être sûr que ce dernier ne soit pas un site pirate, le réseau Tor se base sur le nom de domaine qui indique quel relais est à utiliser. Lors de la création du domaine, ce dernier est créé à l'aide d'une de la clé publique du relais qui l'héberge, ce qui explique pourquoi les sites en .onion correspondent à une chaine de caractères aléatoires. C'est donc grâce à ce nom que le client arrive à identifier quel nom est lié à quel relais.

Liens pratiques

Voici une liste de quelques liens pratiques :

The Hidden Wiki : Regroupe plusieurs site en .onion: http://zqktlwi4fecvo6ri.onion. Note: L'URL peut changer, à ce moment-là nous pouvons aller sur le site "normal", à l'adresse suivante: http://thehiddenwiki.org/
Torch : Tout comme le web classique, il existe également un équivalent d'un moteur de recherche qui indexe les liens .onion: http://xmh57jrzrnw6insl.onion
DuckDuckGo : Tout comme pour le web classique, ce moteur de recherche est disponible sur le réseau Tor: http://3g2upl4pq6kufc4m.onion

Informations

Voici le matériel à disposition pour ce projet :

  • Un mini PC X3700m avec un Debian 11
  • Un routeur ADB ST6840

Le mini PC est utilisé avec le routeur ADB ST6840, son IP local est réservée par adresse MAC : 192.168.1.50, un port forwarding existe pour se connecter dessus depuis le réseau VTX en SSH sur le port 1337.

Relais Tor

Voici la procédure pour mettre en place un relais standard sur le réseau Tor.

1. Dans un premier temps, il faudra installer les packages de Tor.

apt-get install tor

2. Une fois les packages installé, nous allons pouvoir modifier le fichier de configuration de Tor.

vim /etc/tor/torrc

2.1. Il y a plusieurs choses à modifier dans le fichier de configuration. La première chose est d'indiquer sur quel port Tor doit écouter.

ORPort 9001
  • Il faudra également mettre en place une règle de port forwarding vers le relais Tor en autorisant le port 9001.

2.2. Ensuite, il faudra définir le nom de votre relais.

Nickname stajicrelay

2.3. Il faudra ensuite définir la bande passante du relais.

RelayBandwidthRate 100 KB  # Throttle traffic to 100KB/s (800Kbps)
RelayBandwidthBurst 200 KB # But allow bursts up to 200KB/s (1600Kbps)

2.4. Il est important d'indiquer que nous souhaitons pas que notre relais soit un relais de sortie.

ExitPolicy reject *:* # no exits allowed

3. Une fois la configuration terminée, nous pouvons redémarrer le service Tor.

/etc/init.d/tor restart

4. Pour être sûr que tout est en ordre et que le relais a bien été accepté, vous pouvez vérifier les journaux système (logs). Si le message de test automatique (Self-testing) est validé, cela confirme que tout fonctionne correctement.

cat /var/log/syslog | grep tor -i

Self-testing indicates your ORPort IP:9001 is reachable from the outside. Excellent. Publishing server descriptor.

5. Il est important que votre relais soit sur la dernière version afin d'être utilisé.

tor --version

5.1. Il est possible que sa ne soit pas le cas comme sur Debian car le repository ne soit pas à jour. Vous pouvez mettre à jour vous mêmes directement en allant chercher la dernière version de Tor. Pour ce faire, installé dans un premier temps le package apt-transport-https.

apt-get install apt-transport-https

5.2. Ensuite, il faudra créer un fichier tor.list et inscrire les lignes suivantes dedans.

vim /etc/apt/sources.list.d/tor.list

deb     [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org bulleyes main
deb-src [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org bulleyes main
  • Il faudra modifier l'information distribution par rapport à la version que vous avez. Vous pouvez faire la commande lsb_release -c ou alors ce rendre sur ce lien pour vérifier le nom des versions. Par exemple pour Debian 11, sa sera bulleyes.

5.3. Une fois le fichier créer et rempli, il faudra ajouter la clé GPG.

wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor | tee /usr/share/keyrings/tor-archive-keyring.gpg >/dev/null

5.4. Pour terminer, il faudra mettre à jour le système et installer de nouveau les packages de Tor.

apt update && apt-get install tor deb.torproject.org-keyring

Monitoring

Une fois le relais en place et en ligne, il est possible d'avoir quelques informations sur ce dernier depuis le site Tor Metrics - Relay Search.

Tor Metrics.png

Aussi, il est possible de monitorer votre relais directement en shell en utilisant l'outil Nyx. Vous pouvez ainsi obtenir des informations détaillées en temps réel sur votre relais, telles que l'utilisation de la bande passante, les connexions, les journaux et bien d'autres choses encore.

Pour l'installer, il suffit de simplement télécharger le package.

apt-get install nyx