Les enregistrements DNSKEY et DS sont utilisés par les résolveurs DNSSEC pour vérifier l'authenticité des enregistrements DNS.
Cet article s'articule autour des points suivants :
Copier le lien de l'article
Le système de noms de domaine (DNS) est le répertoire téléphonique d'Internet, mais il n'a pas été conçu dans un souci de sécurité. C'est pourquoi un protocole de sécurité facultatif appelé DNSSEC a été créé afin que les propriétaires de sites Web puissent mieux sécuriser leurs applications. Le protocole DNSSEC renforce la sécurité en ajoutant des signatures cryptographiques aux enregistrements DNS ; ces signatures peuvent être contrôlées pour vérifier qu'un enregistrement provient du bon serveur DNS.
Pour la mise en œuvre de ces signatures cryptographiques, deux nouveaux types d'enregistrement DNS ont été créés : DNSKEY et DS. L'enregistrement DNSKEY contient une clé de signature publique, et l'enregistrement DS contient un hash* d'un enregistrement DNSKEY.
Chaque zone DNSSEC se voit attribuer un ensemble de clés de signature (ZSK) de la zone . Cet ensemble comprend une ZSK privée et une ZSK publique. La ZSK privée est utilisée pour signer les enregistrements DNS dans cette zone, et la ZSK publique est utilisée pour vérifier la ZSK privée.
La ZSK publique est publiée dans un enregistrement DNSSEC, c'est ainsi qu'elle est fournie à un résolveur DNSSEC ; le résolveur utilisera la ZSK publique pour s'assurer que les enregistrements de cette zone sont authentiques. Comme couche de sécurité supplémentaire, les zones DNSSEC contiennent un deuxième enregistrement DNSKEY contenant une clé de signature (KSK), qui vérifie l'authenticité de la ZSK publique.
L'enregistrement DS est utilisé pour vérifier l'authenticité des zones enfants** des zones DNSSEC. L'enregistrement de clé DS d'une zone parent contient un hachage du KSK d'une zone enfant. Un résolveur DNSSEC peut donc vérifier l'authenticité de la zone enfant en hachant son enregistrement KSK et en le comparant à celui de l'enregistrement DS de la zone parent.
*Un hachage cryptographique est un brouillage unidirectionnel d'une entrée alphanumérique ; les hachages sont souvent utilisés pour stocker des informations sensibles comme les mots de passe sur des serveurs. Par exemple, le hachage de l'entrée "cantguessthis" est 18fe9934cf77a759eb2471f2b304708a. Chaque fois que "cantguessthis" est soumis à la fonction de hachage, celle-ci produit le même hachage. Mais il n'y a aucun moyen d'obtenir l'entrée originale en utilisant uniquement le hachage. Le hachage en lui-même est essentiellement inutile.
**Une zone enfant est un sous-domaine délégué d'une autre zone. Par exemple, une URL de example.com peut avoir des zones enfants avec des domaines comme blog.example.com et mail.example.com.