Comment fonctionne DNSSEC — KSK, ZSK, DS, DNSKEY, RRSIG, NSEC expliques
Une presentation de la chaine de confiance DNSSEC : comment les cles de signature KSK et ZSK, les enregistrements DS, les enregistrements DNSKEY, les signatures RRSIG et NSEC/NSEC3 collaborent pour authentifier les reponses DNS.
TL;DR
DNSSEC fonctionne en signant chaque set d'enregistrements de votre zone avec une cle de signature privee. La Zone-Signing-Key (ZSK) signe tout sauf les enregistrements DNSKEY ; la Key-Signing-Key (KSK) signe le set DNSKEY. Un hash de la KSK est publie comme enregistrement DS dans votre zone parente, reliant votre zone a la chaine de confiance globale. Les enregistrements RRSIG portent les signatures, NSEC/NSEC3 prouvent qu'un nom n'existe pas, et les resolveurs validants remontent la chaine jusqu'a la cle racine livree avec leur logiciel.
What you'll learn
- Distinguer les roles KSK, ZSK et CSK dans la signature DNSSEC
- Expliquer comment DNSKEY, DS et RRSIG se combinent en une chaine de confiance
- Comprendre la negation authentifiee avec NSEC et NSEC3
- Suivre la validation pas-a-pas qu'un resolveur recursif effectue sur une reponse DNSSEC
DNSSEC authentifie les donnees DNS via une hierarchie de signatures cryptographiques qui s'enchaine d'un enregistrement de votre zone jusqu'a un point d'ancrage de confiance code en dur dans chaque resolveur validant. Ce guide parcourt les pieces mobiles — DNSKEY, DS, RRSIG, NSEC/NSEC3, et les roles KSK/ZSK — a un niveau qui vous permet de raisonner sur des deploiements reels sans etre cryptographe.
Pour les procedures operationnelles de rotation (pre-publish ZSK, double-signature KSK, rotation d'algorithme), continuez avec Gestion des cles DNSSEC. Pour l'introduction de haut niveau sans la mecanique, la page Qu'est-ce que DNSSEC ? est un meilleur point de depart.
Les enregistrements impliques
DNSSEC introduit quatre types d'enregistrements dans une zone signee, plus les enregistrements DS publies a la zone parente :
| Enregistrement | Vit dans | Objet |
|---|---|---|
| DNSKEY | Votre zone | Partie publique de chaque cle de signature (KSK, ZSK, ou CSK) |
| RRSIG | Votre zone | Signature numerique sur un set d'enregistrements (un RRSIG par RRset, par cle active) |
| NSEC / NSEC3 | Votre zone | Negation authentifiee — prouve qu'un nom n'existe pas |
| DS | Zone parente | Hash de votre KSK ; le maillon de la chaine de confiance |
| CDS / CDNSKEY | Votre zone | Automatisation optionnelle : indique a la zone parente quel DS publier (RFC 7344) |
Cles de signature : KSK, ZSK, CSK
DNSSEC a historiquement utilise une separation a deux cles : une KSK pour des operations a forte valeur et faible frequence, et une ZSK pour des operations a haute frequence et plus faible ceremonie. La motivation est purement operationnelle — cryptographiquement, les deux cles font la meme chose (signer des donnees avec une cle privee, verifier avec une cle publique).
Zone-Signing-Key (ZSK)
La ZSK signe tout dans votre zone sauf le set d'enregistrements DNSKEY. Quand un resolveur demande les enregistrements A de example.com, la reponse revient avec un RRSIG correspondant signe par la ZSK. Chaque set d'enregistrements signe a son propre RRSIG.
Les ZSK sont typiquement :
- Plus petites (RSA 1024 bits etait courant dans les premiers deploiements ; ECDSA P-256 / 256 bits est la norme moderne)
- Tournees relativement souvent (toutes les 1–3 mois historiquement ; certains operateurs sautent maintenant les rotations planifiees avec un stockage de cles fort)
- Plus faciles a tourner parce que l'enregistrement DS de la zone parente n'a pas a changer
Key-Signing-Key (KSK)
La KSK signe uniquement le set d'enregistrements DNSKEY. Ce set contient la partie publique de chaque cle de signature active dans la zone. En signant le set DNSKEY avec la KSK, vous liez chaque autre cle dans la zone (notamment chaque ZSK active) a une cle dont le hash est publie a la zone parente.
Les KSK sont typiquement :
- Plus grandes (RSA 2048 bits, ECDSA P-256, ou Ed25519 sont tous courants)
- Tournees rarement (tous les 1–5 ans, ou seulement en cas de compromission suspecte)
- Plus couteuses a tourner parce que l'enregistrement DS chez le parent doit etre mis a jour, ce qui implique le registrar et la temporalite TLD
Combined Signing Key (CSK)
Une CSK joue les deux roles dans une seule cle. La meme cle signe DNSKEY (role KSK) et les autres sets d'enregistrements (role ZSK). Les deploiements modernes utilisent de plus en plus CSK avec ECDSA P-256 ou Ed25519, parce que :
- Les signatures sont assez petites pour que le cout par requete soit negligeable
- La complexite operationnelle est moindre (une cle a gerer, une rotation a coordonner)
- Le stockage adosse a un HSM reduit l'argument de securite pour separer KSK et ZSK
DNScale utilise par defaut CSK avec ECDSA P-256 pour les nouvelles zones, ce qui est le standard pour la plupart des fournisseurs manages modernes.
DNSKEY : Publier des cles publiques dans la zone
Chaque cle de signature active a sa partie publique publiee comme enregistrement DNSKEY a la racine de la zone :
example.com. 3600 IN DNSKEY 257 3 13 oJMR... ; KSK
example.com. 3600 IN DNSKEY 256 3 13 mZXp... ; ZSKDecodage des champs :
- Drapeaux (
257ou256) : le bit 7 (SEP— Secure Entry Point) est positionne sur la KSK, donnant257. La ZSK a256. Les deux formats partagent aussi le bit 8 (Zone Key) qui est toujours positionne dans DNSKEY. - Protocole (
3) : toujours 3 dans un DNSSEC valide. - Algorithme (
13ici) :13= ECDSA P-256,8= RSA SHA-256,15= Ed25519. Voir IANA DNSSEC algorithms pour la liste complete. - Cle publique (encodee en base64) : le materiel de cle reel.
Un resolveur validant recupere le set DNSKEY lors de la validation d'un enregistrement de votre zone, et utilise la cle appropriee (KSK pour le RRSIG du DNSKEY lui-meme, ZSK pour tout le reste).
RRSIG : Les signatures
Chaque set d'enregistrements signe dans votre zone est accompagne d'un ou plusieurs RRSIG — un par cle de signature active pour ce role. Un RRSIG ressemble a ceci :
example.com. 3600 IN A 192.0.2.1
example.com. 3600 IN RRSIG A 13 2 3600 20260601000000 20260501000000 12345 example.com. 4kQp...Champs RRSIG :
- Type couvert (
A) : le type du set d'enregistrements signe. - Algorithme (
13) : doit correspondre a l'algorithme du DNSKEY. - Labels (
2) : nombre de labels du nom signe initial. - TTL d'origine (
3600) : la TTL que le set avait lors de la signature. - Expiration de signature (
20260601000000) et debut (20260501000000) : timestamps UTC. La signature n'est valide que dans cette fenetre. - Tag de cle (
12345) : identifiant court indiquant quelle DNSKEY de la zone a produit cette signature. Correspond au tag de la DNSKEY associee. - Nom du signataire (
example.com.) : la zone dont la cle a signe. - Signature (encodee base64) : la signature cryptographique reelle.
Les fenetres d'expiration des signatures sont la raison pour laquelle DNSSEC est non-trivial operationnellement. Si votre serveur autoritaire arrete de re-signer la zone — meme brievement —, les signatures vont commencer a expirer, les resolveurs validants vont commencer a renvoyer SERVFAIL, et votre domaine sera de fait hors ligne. Les fournisseurs DNS manages re-signent automatiquement ; le DNSSEC auto-heberge necessite un pipeline de signature operationnel.
Enregistrements DS : Le lien vers le parent
L'enregistrement DS (Delegation Signer) est la charniere qui relie votre zone a la chaine de confiance globale. Il vit dans la zone parente (.com, .eu, .de, etc.) et contient un hash de votre KSK. Vous ne l'ajoutez pas a votre propre zone — vous le publiez chez votre registrar, qui le transmet au registry TLD.
Un enregistrement DS dans la zone parente ressemble a :
example.com. 86400 IN DS 12345 13 2 7c89...Champs :
- Tag de cle (
12345) : identifiant indiquant quelle KSK ce DS hashe (correspond au tag DNSKEY). - Algorithme (
13) : doit correspondre a l'algorithme du DNSKEY. - Type de digest (
2) : SHA-256 (2) ou SHA-384 (4) — SHA-1 (1) est obsolete. - Digest (encode en hex) : le hash reel.
Quand un resolveur validant veut authentifier votre zone, il recupere l'enregistrement DS au parent (par ex. depuis les serveurs .com), recupere votre set DNSKEY, calcule le hash de la KSK correspondante, et verifie qu'il egale le digest du DS. S'ils correspondent, le resolveur fait confiance au set DNSKEY de votre zone, et par extension aux RRSIG signes avec ces cles.
C'est le seul lien automatise depuis l'exterieur de votre zone vers le materiel de cle de votre zone. Un DS errone et la validation DNSSEC echoue — ou pire, votre domaine devient irresolu pour les clients validants.
NSEC et NSEC3 : Negation authentifiee
Un probleme subtil mais important : DNSSEC ne peut pas seulement signer les enregistrements qui existent. Il faut aussi prouver, quand un resolveur demande nonexistent.example.com, que le nom n'existe vraiment pas plutot que la reponse soit silencieusement perdue ou forgee.
Le mecanisme est NSEC (RFC 4034) ou NSEC3 (RFC 5155).
NSEC
Les enregistrements NSEC sont tries alphabetiquement et chainent les noms qui existent dans la zone. Par exemple :
alpha.example.com. NSEC gamma.example.com. A NSEC RRSIG
gamma.example.com. NSEC zulu.example.com. A NSEC RRSIG
zulu.example.com. NSEC alpha.example.com. A NSEC RRSIG ; reboucle au debutUn resolveur demandant beta.example.com recoit le NSEC signe pour alpha.example.com, qui prouve qu'il n'y a rien entre alpha et gamma — donc beta n'existe pas. La signature sur le NSEC authentifie la reponse negative.
L'inconvenient : les NSEC enumerent publiquement chaque nom dans la zone. Quiconque parcourt la chaine NSEC peut construire une liste complete des noms d'enregistrements. C'est le "zone walking" et c'est parfois considere comme une fuite de confidentialite.
NSEC3
NSEC3 enregistre la meme chaine mais utilise des noms hashes au lieu des noms en clair, plus un nombre d'iterations et un sel :
< hash de alpha >.example.com. NSEC3 1 0 10 abcd123... < hash de gamma > A RRSIG NSEC3Les resolveurs peuvent verifier la negation comme avant (calculer le hash du nom interroge, trouver le NSEC3 qui le couvre), mais un attaquant ne peut pas trivialement parcourir la zone — il devrait casser chaque hash. NSEC3 prend aussi en charge l'opt-out, qui permet aux registries de ne pas signer les delegations non signees pour eviter de devoir NSEC3-signer toute sous-zone inexistante.
Recommandation moderne : NSEC3 avec iterations=0 et un sel fixe (ou pas de sel). Les nombres eleves d'iterations ajoutent du cout CPU sans benefice de confidentialite significatif parce que les attaquants avec GPU peuvent casser n'importe quel compte non-zero. L'approche "white lies" (RFC 4470) est une autre facon de reduire le risque de zone walking tout en gardant la simplicite de NSEC.
Le flux de validation — Pas a pas
Que se passe-t-il reellement lorsqu'un resolveur validant recoit une reponse signee DNSSEC ? En parcourant dig +dnssec example.com @1.1.1.1 :
- Le resolveur recoit l'enregistrement A + RRSIG de votre serveur autoritaire.
- Le resolveur recupere le set DNSKEY de votre zone + RRSIG. Il a maintenant a la fois les donnees et les cles (sous forme publique) necessaires pour tout verifier.
- Le resolveur verifie le RRSIG des donnees contre la ZSK dans le set DNSKEY. Si la signature est invalide, la validation echoue immediatement.
- Le resolveur verifie le RRSIG du DNSKEY contre la KSK dans le set DNSKEY. La KSK a signe le set DNSKEY, y compris la ZSK. Cette etape verrouille la ZSK a la KSK.
- Le resolveur recupere l'enregistrement DS de la zone parente (par ex. depuis les serveurs
.com). Le DS contient un hash de la KSK. - Le resolveur calcule le hash de la KSK et le compare au DS. S'ils correspondent, le parent a confirme quelle KSK fait autorite pour votre zone.
- Le resolveur repete la chaine au parent. L'enregistrement DS lui-meme est signe par la ZSK de la zone parente ; le set DNSKEY de la parente est signe par la KSK de la parente ; la KSK de la parente est hashee dans le DS de la grand-parente, et ainsi de suite, jusqu'a la racine.
- A la racine, le resolveur compare le hash de la KSK racine au point d'ancrage de confiance code en dur (ou auto-mis a jour via RFC 5011). La KSK racine actuelle est publiee a https://data.iana.org/root-anchors/.
Si chaque signature verifie et que la racine remonte au point d'ancrage de confiance, le resolveur renvoie la reponse avec le drapeau AD (Authenticated Data) positionne. Toute defaillance en cours de route et le resolveur renvoie SERVFAIL — mieux casser que de servir une reponse potentiellement alteree.
Ce qui peut mal tourner
| Mode de defaillance | Ce qui se passe | Comment detecter |
|---|---|---|
| DS perime chez le registrar | Le parent pointe vers une vieille KSK qui n'est plus dans votre zone | dig DS yourdomain @parent-ns ; comparer au DNSKEY actuel |
| Signatures expirees | Le serveur autoritaire n'a pas re-signe a temps | dig +dnssec yourdomain → verifier l'expiration RRSIG |
| Mismatch d'algorithme | DS hashe une cle avec algorithme X mais DNSKEY publie l'algorithme Y | Validateurs renvoient SERVFAIL ; DNSViz le souligne |
| Enregistrements non signes inseres | Le serveur autoritaire renvoie des enregistrements sans RRSIG | Validateurs rejettent ; les resolveurs retombent en SERVFAIL |
| Cle retiree trop tot pendant rotation | Vieilles signatures encore en cache mais DNSKEY associee retiree | Echecs de validation lies a la TTL |
| Import de zone sans re-signature | Enregistrements importes d'un autre fournisseur mais non signes | Tous RRSIG manquants ou invalides |
Les deux premiers — DS perime et signatures expirees — causent la grande majorite des pannes DNSSEC reelles. Les fournisseurs manages gerent automatiquement la re-signature ; l'enregistrement DS chez le registrar est le point de defaillance manipulable par l'humain.
Pour synthese — Un modele mental
L'apparente complexite de DNSSEC est principalement de la comptabilite. La vraie question cryptographique est simple : cette reponse vient-elle de quelqu'un qui controle la cle privee de la zone ? La chaine de confiance est une serie de liaisons cle publique, chacune un simple "cle A signe cle B" ou "cle A signe donnees D" :
- La KSK racine signe le set DNSKEY racine (qui inclut la ZSK racine).
- La ZSK racine signe les enregistrements DS des TLD.
- La KSK d'un TLD signe le set DNSKEY du TLD (qui inclut la ZSK du TLD).
- La ZSK du TLD signe les enregistrements DS des zones enregistrees.
- La KSK de votre zone signe votre set DNSKEY (qui inclut votre ZSK).
- Votre ZSK signe chaque set d'enregistrements de votre zone — y compris les NSEC/NSEC3 qui gerent la negation.
Chaque maillon n'est qu'une signature ; la magie est que le resolveur n'a besoin que de la cle racine pour tout verifier.
References
- RFC 4033 — Introduction et exigences DNS Security
- RFC 4034 — Resource Records pour les DNS Security Extensions (DNSKEY, DS, NSEC, RRSIG)
- RFC 4035 — Modifications de protocole pour les DNS Security Extensions
- RFC 5155 — DNSSEC Hashed Authenticated Denial of Existence (NSEC3)
- RFC 6781 — DNSSEC Operational Practices, Version 2
- RFC 7344 / 8078 — Automating DNSSEC Delegation Trust Maintenance (CDS / CDNSKEY)
- RFC 8624 — Algorithm Implementation Requirements and Usage Guidance for DNSSEC
- RFC 8901 — Modeles DNSSEC multi-signataires
- Numeros d'algorithmes DNSSEC IANA
- Points d'ancrage de confiance racine IANA
Lectures complementaires
- Qu'est-ce que DNSSEC ? — introduction haut de l'entonnoir
- Gestion des cles DNSSEC — procedures operationnelles de rotation
- Guide d'installation DNSSEC pour DNScale — pas-a-pas produit
- DNSSEC vs DNS over HTTPS — integrite vs confidentialite
- Empoisonnement de cache DNS — l'attaque que DNSSEC contre
- NIS2 et conformite DNS — DNSSEC comme controle reglementaire
Frequently asked questions
- Quelle est la difference entre KSK et ZSK ?
- La KSK (Key-Signing-Key) signe uniquement le set d'enregistrements DNSKEY de votre zone — l'ensemble qui contient vos cles publiques. La ZSK (Zone-Signing-Key) signe tout le reste (A, AAAA, MX, TXT, etc.). Cette separation existe pour permettre de tourner la ZSK frequemment sans impliquer la zone parente, tandis que la KSK — que la zone parente lie via l'enregistrement DS — tourne rarement avec une ceremonie elevee.
- Qu'est-ce qu'un enregistrement DS et pourquoi est-il chez le registrar ?
- L'enregistrement DS (Delegation Signer) contient un hash de la KSK de votre zone. Il vit dans la zone parente (par ex. .com) afin qu'un resolveur recuperant des informations sur votre zone puisse le trouver et verifier vos enregistrements DNSKEY. Vous publiez le DS via votre registrar, qui le transmet au registry du TLD. Sans le DS, votre zone est signee mais deconnectee de la chaine de confiance globale — les resolveurs voient les signatures mais n'ont aucune raison de les valider.
- Qu'est-ce qu'un enregistrement RRSIG ?
- RRSIG est l'enregistrement de signature. Pour chaque set d'enregistrements de votre zone (les enregistrements A pour example.com, les MX pour example.com, le set DNSKEY, etc.), DNSSEC produit un RRSIG contenant une signature numerique sur ce set. Les resolveurs recuperent ensemble les donnees et le RRSIG, puis verifient la signature contre la cle publique appropriee (ZSK pour la plupart des donnees, KSK pour le set DNSKEY lui-meme).
- Comment DNSSEC prouve-t-il qu'un nom n'existe PAS ?
- Via les enregistrements NSEC ou NSEC3. Un NSEC signe dit 'entre alpha.example.com et gamma.example.com il n'y a aucun autre nom' — prouvant que beta.example.com n'existe pas. NSEC3 fait la meme chose avec des noms hashes pour qu'un attaquant qui interroge ne puisse pas enumerer toute la zone. Sans cela, un attaquant pourrait forger de fausses reponses NXDOMAIN ; avec, meme la negation est signee.
- Qu'est-ce qu'une CSK et quand l'utiliser ?
- Une CSK (Combined Signing Key) joue les roles KSK et ZSK dans une seule cle. Elle simplifie l'exploitation — une seule cle a gerer et tourner — au prix d'interactions plus frequentes avec le registrar lors des rotations (parce que chaque rotation implique l'enregistrement DS). Avec ECDSA P-256, les signatures sont assez petites pour que la simplicite operationnelle l'emporte souvent, et beaucoup de fournisseurs modernes utilisent CSK par defaut plutot que KSK/ZSK separes.
- Que fait reellement un resolveur pendant la validation DNSSEC ?
- Il recupere le set d'enregistrements demande et son RRSIG, recupere le set DNSKEY de la zone, verifie le RRSIG des donnees contre la ZSK, recupere l'enregistrement DS de la zone parente, calcule le hash de la KSK de la zone et verifie qu'il correspond au DS, puis repete le processus en remontant la chaine jusqu'a la racine. Si chaque etape valide et que l'on remonte au point d'ancrage de confiance racine code en dur, la reponse est marquee authentifiee (drapeau AD positionne).
Related guides
Qu'est-ce que DNSSEC ? Un guide simple sur la securite DNS
DNSSEC explique des fondamentaux : ce que c'est, pourquoi il existe, comment il fonctionne globalement, et quand l'activer pour votre domaine.
Guide d'installation DNSSEC pour DNScale — Pas a pas
Activez DNSSEC sur une zone DNScale en moins de 10 minutes — generer les cles, copier le DS chez votre registrar, verifier, et eviter les erreurs de rotation les plus courantes.
NIS2 et DNS — Ce que les operateurs UE regules doivent savoir
Comment la directive NIS2 (UE 2022/2555) s'applique au DNS — obligations des fournisseurs, mesures de gestion des risques, notification d'incidents et exigences vis-a-vis de votre fournisseur DNS.
Ready to manage your DNS with confidence?
DNScale provides anycast DNS hosting with a global network, real-time analytics, and an easy-to-use API.
Start free