DNS via HTTPS

et si on choisissait ?

C’est quoi cette histoire de DNS ?

  Le Domain Name System est une technologie qui traduit la demande d’adresse (« requête ») d’un⋅e internaute formulée en clair en adresse IP, c’est-à-dire l’adresse de la machine qui héberge le domaine désiré.
  Il s’agit d’une série de chiffres séparés par des points qu’on n’a envie ni de retenir ni de saisir laborieusement dans une barre d’adresse. Le service de DNS qui est comme un annuaire se débrouille à notre place pour retrouver l’adresse à laquelle nous voulons accéder.

Par exemple, je saisis
framablog.org
et le DNS va aller chercher le serveur dont l’adresse IP est :
2a01:4f8:a0:9132::85
et me « servir » la page voulue, la recherche et son retour ne prennent que quelques millisecondes.

C’est cool et ça marche très bien sans qu’on ait besoin de s’en occuper.

En réalité, plusieurs serveurs de DNS dont les missions sont différentes entrent en interaction pour déterminer où trouver la bonne adresse et nous renvoyer le résultat mais ce n’est pas notre problème (bien plus de détails précis et précieux dans ces diapos de S. Bortmeyer ou pour les plus techniques, un de ses nombreux articles sur la question)

Mais alors pourquoi est-il préférable de masquer les requêtes DNS ?

Une requête est généralement envoyée avec une connexion en texte brut. Cette connexion n’est pas chiffrée, ce qui permet à des yeux indiscrets de savoir assez facilement quel site web vous voulez visiter.
Qui peut voir ce que vous faites ? – quelqu’un qui est en même temps que vous sur un réseau Wi-Fi public, votre Fournisseur d’Accès à Internet ou d’autres personnes de votre réseau local… En réalité de multiples situations banales, ça fait pas mal de monde…
une question de sécurité…
L’intérêt des pirates éventuels c’est de vous faire croire par exemple, en trafiquant les requêtes DNS, que vous êtes sur le site de votre banque alors que ce n’est pas le cas, de sorte qu’ils pourront vous soutirer à votre insu vos coordonnées bancaires.
…et de confidentialité
Vous n’avez pas forcément envie que tout le monde puisse savoir quelle vidéo vous regardez de façon compulsive, il vaut mieux dès lors adopter…

Le DNS via HTTPS (DNS over HTTPS en anglais, abrégé en DoH) Doh par Omer Simpson

Oui mais non parce que…

Il existe des cas de figure où vous pouvez penser légitimement que ce n’est pas une bonne idée de choisir cette solution :

  • vous souhaitez que soient maintenues les restrictions d’un système de contrôle parental
  • vous souhaitez que soient maintenus les paramètres restrictifs de votre réseau privé ou d’entreprise et que le DNS via HTTPS ne les contourne pas.
  • vous êtes comme Comcast et vous voulez pouvoir continuer à surveiller l’historique de navigation des internautes, vous faites donc du lobbying contre le DNS via HTTPS pourtant déjà choisi par Mozilla pour Firefox, et que Google va implémenter bientôt pour Chrome…

Vous n’êtes dans aucun de ces cas ? Alors voici de quoi il s’agit exactement.

Le DNS via HTTPs, qu’est-ce ?

C’est un protocole qui envoie le nom de domaine saisi vers un serveur DNS à travers une connexion chiffrée (HTTPS). Ainsi les indiscrets de toutes sortes ne peuvent plus voir quels sites web vous désirez parcourir.

« Le but est double : empêcher un tiers de lire les requêtes DNS, qui sont souvent révélatrices, […] et protéger les réponses DNS contre des modifications, faites par exemple à des fins de censure. Le statu quo (laisser le DNS être le seul protocole important qui ne soit pas protégé par la cryptographie) n'est pas tolérable » a écrit Stéphane Bortzmeyer

Avec mon navigateur Firefox, c’est facile à régler…

Ben oui c’est juste une case à cocher dans les Préférences (ou Options si vous êtes encore sous Windows) Voilà une copie d’écran du site de SUMO, l’assistance de Mozilla qui vous explique comment faire. activation du DNS via HTTPS dans Firefox

Un autre serveur que Cloudflare, pour quoi faire ?

Cloudflare est le fournisseur de DNS par défaut que vous propose Firefox. Mozilla assure qu’il a contractualisé de façon très stricte avec Cloudflare pour que les données privées des utilisateurs et utilisatrices échappent à l’espionnage.

Mozilla a mis en place une politique TRR (Trusted Recursive Resolver) qui interdit à CloudFlare ou à tout autre partenaire du DoH Firefox de collecter des informations d'identification personnelle. Pour atténuer ce risque, les partenaires sont contractuellement tenus de respecter cette politique (source)

On peut faire confiance ou non, se demander si cet accord strict sera toujours entièrement respecté.

Mais le vrai problème c’est que Cloudflare…

  • est une entreprise étatsunienne, donc ce qui transite par son service de DNS est susceptible d’être intercepté et déchiffré par la NSA
  • est un géant qui a la main sur 35 % du marché, donc centralise de façon de plus en plus hégémonique
  • en raison même de sa taille, a une « surface d’attaque » qui en fait une cible de choix pour des pirates potentiels. Pour l’instant, rien à signaler. Mais qui peut dire qu’il en sera toujours ainsi ? Sans compter que lorsque Cloudflare défaille, c’est une portion immense du Web qui trinque : « une panne Clouflare a paralysé une bonne partie du Web le mardi 2 juillet 2019. Des millions de sites web hébergés par la firme américaine étaient en effet complètement inaccessibles » (source).

Bon alors comment on fait ?

C’est là qu’intervient la possibilité d’adopter un autre serveur de DNS (on devrait parler de « résolveur » puisqu’il « résout » les requêtes).
Mais lequel, où est-ce que je vais trouver ça ?
Et comment ça marche, pour moi qui comprends à peine la différence entre une balise HTML et une balise de chantier ?
perplexité du gars entre deux balises de chantier insérées dans des balises html

C’est là qu’entrent en scène de courageux pionniers qui ont les compétences et la générosité de nous fournir un autre service de DNS. Voici en particulier ce que Valère vous propose. Notez d’ailleurs qu’il vous propose non seulement DoH mais aussi DoT (DNS via TLS). Qu’est-ce que c’est que ce machin-là encore, se demande la team #JeComprendsRienmaisÇaMintéresse ? Valère explique :

DoH résout uniquement les requêtes de ton navigateur web, avec DoT c'est l'ensemble des requêtes du système qui est redirigé vers le résolveur DNS utilisé.

Mais alors il faut faire confiance à un autre fournisseur de DNS ?

Oui, il faut avoir confiance. La sécurité ultime et absolue n’existe pas, il y a donc un point où il faut faire confiance, que ce soit à un copain bidouilleur, à la copine geek, à la boutique d’informatique du quartier, à un fournisseur d’accès à Internet, à un CHATONS…

Il est évidemment nécessaire de prendre ses précautions avant d’accorder sa confiance à la personne qui vous fournit un DNS. Un bon moyen est de demander à cette personne quelle est sa « politique » en termes de gestion de la ressource, de confidentialité etc. Comme on pouvait s’y attendre, cette page de S. Bortzmeyer sur son propre résolveur donne un exemple intéressant et relativement rassurant. C’est une sorte de charte (émaillée, quelle surprise, de fascinantes RFC), mais qui ne cache pas les limites :

Je suis sincère (si, si, faites-moi confiance) mais ce serveur dépend d'autres acteurs. C'est une simple machine virtuelle et l'hébergeur peut techniquement interférer avec son fonctionnement. C'est d'autant plus vrai que la machine est en France et donc soumise à diverses lois liberticides comme la loi Renseignement.

Mais si tout le monde se précipite sur le DNS de Valère…

Oui ce serait très bête de tout re-centraliser chez Valère, c’est pourquoi il faudrait idéalement que bon nombre de libristes aussi généreux que lui imitent son exemple et que se multiplient les résolveurs DNS comme ceux qui sont répertoriés ici.
Alors, qui s’y colle ?


Quelques-unes des ressources tranquillement pillées pour cet article :

*deux articles de SUMO :
-FAQ de DNS via HTTP
-DNS via HTTPS avec Firefox
*deux articles de Bortzmeyer :
-DoH et ses adversaires
-La politique du résolveur de Bortmeyer

** merci à Valère et Luc pour leurs recommandations et améliorations !