Aller au contenu principal

2. L'enregistrement de ressource DNSKEY (The DNSKEY Resource Record)

DNSSEC utilise la cryptographie à clé publique (public key cryptography) pour signer et authentifier les ensembles d'enregistrements de ressources DNS (resource record sets, RRsets). Les clés publiques (public keys) sont stockées dans des enregistrements de ressources DNSKEY et sont utilisées dans le processus d'authentification DNSSEC décrit dans [RFC4035] : Une zone signe ses RRsets faisant autorité (authoritative RRsets) en utilisant une clé privée (private key) et stocke la clé publique correspondante dans un RR DNSKEY. Un résolveur (resolver) peut ensuite utiliser la clé publique pour valider les signatures couvrant les RRsets dans la zone, et ainsi les authentifier.

Le RR DNSKEY n'est pas destiné à être un enregistrement pour stocker des clés publiques arbitraires et NE DOIT PAS être utilisé pour stocker des certificats ou des clés publiques qui ne sont pas directement liés à l'infrastructure DNS.

La valeur Type pour le type RR DNSKEY est 48.

Le RR DNSKEY est indépendant de la classe (class independent).

Le RR DNSKEY n'a pas d'exigences TTL particulières.

2.1. Format de transmission RDATA DNSKEY (DNSKEY RDATA Wire Format)

Le RDATA pour un RR DNSKEY se compose d'un champ Flags de 2 octets, d'un champ Protocol de 1 octet, d'un champ Algorithm de 1 octet et du champ Public Key.

                     1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Protocol | Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/ /
/ Public Key /
/ /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

2.1.1. Le champ Flags (The Flags Field)

Le bit 7 du champ Flags est le drapeau Zone Key. Si le bit 7 a la valeur 1, alors l'enregistrement DNSKEY contient une clé de zone DNS (DNS zone key) et le nom du propriétaire (owner name) du RR DNSKEY DOIT être le nom de la zone. Si le bit 7 a la valeur 0, alors l'enregistrement DNSKEY contient un autre type de clé publique DNS et NE DOIT PAS être utilisé pour vérifier les RRSIG couvrant les RRsets.

Le bit 15 du champ Flags est le drapeau Secure Entry Point, décrit dans [RFC3757]. Si le bit 15 a la valeur 1, alors l'enregistrement DNSKEY contient une clé destinée à être utilisée comme point d'entrée sécurisé (secure entry point). Ce drapeau n'est destiné qu'à servir d'indication au logiciel de signature de zone ou de débogage concernant l'utilisation prévue de cet enregistrement DNSKEY. Les validateurs (validators) NE DOIVENT PAS modifier leur comportement pendant le processus de vérification de signature en fonction du paramétrage de ce bit. Cela signifie également que pour qu'un RR DNSKEY avec le bit SEP défini puisse légitimement générer des signatures, le drapeau Zone Key doit également être défini. Un RR DNSKEY avec le SEP défini et le drapeau Zone Key non défini NE DOIT PAS être utilisé pour vérifier les RRSIG couvrant les RRsets.

Les bits 0 à 6 et les bits 8 à 14 sont réservés. Ces bits DOIVENT avoir la valeur 0 lors de la création du RR DNSKEY et DOIVENT être ignorés à la réception.

2.1.2. Le champ Protocol (The Protocol Field)

Le champ Protocol DOIT avoir la valeur 3, et si le RR DNSKEY s'avère avoir une valeur autre que 3 pendant la vérification de signature, alors le RR DNSKEY DOIT être traité comme invalide.

2.1.3. Le champ Algorithm (The Algorithm Field)

Le champ Algorithm identifie l'algorithme cryptographique de la clé publique et détermine le format du champ Public Key. Une liste des types d'algorithmes DNSSEC se trouve dans l'annexe A.1.

2.1.4. Le champ Public Key (The Public Key Field)

Le champ Public Key contient le matériel de clé publique (public key material). Le format dépend de l'algorithme de la clé stockée et est décrit dans un document séparé.

2.1.5. Notes sur la conception RDATA DNSKEY (Notes on DNSKEY RDATA Design)

Le champ Protocol a toujours la valeur 3, mais il est conservé pour la rétrocompatibilité avec les versions initiales de l'enregistrement KEY.

2.2. Format de présentation RR DNSKEY (The DNSKEY RR Presentation Format)

Le format de présentation de la partie RDATA est le suivant.

Le champ Flag DOIT être représenté comme un entier décimal non signé. Compte tenu des drapeaux actuellement définis, les valeurs possibles sont 0, 256 et 257.

Le champ Protocol DOIT être représenté comme un entier décimal non signé avec la valeur 3.

Le champ Algorithm DOIT être représenté soit comme un entier décimal non signé, soit comme un mnémonique d'algorithme (algorithm mnemonic) tel que spécifié dans l'annexe A.1.

Le champ Public Key DOIT être représenté comme un encodage Base64 de la clé publique. Des espaces peuvent être inclus dans le texte Base64. Pour une définition de l'encodage Base64, voir [RFC3548].

2.3. Exemple de RR DNSKEY (DNSKEY RR Example)

Le RR DNSKEY suivant stocke la clé de zone DNS pour example.com.

example.com. 86400 IN DNSKEY 256 3 5 ( AQPSKmynfzW4kyBv015MUG2DeIQ3
Cbl+BBZH4b/0PY1kxkmvHjcZc8no
kfzj31GajIQKY+5CptLr3buXA10h
WqTkF7H6RfoRqXQeogmMHfpftf6z
Mv1LyBUgia7za6ZEzOJBOztyvhjL
742iU/TpPSEDhm2SNKLijfUppn1U
aNvv4w== )

Les quatre premiers champs de texte spécifient le nom du propriétaire, le TTL, la classe et le type RR (DNSKEY). La valeur 256 indique que le bit Zone Key (bit 7) du champ Flags a la valeur 1. La valeur 3 est la valeur Protocol fixe. La valeur 5 indique l'algorithme de clé publique. L'annexe A.1 identifie le type d'algorithme 5 comme étant RSA/SHA1 et indique que le format du champ Public Key RSA/SHA1 est défini dans [RFC3110]. Le texte restant est l'encodage Base64 de la clé publique.


Navigation des chapitres connexes :