Chiffrement DNS : DNS over HTTPS et over TLS

Les requêtes DNS sont par défaut non chiffrées, cela permet donc à un attaquant de récupérer les sites visités notamment à travers des attaques Attaque Man in the Middle (MITM).
Il existe des solutions qui permettent de chiffrer les requêtes DNS, un peu comme, il est possible de surfer sur des sites sécurisés HTTP > HTTPs.

Ces solutions sont encore expérimentales ou non supporté pour la plupart, voici une présentation du DNS Over TLS.

DNS Chiffré : DNS over HTTPS ou DNS over TLS

Le protocole DNS est un ancien protocole qui n’a que très peu évolué.
Par défaut, le protocole DNS utilise le port 53 en UDP car ce protocole est plus rapide que le TCP (mais il est possible d’utiliser des requêtes DNS en TCP).
Dans les deux, les paquets qui transitent sont en clair et donc le protocole est non chiffré.
Ci-dessous, on récupère très facilement les requêtes DNS depuis un ordinateur attaquant.
Cela permet à un attaquant de récupérer les sites visités ou à des entités d’espionner massivement les internautes.
Un service VPN qui récupère le traffic DNS peut donc très bien vous suivre.

Pour pallier à cela, il existe plusieurs solutions pour chiffrer les requêtes DNS.
Des solutions existent pour chiffrer les requêtes DNS, certains sont expérimentales :

  • Des solutions extérieures comme DNSCrypt, ce dernier fonctionne sur le port 443 en TCP ou UDP.
  • DNS over HTTPs qui utilisent le protocole HTTPs pour chiffrer les requêtes
  • DNS over TLS un protocole de chiffrent DNS sur le port 853. (RFC-7858)
  • DNS over Datagram Transport Layer Security (DTLS) sur le port 853 aussi mais avec UDP. (RFC-8094)
  • DNSCurve
  • DNS-over-HTTP (DOH) : DNS over HTTP/2.
  • DNS-over-QUIC
Comparatif des serveurs de noms (DNS)

Pour que cela fonctionne, il faut donc que le serveur DNS utilisé supporte ces protocoles.
Or actuellement, tous ne supportent pas le chiffrent.
La page suivante indique les protocoles supportés, plus d’informations sur le Comparatif des serveurs de noms (DNS) : Google, OpenDNS, Quad9, Ultra-DNS etc.
Bien entendu, il faut bien choisir le serveur DNS, si le but est d’éviter le pistage par votre fournisseur d’accès, il ne faut pas prendre les DNS de Google qui font pas mieux.

DNS over HTTPS dans Firefox

Pour que le protocole DNS over HTTPs puisse fonctionner, il faut que le navigateur internet supporte ce protocole.
Là aussi, tous ne sont pas égaux.
Mozilla Firefox supporte ce protocole depuis la version 60 à travers Trusted Recursive Resolver (TRR).

Si vous cherchez à sécuriser les requêtes DNS avec Firefox ou Chrome alors suivez ce lien :

Les réglages et options

L’activation du DNS over HTTPS se fait à partir du paramètre network.trr.mode d’about:config

Voici les réglages possible de network.trr.mode qui prend des valeurs de 0 à 4:

  • 0 : DNS Over HTTPs est désactivé.
  • 1 : Firefox utilisera le DNS natif ou TRR selon la vitesse de résolution, le plus rapide sera utilisé.
  • 2 : Firefox utilisera par défaut TRR mais reviendra au résolution DNS natif si TRR n’arrive pas à résoudre une adresse.
  • 3 : Firefox fonctionnera en mode TRR seulement.
  • 4 : Firefox fonctionne en mode natif mais utilisera aussi en parallèle TRR pour de la récupération de données.
Trusted Recursive Resolver (TRR) sur Firefox

Les autres paramètres de network.trr de Firefox

  • network.trr.credentials — des identifiants sont envoyés sur la requête HTTPS
  • network.trr.wait-for-portal — Utilise le TRR seulement seulement si une détection du portail captif est OK (defaut: true)
  • network.trr.allow-rfc1918 — Autoriser l’adresse privée en réponse (RFC 1918) (defaut:false).
  • network.trr.useGET — Utilise les requêtes GET au lieu de POST (defaut:false).
  • network.trr.confirmationNS — Firefox vérifie un domaine par défaut pour s’assurer que le TRR fonctionne par une réponse positive (defaut: example.com).
  • network.trr.bootstrapAddress — Permet de régler une adresse IP pour contourner le système de résolution (defaut: none)
  • network.trr.blacklist-duration — Le nombre de secondes de la durée d’une entrée dans la liste noire (defaut: 259200)
  • network.trr.request-timeout — Règle le délai du timeout(defaut: 3000)
  • network.trr.early-AAAA — Firefox vérifie les entrées A et AAAA et utilisera d’abord les entrées AAA si cette préférencée est réglé à true (defaut: false)

Pour Google Chrome, je n’ai pas trouvé d’informations sur une éventuelle utilisation possible de ce dernier.

DNS over TLS

Le chiffrement DNS par le DNS over TLS peut être ajouté sur Windows à l’aide du programme Stubby
Le lien donné vous propose un tuto rapide en anglais.

Conclusion

Comme vous pouvez le constater, tout cela est encore un peu expérimental et rien n’est encore en natif.
Le déploiement massif du chiffrement DNS n’est donc pas encore une réalité.

Le VPN est une solution pour chiffrer les requêtes DNS, toutefois, il faut bien entendu choisir un bon service qui respecte la vie privée.
Sinon au final, vous alimentez les bases de données des sociétés derrière ces services VPN.

(Visité 2 758 fois, 5 visites ce jour)

Add Comment