Blog What We Do Support Community
Developers
Login Sign up

Lancement de notre résolveur DNS pour Tor

by Mahrud Sayrafi.

Au cas où vous ne seriez pas encore au courant, Cloudflare a lancé un service de résolveur DNS dédié à la protection de la vie privée le 1er avril. Ce n’était pas un poisson d’avril ! Ce service, notre premier axé sur les particuliers, est compatible avec les nouvelles normes DNS telles que DNS over HTTPS:443 et TLS:853 en plus des protocoles traditionnels over UDP:53 et TCP:53, le tout avec une adresse facile à retenir : 1.1.1.1.

Comme cela a été dit dans l’article d’origine, notre politique est de ne jamais, au grand jamais, inscrire les adresses IP des clients sur un disque, et d’effacer tous les journaux dans les 24 heures. Néanmoins, les personnes exceptionnellement soucieuses de la protection de la vie privée ne voudront peut-être pas révéler leur adresse IP au résolveur, et nous respectons cela. C'est pourquoi nous lançons un service Tor onion pour notre résolveur à l'adresse dns4torpnlfs2ifuz2s2yf3fc7rdmsbhm6rw75euj35pac6ap25zgqad.onion et accessible via tor.cloudflare-dns.com.

Remarque : ce résolveur caché en est encore au stade expérimental et ne doit pas être utilisé dans le cadre d'activités de production ou pour d'autres utilisations délicates tant qu'il n'a pas été plus amplement testé.

Cours accéléré sur Tor

Qu’est-ce que Tor ?

Imaginez un Internet alternatif où, pour vous connecter à www.cloudflare.com, au lieu de déléguer à votre fournisseur d'accès Internet la tâche de trouver un chemin vers nos serveurs, vous avez dû passer par les étapes suivantes pour atteindre Cloudflare :

  1. Vous calculez un chemin vers votre destination comme ceci :

    Vous -> votre FAI -> X -> Y -> Z -> www.cloudflare.com.
  2. Vous cryptez votre paquet avec la clé publique de Z, puis avec celle de Y, et enfin avec celle de X.
  3. Vous soumettez le résultat à X, qui le décrypte avec sa clé privée ;
  4. X soumet le résultat à Y, qui le décrypte avec sa clé privée ;
  5. Y envoie le résultat à Z, qui décrypte avec sa clé privée pour obtenir le paquet d’origine ;
  6. Z soumet le paquet à www.cloudflare.com.

Si chacun joue correctement son rôle, il est possible de faire en sorte que seul le relais d'entrée X connaisse votre adresse IP et que seul le relais de sortie Z connaisse le site Web auquel vous vous connectez, ce qui préserve votre anonymat et votre vie privée. Pour simplifier, disons que Tor est un ensemble d'ordinateurs et de serveurs gérés par des volontaires du monde entier qui servent de relais à un immense réseau édifié par-dessus Internet où chaque saut d'un relais à un autre retire une couche de cryptage, d'où son nom : le routeur de type oignon.

En quoi consistent les services cachés Tor ?

Garantir l'anonymat des internautes n'est pas la seule fonction du réseau Tor. Il convient en particulier de signaler que la connexion est toujours accessible par le relais de sortie et par toute personne se trouvant entre celui-ci et la destination, y compris les fournisseurs de réseau. Pour résoudre ce problème, et aussi pour assurer l'anonymat des éditeurs de contenu, Tor autorise les services cachés. Les services cachés (Onion) sont des nœuds Tor qui affichent leur clé publique, encodée comme une adresse avec le nom de domaine de premier niveau .onion, et établissent des connexions entièrement sur le réseau Tor :

Comment résoudre un domaine en utilisant Tor ?

Le processus de retour d'une adresse IP associée à un nom de domaine est appelé résolution DNS. Étant donné que Tor utilise toujours des adresses IP, vous devez toujours utiliser la résolution DNS pour naviguer sur le Web via Tor. Il existe deux méthodes courantes pour résoudre un nom de domaine en utilisant Tor :

  1. Résoudre le nom directement, puis communiquer avec l'adresse IP par le biais de Tor
  2. Demander à un relais de sortie Tor de résoudre publiquement le nom et de se connecter à l'IP

De toute évidence, la première option dévoile votre IP à votre résolveur DNS et, à moins que votre client n'utilise DNS-over-HTTPS ou DNS-over-TLS, elle dévoile votre nom de destination à votre FAI. Ce qui est moins évident, c'est que la seconde option peut vous exposer à des attaques par manipulation telles que l'empoisonnement du cache DNS ou sslstrip à cause de mauvais relais. C’est là qu’intervient notre nouveau service :

3.  Demandez notre service de résolveur basé sur .onion !

Comment fonctionne le résolveur caché de Cloudflare ?

Pour faire court, notre service de résolveur basé sur .onion est un service Tor caché qui transfère toutes les communications sur les ports DNS vers les ports correspondants sur 1.1.1.1, donc l'IP client apparente est une IP interne plutôt que la vôtre. Mais ce n'est pas tout.

Le résolveur caché est-il sécurisé ?

Il existe une différence notable entre l'utilisation de 1.1.1.1 et ce service : l'adresse .onion est « dns4tor » suivie de 49 caractères alphanumériques en apparence aléatoires. Cette chaîne de 56 caractères contient en fait une clé publique Ed25519 complète servant à sécuriser la communication avec le service caché. Cela implique un certain nombre de défis en matière de sécurité utilisable :

  1. Comment les utilisateurs peuvent-ils être sûrs que l'adresse est correcte ?

Nous avons tout simplement acheté un certificat avec tor.cloudflare-dns.com comme nom d'objet et l'adresse .onion comme nom alternatif. De cette façon, si vous êtes au bon endroit, vous devriez voir ceci :

2.   Comment les utilisateurs peuvent-ils mémoriser cette adresse ?

Selon nous, il est inutile de mémoriser cette adresse. Dans l'idéal, il vous suffit d'aller sur https://tor.cloudflare-dns.com et de demander au navigateur d'acheminer votre demande à l'adresse .onion. Cette procédure est possible grâce à l'en-tête HTTP optionnel « Alt-Svc » avertissant le navigateur que les ressources sont accessibles depuis un autre emplacement réseau, par le biais d'un éventuel protocole différent. Firefox Nightly, de Mozilla, permet désormais d'utiliser les adresses .onion comme services alternatifs.

Considérez cette fonctionnalité comme un cryptage opportuniste : une fois que votre navigateur reçoit un en-tête Alt-Svc indiquant qu'une adresse .onion est disponible pour tor.cloudflare-dns.com, s'il sait que les adresses .onion sont accessibles (par exemple via un proxy SOCKS), il tente de vérifier que le service alternatif a le même niveau de sécurité ou un niveau supérieur. Il s'agit notamment de s'assurer qu'il est possible de se connecter au service caché à l'aide du même certificat et du même nom de serveur. Si c'est le cas, le navigateur utilise plutôt le service alternatif, ce qui garantit que vos futures requêtes ne quitteront pas le réseau Tor.

Notre résolveur caché est-il rapide ?

Imaginons qu'entre deux points sur Terre, on ait installé un câble à fibre optique capable de transmettre des paquets sans perte et à la vitesse de la lumière.

Avec un calcul rapide, il est facile de voir qu'en moyenne, chaque paquet parcourt une distance correspondant à un quart de la circonférence de la Terre en 33 ms environ, tandis que chaque paquet Tor a besoin de 200 ms pour réaliser un tour et demi du monde et atteindre un service caché, soit trois tours pour un voyage qui permet de préserver l'anonymat des deux parties.

Cloudflare, cependant, n'exige pas l'anonymat pour ses serveurs, c'est pourquoi nous pouvons réduire le nombre de relais à seulement trois en activant un paramètre facultatif pour les services cachés qui privilégie les faibles latences plutôt que l'anonymat géographique du service. Soulignons que cela n'a aucune incidence sur la vie privée ou l'anonymat des clients. En effet, comme vous l'avez peut-être remarqué, dans la première image représentant le service caché, l'origine est à trois sauts du point de rendez-vous alors que notre service caché est à un seul saut.

Nous travaillons activement au développement de moyens permettant d'accélérer ce service et de réduire au maximum les temps morts.

Pourquoi devrais-je utiliser le résolveur caché de Cloudflare ?

Avant toute chose, la résolution des requêtes DNS via le réseau Tor, par exemple en se connectant au résolveur 8.8.8.8 de Google, garantit un niveau d'anonymat bien plus élevé que celui des requêtes effectuées directement. Non seulement cela empêche le résolveur de voir votre adresse IP, mais même votre FAI ne saura pas que vous avez tenté de résoudre un nom de domaine.

Néanmoins, à moins que la destination ne soit un service caché, les attaquants passifs peuvent capturer des paquets sortant du réseau Tor, et les nœuds de sortie malveillants peuvent empoisonner les requêtes DNS ou dégrader le cryptage via sslstripping. Même si vous ne naviguez que sur des sites HTTPS, les attaquants passifs peuvent savoir à quelles adresses vous vous êtes connecté(e). Pire encore, les personnes capables de comparer le trafic avant qu'il n'entre sur le réseau Tor et après qu'il quitte le réseau peuvent potentiellement utiliser les métadonnées (taille, temps, etc.) pour lever l'anonymat du client. La seule solution est donc d'éliminer le recours aux nœuds de sortie en utilisant plutôt des services cachés. C'est ce que propose notre résolveur basé sur .onion.

De plus, si votre client ne prend pas en charge les requêtes DNS cryptées, l'utilisation d'un résolveur basé sur .onion peut sécuriser la connexion contre les attaques on-path, y compris les attaques de type « BGP hijacking ». Cela se traduit par un niveau de sécurité pour DNS-over-UDP et DNS-over-TCP comparable à celui de DNS-over-HTTPS et DNS-over-TLS.

Cependant, ce service n'est pas uniquement destiné à préserver votre anonymat. Ce qui permet à Tor de garantir l'anonymat de chacun, c'est le nombre de personnes qui l'utilisent. Si seuls les lanceurs d'alerte, par exemple, utilisaient le réseau Tor, alors toute personne se connectant au réseau Tor serait automatiquement soupçonnée d'être un lanceur d'alerte. Par conséquent, plus il y aura de gens qui utiliseront Tor pour visionner des mèmes ou regarder des vidéos de chats sur Internet, plus il sera facile pour ceux qui ont vraiment besoin d'anonymat de se fondre das la masse avec le trafic.

La lenteur de Tor rebute beaucoup d'utilisateurs. Je peux donc comprendre les gens qui ne veulent pas sacrifier leurs temps de chargement rapides pour préserver l'anonymat des activistes et des dissidents. Cela dit, les requêtes DNS sont petites et, étant donné que la plupart des navigateurs et des systèmes d'exploitation cachent les résultats DNS, le trafic total n'est pas très important. En conséquence, l'utilisation de ce résolveur basé sur .onion ne ralentira que légèrement votre requête DNS initiale sans rien ralentir d'autre, tout en contribuant à la préservation de l'anonymat global du réseau Tor et de ses utilisateurs.

Pourquoi ferais-je confiance au résolveur caché de Cloudflare ?

L'utilisation d'un résolveur basé sur .onion vous garantit que votre FAI ne découvrira jamais que vous résolvez un domaine, que les nœuds de sortie n'auront pas la possibilité de manipuler les réponses DNS et que le résolveur ne connaîtra jamais votre adresse IP. Cependant, l'utilisation du résolveur de Cloudflare basé sur .onion présente l'avantage unique de combiner la puissance de Tor avec toutes les fonctionnalités de protection de la vie privée du résolveur 1.1.1.1, telles que la minimisation du nom de requête, ainsi qu'une équipe d'ingénieurs œuvrant pour son amélioration à chaque niveau, notamment sur les protocoles DNS-over-HTTPS et DNS-over-TLS.

Comme l'a dit Matthew Prince, PDG de Cloudflare, il y a environ deux ans, nous accordons une grande valeur à l'anonymat en ligne. De plus, lorsque nous avons annoncé le résolveur 1.1.1.1, nous nous sommes engagés à faire tout notre possible pour ne pas savoir ce que vous faites sur Internet. En offrant un moyen d'utiliser le résolveur sur le réseau Tor et en le rendant aussi rapide que possible, nous faisons un grand pas dans cette direction.

Comment le paramétrer ?

Le résolveur basé sur .onion est compatible avec tous les protocoles DNS compatibles avec 1.1.1.1, uniquement sur le réseau Tor. Cependant, comme tous les clients DNS ne sont pas capables de se connecter au réseau Tor, il est nécessaire de se livrer à quelques manipulations pour le faire fonctionner. Nous allons expliquer ici comment configurer DNS-over-HTTPS à partir du résolveur basé sur .onion, mais pour toutes les autres utilisations, rendez-vous sur notre page développeurs pour en savoir plus sur l'utilisation du résolveur basé sur .onion.

Vous vous souvenez de cloudflared ?

Voici comment vous pouvez configurer cloudflared pour démarrer un client DNS qui utilise DNS-over-HTTPS, redirigé à travers le réseau Tor :

  1. Tout d’abord, commencez par télécharger cloudflared en suivant le guide d’exécution d’un client DNS-over-HTTPS.
  2. Démarrez un proxy Tor SOCKS et utilisez socat pour rediriger le port TCP:443 vers localhost :
socat TCP4-LISTEN:443,reuseaddr,fork SOCKS4A:127.0.0.1:dns4torpnlfs2ifuz2s2yf3fc7rdmsbhm6rw75euj35pac6ap25zgqad.onion:443,socksport=9150

3. Demandez à votre ordinateur de traiter l'adresse .onion comme localhost :

cat << EOF >> /etc/hosts 
127.0.0.1 dns4torpnlfs2ifuz2s2yf3fc7rdmsbhm6rw75euj35pac6ap25zgqad.onion 
128.EOF

4.  Enfin, lancez un daemon DNS over UDP local :

cloudflared proxy-dns --upstream "https://dns4torpnlfs2ifuz2s2yf3fc7rdmsbhm6rw75euj35pac6ap25zgqad.onion/dns-query"
INFO[0000] Adding DNS upstream                           url="https://dns4torpnlfs2ifuz2s2yf3fc7rdmsbhm6rw75euj35pac6ap25zgqad.onion/dns-query"
INFO[0000] Starting DNS over HTTPS proxy server          addr="dns://localhost:53"
INFO[0000] Starting metrics server                       addr="127.0.0.1:35659"

5.  Il ne vous reste plus qu’à profiter !

comments powered by Disqus