Aller au contenu principal

2. Enregistrement de ressources DNSKEY

L'enregistrement de ressources (RR) DNSKEY contient, sous forme de clé publique, les informations de cryptographie à clé publique associées aux extensions de sécurité du système de noms de domaine (DNSSEC).

Le format du RDATA de l'enregistrement DNSKEY est le suivant :

                         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 (longueur variable selon algorithme) /
/ /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Le RDATA de l'enregistrement DNSKEY est représenté et encodé comme suit :

  • les drapeaux (FLAGS) sont un entier non signé de 16 bits, disposé dans l'ordre des octets réseau (Network Byte Order) ;
  • le protocole (PROTOCOL) est un entier non signé de 8 bits dont la valeur DOIT être 3 ;
  • l'algorithme (ALGORITHM) est un entier non signé de 8 bits identifiant l'algorithme de clé publique utilisé ;
  • la clé publique (PUBLIC KEY) est une chaîne d'octets de longueur variable dont le contenu dépend de la valeur du champ algorithme, comme décrit ci-dessous.

2.1. Champ des drapeaux du RDATA DNSKEY​

Les bits du champ FLAGS sont alloués comme suit.

                         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 |Z| | | | | | | | | | | | | | |S|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

La figure ci-dessus montre uniquement les bits à l'intérieur du champ FLAGS (note : la numérotation des bits commence à 0, de gauche à droite).

Les bits du champ FLAGS du DNSKEY RR sont alloués comme suit :

  • le bit 7 est le bit ZONE (voir ci-dessous) ;
  • le bit 15 est le bit Secure Entry Point (SEP) (voir [RFC3757]) ;
  • les bits 0-6 et 8-14 sont réservés et DOIVENT être fixés à 0.

Les sections 2.1.1 et 2.1.2 décrivent la signification des bits ZONE et SEP.

2.1.1. Bit d'indicateur ZONE​

Le bit ZONE (bit 7) de l'enregistrement DNSKEY indique si le DNSKEY RR possède la clé privée correspondant à la zone et peut donc signer les RRset de cette zone.

  • lorsque le bit ZONE est positionné (valeur 1), le détenteur de l'enregistrement DNSKEY possède la clé privée utilisée pour signer la zone ;
  • lorsque le bit ZONE est effacé (valeur 0), l'enregistrement DNSKEY PEUT être utilisé à d'autres fins que la vérification des RRset signés obtenus à partir de la zone correspondante.

Le bit d'indicateur ZONE DOIT être défini de manière appropriée par l'administrateur de la zone. Un validateur n'utilise un DNSKEY pour vérifier les RRSIG de la zone que si le DNSKEY pointé par l'enregistrement RRSIG possède le bit ZONE.

2.1.2. Bit d'indicateur Secure Entry Point (SEP)​

Le bit Secure Entry Point (SEP) (bit 15) identifie si ce DNSKEY est considéré par l'administrateur de la zone comme un « point d'entrée sécurisé » (Secure Entry Point) de la zone. Un point d'entrée sécurisé est la clé vers laquelle pointe l'enregistrement DS dans la zone parente. Le bit SEP n'a aucune signification cryptographique dans l'opération de signature de zone ; c'est uniquement un bit d'identification permettant à l'administrateur de la zone de distinguer la clé utilisée comme point d'entrée sécurisé (c'est-à-dire la clé qui produira un enregistrement DS dans la zone parente) des autres clés utilisées pour la signature de zone.

Le bit SEP est décrit plus en détail dans [RFC3757].

2.2. Champ protocole du RDATA DNSKEY​

Le champ PROTOCOL du DNSKEY RR DOIT être 3. Si un DNSKEY RR dont le champ PROTOCOL n'est pas 3 est reçu, il DOIT être traité comme mal formé (malformed) et ignoré.

2.3. Champ algorithme du RDATA DNSKEY​

Le champ ALGORITHM du DNSKEY RR identifie l'algorithme de cryptographie à clé publique utilisé pour ce DNSKEY RR. Les numéros d'algorithme utilisés dans DNSSEC sont donnés dans l'annexe A.

La valeur du champ ALGORITHM détermine la disposition et le contenu du champ PUBLIC KEY.

2.4. Champ clé publique du RDATA DNSKEY​

Le champ PUBLIC KEY du DNSKEY RR contient le matériel de clé publique, dont le format est déterminé par le champ ALGORITHM. Pour les algorithmes définis dans ce document, le matériel de clé publique est fourni dans un format adapté à chaque algorithme (par exemple une représentation de l'exposant avec longueur préfixée pour RSA, ou une concaténation des champs pour DSA).

2.5. Format de présentation DNSKEY​

Le format de présentation (presentation format) du DNSKEY RR est le suivant :

  • le champ des drapeaux est représenté par un entier non signé en décimal ;
  • le champ protocole est représenté par un entier non signé en décimal. Ce champ DOIT toujours valoir 3 ;
  • le champ algorithme est représenté par un entier non signé en décimal ;
  • le champ clé publique est représenté par une chaîne d'octets encodée en Base64 [RFC3548].

Exemple :

    example.com. 3600 IN DNSKEY 257 3 5 (
AQPSKmynfzW4kyBv015MUG2DeIQ3Cbl+BBZH4b/0PY1kxkmvHjcZc8nokfzjib
kX1j8Lj+ZnSs8LzDHl+0PzHj7mVoMjWSbqHUUjWQSnJCvgkJ2WGlKjK/bBIf
... ) ; key id = 60485

2.6. Considérations particulières pour le DNSKEY RR​

Le DNSKEY RR est un enregistrement essentiel utilisé pour la signature de zone. Le validateur DOIT utiliser le DNSKEY pointé par l'enregistrement RRSIG et dont le bit ZONE est positionné pour vérifier la signature.

Lorsqu'un DNSKEY RRset est signé, la clé DNSKEY utilisée pour vérifier cette signature DOIT être publiée sous la forme d'un enregistrement DS dans la zone parente afin d'établir une chaîne de confiance (chain of trust).


Navigation entre sections :