Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

Chapitre 516 minIntermédiaire

Sécuriser le DNS : DNSSEC, DNS over HTTPS et DNS over TLS

Par Josselyn C., prof de BTS SIO. Mis à jour le .

À la fin de ce chapitre, tu sauras

  • dire ce que protègent DNSSEC, DoT et DoH, et ce qu'ils ne protègent pas ;
  • expliquer la chaîne de confiance DNSSEC, de la racine à l'enregistrement ;
  • signer une zone avec BIND et valider sur un résolveur ;
  • définir une politique DNS chiffré et filtrage pour une entreprise.

4 exercices corrigés1 schéma

DNSSEC ajoute des signatures numériques aux enregistrements DNS : un résolveur qui valide peut prouver qu'une réponse vient bien du propriétaire de la zone et n'a pas été modifiée. DNS over TLS (DoT) et DNS over HTTPS (DoH) chiffrent, eux, le trajet entre le poste et son résolveur, pour que personne ne lise ni ne modifie les questions en route. Les deux approches se complètent : DNSSEC protège l'authenticité des données, DoT et DoH la confidentialité du trajet. Ce chapitre explique les deux, leur mise en œuvre sur BIND, pfSense et Windows, et la politique à tenir en entreprise.

Ce que chaque technique protège

DNS classiqueDNSSECDoT / DoH
Authenticité : la réponse vient-elle du vrai propriétaire de la zone ?NonOui, de bout en boutNon : tu fais confiance au résolveur
Intégrité : la réponse a-t-elle été modifiée ?NonOuiOui, sur le trajet poste ↔ résolveur
Confidentialité : quelqu'un peut-il lire tes questions ?Non, tout est en clairNon, rien n'est chiffréOui, sur le trajet poste ↔ résolveur
PortsUDP/TCP 53UDP/TCP 53 (réponses plus grosses)DoT : TCP 853 ; DoH : TCP 443 (et UDP 443 en HTTP/3)
NormesRFC 1034, 1035RFC 4033 à 4035DoT : RFC 7858 ; DoH : RFC 8484

DNSSEC : les nouveaux enregistrements

DNSSEC utilise la cryptographie asymétrique : le propriétaire de la zone signe avec sa clé privée, n'importe quel résolveur vérifie avec la clé publique publiée dans la zone (signature numérique).

EnregistrementContenuOù il se trouve
DNSKEYLes clés publiques de la zoneDans la zone signée
RRSIGLa signature d'un ensemble d'enregistrements (tous les A d'un nom, tous les MX de la zone…)À côté de chaque ensemble signé
DS (Delegation Signer)L'empreinte de la clé de la zone enfantDans la zone parente : le DS de sorbier.example est dans la zone .example
NSEC ou NSEC3La preuve signée qu'un nom n'existe pas (« entre ce nom et le suivant, il n'y a rien »)Dans la zone signée

Les zones utilisent souvent deux rôles de clés : une KSK (Key Signing Key), qui signe seulement les DNSKEY et dont l'empreinte est publiée en DS chez le parent, et une ZSK (Zone Signing Key), qui signe le reste et peut changer souvent sans toucher au parent. Une clé unique qui tient les deux rôles s'appelle une CSK (Combined Signing Key) : c'est le choix par défaut de BIND 9.20.

La chaîne de confiance

Un résolveur ne peut pas faire confiance à une clé publiée dans la zone elle-même : un attaquant capable de falsifier la zone falsifierait aussi la clé. La confiance descend donc de la racine.

Ancre de confianceclé de la racine, KSK-2024préinstallée dans le résolveurZone racine « . »DNSKEYclés publiques de la racineDS de .exampleempreinte de la clé enfantZone .exampleDNSKEYclés publiques de .exampleDS de sorbier.exampleempreinte de la clé enfantZone sorbier.exampleDNSKEYclé de sorbier.example (CSK)www A 203.0.113.17accompagné de son RRSIGvalidesignesignesignevalidevalide
La confiance part de la clé de la racine et descend, de DS en DNSKEY, jusqu'à l'enregistrement
  1. Le résolveur connaît une seule clé à l'avance : la clé de la racine, son ancre de confiance (trust anchor), livrée avec le logiciel et mise à jour automatiquement (RFC 5011).
  2. Avec elle, il vérifie le DNSKEY de la racine, qui signe le DS de .example.
  3. Ce DS est l'empreinte de la clé de .example : il vérifie le DNSKEY de .example, qui signe le DS de sorbier.example.
  4. Le DS de sorbier.example valide son DNSKEY, qui signe (RRSIG) l'enregistrement A de www.sorbier.example.

Si une seule signature est fausse ou expirée, la validation échoue et le résolveur répond SERVFAIL : il préfère ne rien répondre plutôt qu'une réponse douteuse. Si tout est valide, il positionne le drapeau ad (Authenticated Data) dans sa réponse.

Valider DNSSEC sur tes résolveurs

La validation se fait sur le résolveur, pas sur le poste : les postes font confiance au drapeau ad de leur résolveur. Il faut donc valider partout où tu résous.

RésolveurValidation DNSSEC
Unbound de pfSense (Services > DNS Resolver)Activée par défaut (case DNSSEC)
BIND 9.20 en résolveurActivée par défaut (dnssec-validation auto;), ancre de la racine intégrée
DNS de Windows Server 2025Le serveur sait valider les réponses distantes (onglet Avancé des propriétés du serveur), à condition d'avoir ajouté l'ancre de confiance de la racine (dossier Points d'approbation, Trust Points, de la console DNS, ou Add-DnsServerTrustAnchor -Root) ; chez Sorbier, la validation est faite par Quad9, le redirecteur. Les clients peuvent aussi exiger la validation par la table de stratégie de résolution de noms (NRPT)
Quad9 (9.9.9.9)Valide, et filtre les domaines malveillants connus

Pour tester un résolveur, demande un domaine signé et regarde le drapeau ad :

bash
dig @192.168.10.238 www.afnic.fr A +dnssec
# ;; flags: qr rd ra ad; ...           <- ad : réponse validée
# www.afnic.fr.  ...  IN A      ...
# www.afnic.fr.  ...  IN RRSIG  A 13 3 ...

delv (fourni par bind9-dnsutils) fait la validation lui-même et explique pourquoi elle échoue : delv @192.168.10.238 www.afnic.fr affiche ; fully validated quand tout va bien.

Le test inverse compte autant : le domaine dnssec-failed.org, volontairement mal signé, doit renvoyer SERVFAIL sur un résolveur qui valide. S'il donne une adresse, ton résolveur ne valide pas.

Signer une zone avec BIND 9.20

Depuis BIND 9.16, la signature est automatique avec dnssec-policy : BIND crée les clés, signe la zone, renouvelle les signatures avant leur expiration et gère les changements de clés. Sur ns1, il suffit d'ajouter une ligne à la zone :

text
zone "sorbier.example" {
    type primary;
    file "/var/lib/bind/db.sorbier.example";
    allow-transfer { key "transfert-sorbier"; };
    dnssec-policy default;
};

La politique default utilise une CSK unique en ECDSA P-256 avec SHA-256 (algorithme 13). En BIND 9.20, une zone soumise à dnssec-policy est signée en ligne (inline signing) : ton fichier de zone reste lisible et modifiable comme avant, BIND en tient une version signée à côté (db.sorbier.example.signed), d'où la nécessité de ranger la zone dans /var/lib/bind/.

bash
sudo named-checkconf
sudo rndc reconfig
sudo rndc dnssec -status sorbier.example     # clés, états, prochaines étapes
dig @127.0.0.1 sorbier.example DNSKEY +multi +norec
dig @127.0.0.1 sorbier.example CDS +short    # l'enregistrement à transmettre au parent

Reste l'étape que BIND ne peut pas faire seul : publier le DS chez le parent, par l'interface du bureau d'enregistrement du domaine. Tant que le DS n'est pas publié, la zone est signée mais pas validable (les résolveurs la traitent comme non signée) : c'est sans danger. L'inverse est dangereux.

DNS over TLS et DNS over HTTPS

Sans chiffrement, toute personne placée sur le trajet (le Wi-Fi d'un hôtel, un fournisseur d'accès) lit la liste des sites que tu consultes, et peut modifier les réponses. DoT et DoH enveloppent les requêtes DNS dans TLS.

DNS over TLS (DoT)DNS over HTTPS (DoH)
TransportTLS sur TCP 853, port dédiéHTTPS sur TCP 443 (HTTP/2) ou UDP 443 (HTTP/3)
Visible par l'administrateur réseauOui : le port 853 se repère et se filtreNon : se fond dans le trafic web
Utilisé parAndroid (« DNS privé »), résolveurs entre eux, pfSense vers ses redirecteursNavigateurs (Firefox, Chrome, Edge), Windows 11
Point de vue de l'entrepriseFacile à autoriser vers les seuls résolveurs choisisPeut contourner le DNS interne et le filtrage sans que tu le voies

Une variante plus récente, DNS over QUIC (DoQ, RFC 9250, UDP 853), suit la même logique.

Le point de vue de l'entreprise : garder la maîtrise du DNS

Pour un particulier sur un Wi-Fi public, DoH est une protection. Pour une entreprise, un navigateur qui envoie ses requêtes en DoH à un résolveur extérieur pose trois problèmes : les noms internes ne se résolvent plus, le filtrage DNS de l'entreprise est contourné, et les journaux DNS (précieux en cas d'incident) ne voient plus rien. La politique de Sorbier :

  1. Les postes utilisent le DNS interne, et seulement lui : par DHCP, et par GPO pour les navigateurs. Les modèles d'administration de Chrome et d'Edge ont une stratégie DnsOverHttpsMode, à régler sur off (ou sur un DoH interne). Firefox désactive de lui-même son DoH par défaut si le résolveur du réseau répond « nom inexistant » pour le domaine témoin use-application-dns.net, et se pilote par la stratégie DNSOverHTTPS.
  2. Le pare-feu bloque le DNS sortant qui ne vient pas des résolveurs autorisés : UDP et TCP 53, TCP 853. Pour DoH, bloquer le port 443 est impossible ; on bloque les adresses et noms des services DoH publics connus (listes tenues à jour, par exemple avec le paquet pfBlockerNG de pfSense).
  3. Le chiffrement se fait vers l'extérieur, sous contrôle : sur pfSense, les cases DNS Query Forwarding et Use SSL/TLS for outgoing DNS Queries to Forwarding Servers chiffrent en DoT les requêtes du pare-feu vers ses redirecteurs. Le fournisseur d'accès ne voit plus les noms demandés, et l'administrateur garde ses journaux.

Côté Windows, Windows 11 sait utiliser DoH pour ses propres requêtes (réglage par carte réseau, ou stratégie Configurer la résolution de noms DNS over HTTPS (DoH) dans Configuration ordinateur > Modèles d'administration > Réseau > Client DNS). Et Microsoft ajoute à Windows Server 2025, avec les mises à jour de 2026, la possibilité pour le serveur DNS de répondre en DoH aux postes (Set-DnsServerEncryptionProtocol) ; le lien entre le serveur et ses redirecteurs reste alors en clair. La fonction a été livrée d'abord en préversion : vérifie son état et ses prérequis (un certificat valide pour le nom du serveur) dans la documentation de Microsoft avant de la déployer.

Filtrer les domaines malveillants

Puisque presque toute connexion commence par une requête DNS, le résolveur est un excellent point de filtrage : refuser de résoudre les domaines d'hameçonnage, de logiciels malveillants ou de serveurs de commande connus coupe une grande partie des attaques avant même la première connexion.

OutilFonctionnement
Résolveur filtrant en redirecteur (Quad9, résolveurs des éditeurs de sécurité)Il répond « nom inexistant » pour les domaines de ses listes
pfBlockerNG (paquet pfSense)Listes de blocage chargées dans Unbound, avec rapports
Zones de stratégie de réponse (RPZ) de BINDUne zone spéciale qui réécrit les réponses pour les domaines listés
Stratégies DNS de Windows ServerRègles qui refusent ou ignorent certaines requêtes

Le filtrage DNS ne remplace ni l'antivirus ni le pare-feu : un programme qui se connecte directement à une adresse IP le contourne. Mais il est simple, peu coûteux, et ses journaux révèlent souvent un poste infecté (un poste qui demande sans arrêt des domaines bloqués). L'analyse de ces journaux dans un SIEM est traitée dans le cours Wazuh.

Exercices

Exercice 1 sur 4 Quelle protection ? Réussi À revoir

Pour chaque menace, choisis la protection adaptée parmi DNSSEC, DoT/DoH, ou ni l'un ni l'autre, et justifie.

  1. Un attaquant injecte dans le cache d'un résolveur une fausse adresse pour le site de la banque.
  2. Le gérant d'un café lit les noms des sites consultés par ses clients sur son Wi-Fi.
  3. Un salarié tape sorbier-logistique.example au lieu de sorbier.example et tombe sur un site d'hameçonnage.
  4. Un logiciel malveillant fait sortir des données dans des requêtes DNS vers le domaine de l'attaquant.
Voir la réponseMasquer la réponse de l'exercice 1
  1. DNSSEC : le résolveur qui valide rejette la fausse réponse, dont la signature ne correspond pas (à condition que le domaine de la banque soit signé).
  2. DoT ou DoH : le trajet entre le client et son résolveur est chiffré, le gérant ne voit plus que des connexions TLS.
  3. Ni l'un ni l'autre : le faux domaine est un vrai domaine, éventuellement signé, qui appartient à l'attaquant. La parade est le filtrage DNS (listes de domaines malveillants), la sensibilisation et l'authentification forte.
  4. Ni l'un ni l'autre : c'est un tunnel DNS. La parade est d'obliger les postes à passer par le résolveur interne, de bloquer le DNS sortant direct et d'analyser les journaux du résolveur (requêtes longues, nombreuses, vers un même domaine).

Tu avais trouvé ?

Exercice 2 sur 4 Lire une réponse validée Réussi À revoir

Deux requêtes vers le résolveur 192.168.10.238 donnent :

text
A) ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3310
   ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

B) ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 3311
   ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
  1. Que signifie le drapeau ad de la réponse A ?
  2. La requête B porte sur un domaine que le résolveur public Quad9 résout sans erreur. Donne deux causes possibles.
  3. Comment confirmer qu'il s'agit d'un problème DNSSEC ?
Voir la réponseMasquer la réponse de l'exercice 2
  1. Le résolveur a validé la chaîne de signatures DNSSEC jusqu'à la racine : la réponse est authentique.
  2. Une signature invalide ou expirée dans la zone (un DS publié chez le parent qui ne correspond plus à la clé, une zone non resignée), ou un problème local du résolveur : horloge du pare-feu fausse (les signatures ont une date de début et de fin), ou ancre de confiance périmée. Quad9 valide aussi : s'il répond, la zone est probablement saine, et la cause est locale.
  3. Refaire la requête avec dig ... +cd (checking disabled), qui demande au résolveur de ne pas valider : si elle réussit, c'est bien la validation qui échoue. delv explique ensuite l'erreur. Vérifier l'heure du pare-feu (Status > Dashboard, ou date en console).

Tu avais trouvé ?

Exercice 3 sur 4 Signer sorbier.example Réussi À revoir

Antoine Mercier veut signer la zone publique servie par ns1.

  1. Quelle ligne ajoutes-tu dans la déclaration de la zone sous BIND 9.20 ?
  2. Pourquoi le fichier de zone doit-il être dans /var/lib/bind/ ?
  3. Quelle démarche, en dehors de BIND, est nécessaire pour que la signature soit utile ?
  4. Deux ans plus tard, Sorbier confie sa zone à un nouvel hébergeur qui ne signe pas. Dans quel ordre faut-il procéder ?
Voir la réponseMasquer la réponse de l'exercice 3
  1. dnssec-policy default;
  2. BIND crée les clés et écrit une version signée de la zone à côté du fichier : il lui faut un dossier où il peut écrire, ce que Debian autorise dans /var/lib/bind/ et pas dans /etc/bind/.
  3. Publier le DS chez le parent, par l'interface du bureau d'enregistrement, avec les valeurs données par l'enregistrement CDS ou rndc dnssec -status. Sans DS, aucun résolveur ne peut relier la zone à la chaîne de confiance.
  4. D'abord retirer le DS chez le bureau d'enregistrement, attendre l'expiration de son TTL (souvent un jour) pour que les caches l'oublient, puis seulement basculer les NS vers le nouvel hébergeur. Dans l'autre ordre, les résolveurs qui valident trouvent un DS sans zone signée correspondante, et le domaine disparaît pour eux.

Tu avais trouvé ?

Exercice 4 sur 4 DoH au travail Réussi À revoir

Le service informatique constate que les postes ouvrent les sites bloqués par le filtrage DNS de l'entreprise, et que les journaux DNS ne montrent presque plus de requêtes des navigateurs.

  1. Quelle est la cause la plus probable ?
  2. Propose trois mesures.
Voir la réponseMasquer la réponse de l'exercice 4
  1. Les navigateurs utilisent DNS over HTTPS vers un résolveur extérieur : leurs requêtes partent en HTTPS sur le port 443, sans passer par les résolveurs internes ni par le filtrage.
  2. Régler la stratégie DnsOverHttpsMode sur off pour Chrome et Edge par GPO, et la stratégie équivalente de Firefox ; répondre « nom inexistant » pour use-application-dns.net sur les résolveurs internes ; bloquer sur le pare-feu les services DoH publics connus et le DNS sortant direct (UDP/TCP 53, TCP 853). En complément, proposer un DoH ou un DoT interne si le chiffrement est souhaité.

Tu avais trouvé ?

Chapitre terminé !

Fais les 4 exercices avant de passer à la suite : c'est en t'entraînant que tout se fixe.

chapitres
–
de série
–
du cours
–
Chapitre suivant : DHCP : DORA, étendues, options et relais DHCPRevoir le sommaire du cours