Sécurité réseau

DNSSEC : chaîne de confiance de la racine à ce domaine

Comment DNSSEC construit une chaîne de confiance cryptographique de la racine DNS à cette zone — avec configuration Pulumi et vérification dig en direct

Laurent Goudet · 24 février 2026 · 7 min de lecture

Le DNS a été conçu en 1983 sans aucune authentification. Un résolveur demande « où est lepro.dev ? » et fait confiance à la première réponse reçue. C’est un problème : quiconque se trouvant sur le chemin réseau — ou capable d’empoisonner le cache d’un résolveur — peut forger une réponse et rediriger le trafic vers un serveur malveillant. DNSSEC corrige cela en ajoutant des signatures cryptographiques aux enregistrements DNS, mais le mécanisme est plus subtil que « signez tout ».

Le défi fondamental est l’amorçage de la confiance. Si un serveur de noms signe ses enregistrements, comment le résolveur sait-il qu’il utilise la bonne clé publique ? DNSSEC résout cela avec une chaîne de confiance qui part de la racine DNS et délègue vers le bas : la racine valide les TLD, les TLD valident les domaines, et les domaines signent leurs propres enregistrements. Chaque maillon est un enregistrement DS (Delegation Signer) publié dans la zone parente — une poignée de main cryptographique qui dit « la clé de cette zone enfant est légitime ».

Le diagramme ci-dessous montre les trois niveaux pour lepro.dev : racine, TLD .dev et la zone elle-même — avec les types d’enregistrements spécifiques à chaque niveau et le flux de confiance descendant.

Chaîne de confiance DNSSEC

Racine → TLD .dev → lepro.dev — chaque niveau signe le suivant
Racine (·)
IANA — ancre de confiance codée en dur dans les résolveurs
DNSKEYRRSIG
Signe la zone enfant
L'enregistrement DS ancre la confiance
TLD .dev
Google Registry — signe toutes les délégations .dev
DNSKEYDSRRSIG
Signe la zone enfant
Ancré par le DS parent
L'enregistrement DS ancre la confiance
lepro.dev
Votre zone — Cloudflare signe les enregistrements
DNSKEYDSRRSIGA/AAAA
Ancré par le DS parent

Comment fonctionne la validation

Lorsqu’un résolveur validant DNSSEC (comme 1.1.1.1 ou 8.8.8.8) interroge lepro.dev, il ne se contente pas d’accepter l’enregistrement A. Il demande le RRSIG (signature) accompagnant l’enregistrement et remonte la chaîne. Le résolveur possède déjà la KSK (Key Signing Key) racine codée en dur — c’est l’ancre de confiance. Il utilise la DNSKEY racine pour vérifier le DS de .dev, puis la DNSKEY de .dev pour vérifier le DS de lepro.dev, et enfin la DNSKEY de lepro.dev pour vérifier le RRSIG sur l’enregistrement A/AAAA.

Si un maillon se brise — signature expirée, enregistrement DS incohérent, DNSKEY manquante — le résolveur retourne SERVFAIL. C’est voulu : une chaîne brisée est traitée comme une attaque potentielle, pas comme un service dégradé. C’est pourquoi une mauvaise configuration DNSSEC est plus dangereuse que l’absence de DNSSEC. Une zone sans DNSSEC n’a simplement pas de signatures à vérifier ; une zone DNSSEC cassée échoue activement à la validation.

Activer DNSSEC avec Pulumi

Cloudflare sépare DNSSEC en deux parties : la signature de zone (gérée automatiquement par Cloudflare en périphérie) et la propagation de l’enregistrement DS (qui relie la zone signée au TLD parent). Une seule ressource Pulumi active la signature de zone :

const dnssec = new cloudflare.ZoneDnssec( “lepro-dnssec”, { zoneId: zoneId, });

export const dnssecDs = dnssec.ds; export const dnssecDigest = dnssec.digest;

export const dnssecKeyTag = dnssec.keyTag;

Cela crée la paire DNSKEY (algorithme 13, ECDSA P-256), commence à signer tous les enregistrements avec des RRSIG, et publie les enregistrements CDS/CDNSKEY. Les outputs exportés contiennent l’enregistrement DS qui doit atteindre la zone parente :

$ pulumi stack output dnssecDs

lepro.dev. 3600 IN DS 2371 13 2 4B6EFA5C9B894…55B1AE35F

Pour les domaines enregistrés via Cloudflare Registrar (comme lepro.dev), la propagation du DS vers le TLD parent est automatique — Cloudflare scanne les enregistrements CDS publiés et pousse le DS vers le registre. Ce processus prend 24 à 48 heures. Pour les domaines enregistrés ailleurs, copiez l’enregistrement DS depuis les outputs Pulumi et ajoutez-le manuellement chez le registrar.

Le décalage entre signature et validation

La signature de zone est instantanée — Cloudflare commence à signer les enregistrements dès la création de ZoneDnssec. Mais l’enregistrement DS doit se propager vers le TLD parent de manière asynchrone, et c’est l’étape qui peut stagner. Vérifiez avec dig lepro.dev DS +short @ns-tld1.charlestonroadregistry.com. — une réponse vide signifie que la chaîne est encore incomplète et que les résolveurs ne valideront pas.

Parcourir la chaîne avec dig

Une fois DNSSEC entièrement propagé, vous pouvez parcourir la chaîne avec dig pour vérifier chaque niveau. Chaque étape interroge un type d’enregistrement spécifique à un niveau précis de la hiérarchie DNS, traçant la confiance de la racine jusqu’à lepro.dev.

Étape 1 — DNSKEY racine (ancre de confiance). La zone racine publie sa KSK (flag 257) et sa ZSK (flag 256). La KSK est codée en dur dans chaque résolveur validant — c’est le point de départ de toute confiance DNSSEC :

$ dig . DNSKEY +short | head -1 257 3 8 AwEAAaz/tAm8yTn4Mfeh5eyI96WSVexTBAvkMgJzkKTO…

Étape 2 — La racine signe .dev. La racine publie un enregistrement DS pour le TLD .dev. Ce DS contient un hash SHA-256 (type de digest 2) de la KSK de .dev — le relais cryptographique de la racine au TLD :

$ dig dev. DS +short @a.root-servers.net.

60074 8 2 B942E2CE5AEBF62FCA59D05707E6DBB795211D54…33424785

Étape 3 — DNSKEY de .dev. Le TLD .dev publie sa propre paire de clés (algorithme 8, RSA/SHA-256). Un résolveur vérifie que le hash de la KSK correspond au DS de l’étape 2 :

$ dig dev. DNSKEY +short 257 3 8 AwEAAYtM84o4wEWfgE0ywuvg89cB3uHoH705EtMkp4Xp… 256 3 8 AwEAAcbVHY7e2c1yEiSbarJwEUdUID0E1yKLix2VTTD+…

Étape 4 — .dev signe lepro.dev. Le TLD .dev publie un enregistrement DS pour lepro.dev, contenant un hash de la KSK de lepro.dev. C’est l’enregistrement que Cloudflare Registrar propage vers Google Registry :

$ dig lepro.dev DS +short @ns-tld1.charlestonroadregistry.com.

2371 13 2 4B6EFA5C9B8940B56891AF2618DB5C5FB2EDFEF4…55B1AE35F

Étape 5 — DNSKEY de lepro.dev. Cloudflare génère et publie une KSK et une ZSK pour la zone en ECDSA P-256 (algorithme 13) — des clés plus courtes que RSA mais tout aussi robustes :

$ dig lepro.dev DNSKEY +short 257 3 13 mdsswUyr3DPW132mOi8V9xESWE8jTo0dxCjjnopKl+Gq… 256 3 13 oJMRESz5E4gYzS/q6XDrvU1qMPYIjCWzJaOau8XNEZeq…

Étape 6 — Enregistrement A signé. Cloudflare signe chaque réponse DNS avec la ZSK. Le RRSIG accompagne les enregistrements A :

$ dig lepro.dev A +dnssec +short @8.8.8.8

172.67.143.204 104.21.39.83

A 13 2 300 20260226113258 20260224093258 34505 lepro.dev.

vUzo0mtx…

Lorsque la chaîne complète est en place, les réponses des résolveurs publics incluent le flag ad (Authenticated Data) — preuve que chaque maillon de la racine au domaine a été vérifié cryptographiquement :

$ dig lepro.dev A +dnssec @8.8.8.8 | grep flags
;; flags: qr rd ra ad;    ← authentifié

Gestion des clés

Chaque zone DNSSEC maintient deux paires de clés. La Key Signing Key (KSK) ne signe que le jeu d’enregistrements DNSKEY — c’est la clé dont le hash est publié comme enregistrement DS dans la zone parente. La Zone Signing Key (ZSK) signe tout le reste : enregistrements A, AAAA, MX, TXT. Cette séparation permet de renouveler la ZSK fréquemment (toutes les quelques semaines) sans coordonner avec la zone parente, tandis que la KSK (qui nécessite la mise à jour du DS parent) est renouvelée moins souvent.

Cloudflare automatise la signature de zone en périphérie et gère la rotation des clés de manière transparente. La ressource Pulumi cloudflare.ZoneDnssec exporte l’enregistrement DS courant, le digest, le key tag et l’algorithme — utile pour l’audit ou pour ajouter manuellement le DS chez un registrar non-Cloudflare. Pour lepro.dev sur Cloudflare Registrar, la propagation du DS vers Google Registry (l’opérateur du TLD .dev) est automatique.

Ce que DNSSEC ne fait pas

DNSSEC authentifie les données DNS — il prouve que la réponse provient de la source autoritaire et n’a pas été altérée. Il ne chiffre pas les requêtes DNS (c’est le rôle de DoH/DoT), ne prévient pas les attaques DDoS sur l’infrastructure DNS, et ne remplace pas TLS pour sécuriser la connexion elle-même. Considérez DNSSEC comme la garantie d’obtenir la bonne adresse IP ; TLS garantit que vous communiquez avec le bon serveur à cette adresse IP.

La combinaison des deux est importante : DNSSEC sans TLS signifie que vous atteignez la bonne IP mais communiquez en clair. TLS sans DNSSEC signifie que vous pourriez parler au mauvais serveur (si le DNS a été empoisonné), bien que la validation des certificats rattrape la plupart de ces cas. Les deux ensemble offrent une défense en profondeur — intégrité DNS plus chiffrement du transport.

Questions fréquentes

Contre quoi DNSSEC protège-t-il concrètement ?

DNSSEC empêche l'usurpation DNS et l'empoisonnement de cache — des attaques où un résolveur est trompé pour accepter des enregistrements DNS forgés. Sans DNSSEC, un attaquant entre vous et le résolveur (ou empoisonnant le cache du résolveur) peut rediriger le trafic vers une IP malveillante. DNSSEC ajoute des signatures cryptographiques aux enregistrements DNS, permettant aux résolveurs de vérifier qu'une réponse provient bien du serveur de noms autoritaire et n'a pas été altérée en transit.

Pourquoi l'adoption de DNSSEC reste-t-elle faible malgré son existence depuis 2005 ?

Trois coûts opérationnels freinent l'adoption. Premièrement, la signature de zone ajoute de la complexité — il faut gérer les paires de DNSKEY, effectuer la rotation des clés selon un calendrier, et maintenir les enregistrements DS synchronisés avec la zone parente. Deuxièmement, les réponses DNSSEC sont plus volumineuses (les signatures ajoutent des octets), ce qui peut provoquer la fragmentation UDP et un repli sur TCP. Troisièmement, une zone DNSSEC mal configurée est pire que pas de DNSSEC du tout : les résolveurs validants refuseront de résoudre le domaine, causant une panne totale.

Comment fonctionne la chaîne de confiance de la racine au domaine ?

La clé publique de la zone racine (KSK) est codée en dur dans les résolveurs validants — c'est l'ancre de confiance. La racine signe l'enregistrement DS du TLD .dev, qui contient un hash de la DNSKEY de .dev. Le TLD .dev signe ensuite l'enregistrement DS du domaine, qui contient un hash de la DNSKEY de la zone. La zone signe ses propres enregistrements (A, AAAA, MX, etc.) avec des RRSIG. Un résolveur parcourt cette chaîne de haut en bas : racine → TLD → domaine, en vérifiant chaque signature avec la clé validée par le parent.

Comment activer DNSSEC sur Cloudflare avec Pulumi ?

Une seule ressource Pulumi — cloudflare.ZoneDnssec — active la signature de zone. Cloudflare génère la paire DNSKEY, signe tous les enregistrements et publie les enregistrements CDS/CDNSKEY. Pour les domaines sur Cloudflare Registrar, l'enregistrement DS se propage automatiquement vers le TLD parent en 24 à 48 heures. Pour les autres registrars, copiez le DS depuis les outputs Pulumi et ajoutez-le manuellement. Vérifiez toujours avec dig que le DS a atteint le parent.

Laurent Goudet

CTO chez Freelancer.com

Agents IA, réseau et infrastructure à grande échelle

Autres analyses

Sécurité réseau

TLS vs mTLS Handshake

Comparaison des flux d'authentification TLS standard et mutuel

Sécurité réseau

TLS 1.2 vs TLS 1.3 Handshake

Comparaison de l'efficacité du handshake et des améliorations de sécurité

Ingénierie réseau

Réseau IPv6-Only avec NAT64/464XLAT

Faire fonctionner un réseau local IPv6-only tout en maintenant la connectivité IPv4

Ingénierie CDN

Le piège == false en Fastly VCL

Comment l'utilisation de == false au lieu de ! dans des conditions composées en Fastly VCL peut silencieusement casser votre logique

IA & Industrie

Quelque chose de grand se passe — mais pas ce que vous croyez

Pourquoi l'IA est un changement de couche d'abstraction, pas la fin du travail intellectuel — la réponse d'un praticien à l'essai viral sur l'IA

IA & Industrie

Orchestration d'agents IA à grande échelle — Ce qui fonctionne vraiment en production

Patterns et leçons tirées de l'exploitation de systèmes multi-agents à l'échelle de 80M+ utilisateurs : routage, chaînes de fallback, gestion du contexte, et pourquoi la plupart des architectures d'agents échouent.

Sécurité réseau

Déployer DMARC à grande échelle

Guide pratique pour déployer DMARC sur une grande plateforme — corrections SPF, DKIM et alignement à travers AWS SES, Google Workspace, des relais Postfix et des dizaines de domaines

Cloud Security

Votre cle API Google Maps peut maintenant vider votre compte en banque

Google a silencieusement modifie les permissions des cles API pour que celles destinees a Maps puissent desormais appeler Gemini AI. Voici comment auditer vos projets GCP et verrouiller les cles exposees.

© 2026 Laurent Goudet · Bordeaux, France · lepro.dev

vd9714f4