Depuis plusieurs mois, le petit monde feutré des opérateurs de DNS public est en ébullition (si si c’est possible)… La faute à Cloudflare et Quad9 qui ont mis en service des nouveaux serveurs DNS respectivement accessibles aux adresses 1.1.1.1 et 9.9.9.9. Alors, outre le fait que leurs IP soient facilement mémorisables, qu’apporte ces nouveaux serveurs ? Voyons ça de plus prêt dans la suite de l’article…

Touche pas à mes données !

Globalement, la confidentialité sur le net à tendance à s’améliorer grâce à l’utilisation de plus en plus systématique du protocole HTTPS (vous savez, le cadenas vert à côté de l’adresse du site que vous visitez), il reste pourtant encore pas mal de points à améliorer et le DNS en fait partie. A l’heure actuelle, lorsque vous faite une requête DNS pour connaitre l’adresse IP du site que vous souhaitez consulter, les échanges sont non sécurisés. Cela veut dire que n’importe quel opérateur positionné entre vous et le serveur DNS peut connaître votre historique de navigation et, cerise sur le gâteau, vous n’êtes même pas certain de dialoguer avec le bon serveur. Bref, c’est la porte ouverte à toutes les fenêtres pour les pirates et censeurs en herbe !

C’est pour combler ces lacunes que Clouflare et Quad9 ont décidé de sécuriser leurs serveurs DNS en proposant (entre autres) l’utilisation des protocoles DNS over TLS et DNS-over-HTTPS.

DNS over Quoi ?

Pas de panique, malgré ces noms un peu barbare, le concept est plutôt simple à comprendre. Vu que le protocole DNS est par nature non sécurisé, il suffit de l’encapsuler (c’est qu’indique le mot « over ») dans d’autres protocoles qui eux le sont (sécurisé, vous suivez ?).

Dans le cadre du DNS over TLS, on va utiliser le sus-nommé protocole TLS pour authentifier le serveur DNS et chiffrer les échanges. Les communications vont se faire sur le port 853 afin de bien différencier les flux chiffrés de ceux non chiffrés qui se font traditionnellement par le port 53.

Testons une requête DNS vers le serveur de Cloudflare en utilisant le protocole DNS over TLS et voyons s’il nous répond correctement !

J’utilise ici getdns_query qui a l’avantage d’être compatible avec le DNS over TLS… L’outil est disponible sous Linux / Windows et MacOS.

getdns_query @1.1.1.1 -s -l L www.vmware.com AAAA

SYNC response:
{
  "answer_type": GETDNS_NAMETYPE_DNS,
  "canonical_name": <bindata for e751.dscx.akamaiedge.net.>,
  "just_address_answers":
  [
    {
      "address_data": <bindata for 2a02:26f0:105:281::2ef>,
      "address_type": <bindata of "IPv6">
    },
    {
      "address_data": <bindata for 2a02:26f0:105:286::2ef>,
      "address_type": <bindata of "IPv6">
    }
  ],
 ...
}

En ce qui concerne le DNS over HTTPS, vous l’aurez sûrement deviné, de simples requêtes HTTP vont être utilisées pour interroger votre serveur DNS. Et comme le protocole HTTP peut-être sécurisé en rajoutant une couche de TLS (le S de HTTPS) on obtient une nouvelle fois le but recherché !

Pour mieux comprendre le fonctionnement du DNS over HTTPS, on peut utiliser un outil tel que curl pour effectuer une requete DNS sur le nouveau serveur de Cloudflare.

curl 'https://cloudflare-dns.com/dns-query?ct=application/dns-json&name=myvmworld.fr&type=AAAA' | jq

{
  "Status": 0,
  "TC": false,
  "RD": true,
  "RA": true,
  "AD": false,
  "CD": false,
  "Question": [
    {
      "name": "myvmworld.fr.",
      "type": 28
    }
  ],
  "Authority": [
    {
      "name": "myvmworld.fr.",
      "type": 6,
      "TTL": 3600,
      "data": "jessica.ns.cloudflare.com. dns.cloudflare.com. 2027366940 10000 2400 604800 3600"
    }
  ]
}

Vous remarquerez qu’on obtient une réponse au format JSON. C’est un des avantages de ce protocole. Avec lui plus besoin de configurer au préalable un client DNS sur votre poste ou serveur. Une application peut directement effectuer ces propres requêtes DNS.

Ok, pour résumer, on a maintenant à notre disposition des serveurs DNS avec lesquels on peut dialoguer de manière sécurisée. Tout va bien dans le meilleur des mondes, non ?

Une question de confiance

Et non… Enfin pas complètement. Alors oui ces nouveaux protocoles sont largement plus sécurisés, un « détail » vient un peu noircir le tableau… Ces serveurs sont maintenus par des opérateurs privés. Même si Clouflare et Quad9 s’engagent publiquement à ne pas conserver les logs des serveurs plus de 24H, rien ne nous dis que c’est réellement le cas ! En faite, comme souvent en informatique, tout est question de savoir en qui vous avez confiance ! Et là vous êtes les seuls juges.

Comment utiliser ces serveurs ?

J’aurais aimé vous dire que pour utiliser ces serveurs il faut simplement configurer votre OS avec les bonnes adresses IP mais cela aurait été trop simple ! Ces nouveaux protocoles étant relativement récents, nos chers systèmes d’exploitation ne savent pas nativement les utiliser et se contentent d’essayer de communiquer sur le port 53… Bien sur cela fonctionnera mais vous utiliserez le protocole DNS classic. La solution est d’installer des resolvers plus moderne comme stubby ou unbound (ou les deux, cf le super article de Stéphane Bortzmeyer). Vous pouvez les installer soit en local, soit sur un serveur dédié. Attention toutefois, dans le deuxième cas, les communications entre votre poste de travail et votre serveur ne seront pas chiffrées (à vous de voir si vous faites confiance à votre réseau local !).

Il reste encore pas mal de chemin à parcourir pour que toutes les communications transitant sur internet soient chiffrées mais gageons qu’avec le temps et l’arrivée de nouveaux acteurs plus soucieux de la préservation de nos données privée, les choses évoluent dans le bon sens !

Pour aller plus loins

  • Announcing 1.1.1.1: the fastest, privacy-first consumer DNS service – Cloudflare
  • Quad9 and Your Data
  • Quad9, un résolveur DNS public, et avec sécurité – Stéphane Bortzmeyer
  • Erwan Quelin

    Rédigé par

    Erwan Quelin

    Erwan Quélin est depuis 7 ans Ingénieur Systèmes chez Cheops Technology. Ses interventions sont multiples et auprès de clients très diversifiés dans la région Ouest. Spécialisé dans la virtualisation autour des produits VMware et dans le stockage autour des gammes VNX, Unity et VPLEX de Dell EMC, Erwan est certifié VMware Certified Professional – Datacenter virtualization 4, 5 et 6 ainsi que EMC Implementation Engineer – VNX et Unity et vient d’intégrer les programmes VMware vExpert et Dell EMC Elect pour l’année 2017.

    Lorsqu’il lui reste un peu de temps libre, Erwan développe des projets open sources ayant pour sujet principal l’automatisation d’infrastructures.