Mozilla Firefox, puis Google Chrome ont décidé récemment d'activer sur leurs navigateur la résolution DNS via le protocole HTTPS, il s'agit du DoH (pour DNS over HTTPS), proposé comme un standard il y a un an à l' IETF dans la ( RFC 8484 ). Firefox s'apprête même à l'activer par défaut et c'est imminent. Les mauvaises langues diront que ça revient une fois de plus à "webiser" un protocole qui fonctionne très bien sans le web... ce qui n'est pas entièrement faux, mais pas tout à fait vrai non plus. Il y a bien quelques heureux bénéfices à faire passer ses requêtes DNS en HTTPS.
Les performances
Le web "moderne" est fait d'appels distants à des api, à des sites tiers fournisseurs de services, régies publicitaires etc... ainsi il n'est pas rare que pour charger une pages notre requête initiale déclenche plusieurs dizaines de résolutions DNS et parfois en cascade. Le constat est sans appel, ce web tout aussi moderne soit-il est lent, et le coupable c'est en partie ces résolutions DNS qui n'en finissent plus. On attend du DoH une nette amélioration des performances . De ce point de vue donc, l'avantage serait au DNS Over HTTPS, mais en l'absence de benchmarks exhaustifs, il faudra le démontrer dans le temps.
La confidentialité
Les attaques MITM sont aussi vieilles que les réseaux. Si un tiers se place entre l'émetteur et le récepteur il devient capable d'intercepter et de modifier le contenu d'une communication. Et le gros soucis avec les DNS c'est que les requêtes passent en clair. On sait donc qu'une personne x a contacté un site y même si ce dernier est en HTTPS. On sait quelle page il a consulté et il suffit donc de s'y rendre pour en visionner le contenu et en déduire que monsieur x est un individu manifestement dangereusement radicalisé puisqu'il a passé 3 jours et fait 4986 requêtes sur https://debian.org .
Et là, vous vous dites que vous n'allez pas vous en sortir et qu'il va falloir bidouiller votre système, votre routeur ou la box de votre FAI pour pourvoir lui donner une configuration DNS alors que c'est celle de votre fournisseur d'accès internet qui prévaut. Notez qu'à ce stade, si vous utilisez un service VPN, strictement rien ne vas vous assurer que ce dernier n'intercepte pas vos requêtes DNS et vous piste. Là encore l'apport du DNS Over HTTPS est incontestable.
Le filtrage du web et les questions liées à sa neutralité
Nous le savons, en France, il existe un délit de consultation de "sites à caractère terroristes", en pratique, les requêtes DNS sont surveillées et un DNS "menteur" (à savoir les resolvers de tous les FAI grand public) peut vous retourner en réponse que le site demandé n'existe pas, ou qu'il est interdit de le consulter. Ceci est une fois de plus lié au fait que vos requêtes passent en clair et qu'il est simple pour un fournisseur d'accès de vous rediriger sur une page alors que vous vouliez en consulter une autre. De ce point de vue en revanche, ça coince un peu. Les fournisseurs d'accès Internet britanniques ont même attribué le titre d'"Internet Villain" à Mozilla, et certaines personnes (qui étrangement sont souvent les FAI grand public) objectent que le DNS Over HTTPS "pose plus de problème qu'il n'en résout". Et oui vous avez le droit du tiquer sur les arguments schizophréniques de type un classique "ça aide les criminels" associé au "il ne faut pas conseiller ça aux dissidents". Faire passer les requêtes DNS qui initialement transitaient de manière non chiffrées via le le port 53 en UDP par le port 443 de notre navigateur au lieu d'utiliser DNS Over TLS n'est pas un choix anodin. Comme le rappelait Stéphane Bortzmeyer dans cet article , d'autres expérimentations ont bien été menées comme le DNS Over TLS , mais ce dernier ayant le mauvais goût d'utiliser un port dédié (le 853), la farce est jouée quand on utilise le port 443 entendu que personne aujourd'hui n'aurait l'idée de bloquer ce port au risque de couper la quasi intégralité du Web.
Le seul point intéressant à soulever dans ce curieux article de ZDNET (US), c'est cette crainte de "centralisation" du trafic sur les quelques resolvers qui supportent à ce jour le DoH. Pour palier cette carence ( la liste des serveurs DoH publique n'est pas bien longue et très américaine ) et éviter un choix cornélien à ses utilisateurs, Mozilla a pris le parti de s'associer à Cloudflare qui a démontré sur Android avec 1.1.1.1 l'efficacité de son infrastructure DoH. Attention l'idée vous prenait d'utiliser Google en DoH, vous accepteriez en cochant la case du texte qu'on ne lit jamais que vos requêtes chiffrées soient traçable et vos données de navigation exploitables et revendables à des tiers qui évolueraient au doigt mouillé dans le secteur de la publicité en ligne à qui le DoH ne manquera pas de donner quelques maux de tête... Même le congrès américain commence à s'y intéresser de près . Certes nous manquons encore de choix, notamment lorsque l'on active (pour le moment manuellement) le DoH dans Firefox, mais ceci n'est probablement qu'une question de temps, il serait souhaitable et même normal que les utilisateurs puissent choisir leur serveur DoH et qu'ils se voient proposer un peu plus de choix.
screenshot activation DoH
Pour les barbus, et comme la centralisation pose rapidement des problèmes en matière de neutralité, d'abus de position dominante et à terme de sécurité, on se rend compte qu'il est souhaitable d'avoir le choix, de ne pas avoir à choisir qu'entre Google et Cloudflare pour prendre en charge nos requêtes DoH. À quoi va donc ressembler mon resolver du monde moderne, chiffré sans MITM et sans DNS menteurs dedans... Et bien il vous faudra installer un serveur/resolver DoH que vous trouverez ici . Et vous trouverez des tutoriels pour configurer tout ceci correctement et être en mesure d'encaisser des requêtes DNS chiffrées. Si l'envie vous prenait l'envie de proposer aux Internautes un serveur DoH public, vous feriez donc un bon geste pour le Net.
Ce que l'on attend en premier lieu d'un resolveur DNS public, c'est sa disponibilité, sa résilience, le fait de ne pas "mentir", ses performances, et maintenant, un certain niveau de confidentialité. De ce fait, il est important d'observer les meilleures pratiques possibles en terme de déploiement et de chiffrement (attention aux écueils de renouvellement de certificats si vous utilisez Letsencrypt par exemple). Du point de vue des performances, les différents accords entre opérateurs conditionnera comme ça a toujours été le cas la qualité du transit d'un réseau à l'autre.