Aller au contenu principal

3. Enregistrement de ressources RRSIG

L'enregistrement de ressources (RR) RRSIG contient la signature cryptographique d'un ensemble d'enregistrements de ressources (RRset). Le RRSIG RR doit être utilisé conjointement avec le DNSKEY RR qui signe le RRset. Le RRSIG RR ne DOIT PAS être enchaîné (chain) vers un type d'enregistrement RR autre que le type de RRset qu'il signe lui-même.

Le format du RDATA de l'enregistrement RRSIG 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type Covered | Algorithm | Labels |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Original TTL |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Signature Expiration |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Signature Inception |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Key Tag | /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Signer's Name /
/ /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/ /
/ Signature /
/ /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

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

  • le type couvert (TYPE COVERED) est un code de type de 16 bits, disposé dans l'ordre des octets réseau, identifiant le type du RRset que cette signature couvre ;
  • l'algorithme (ALGORITHM) est un entier non signé de 8 bits identifiant l'algorithme de clé publique utilisé pour cette signature ;
  • le nombre de labels (LABELS) est un entier non signé de 8 bits égal au nombre de labels dans le nom du propriétaire du RRSIG RR, à l'exclusion de l'éventuel label d'en-tête * (astérisque) utilisé pour les enregistrements génériques (wildcard) ;
  • le TTL d'origine (ORIGINAL TTL) est un entier non signé de 32 bits, disposé dans l'ordre des octets réseau, indiquant le TTL des enregistrements dans le RRset signé ;
  • l'expiration de la signature (SIGNATURE EXPIRATION) est un entier non signé de 32 bits, disposé dans l'ordre des octets réseau, indiquant la date et l'heure (en secondes depuis le 1er janvier 1970 00:00 UTC) à laquelle la signature n'est plus valide ;
  • le début de la signature (SIGNATURE INCEPTION) est un entier non signé de 32 bits, disposé dans l'ordre des octets réseau, indiquant la date et l'heure (en secondes depuis le 1er janvier 1970 00:00 UTC) à laquelle la signature devient valide ;
  • la clé étiquette (KEY TAG) est un entier non signé de 16 bits, disposé dans l'ordre des octets réseau, identifiant le DNSKEY RR utilisé pour vérifier cette signature ;
  • le nom du signataire (SIGNER'S NAME) est le nom DNS de la zone ayant signé ce RRset, représenté sous forme de nom de domaine canonique (wire format) ;
  • la signature (SIGNATURE) est une chaîne d'octets de longueur variable contenant la signature cryptographique du RRset.

3.1. Champ type couvert du RDATA RRSIG​

Le champ TYPE COVERED identifie le type d'enregistrement de ressources du RRset que ce RRSIG couvre. Ce champ NE DOIT PAS être 0 (cette valeur est réservée et n'identifie aucun type RR existant).

3.2. Champ algorithme du RDATA RRSIG​

Le champ ALGORITHM identifie l'algorithme de clé publique utilisé pour cette signature. La valeur de ce champ DOIT être identique au champ ALGORITHM du DNSKEY RR utilisé pour vérifier cette signature.

3.3. Champ nombre de labels du RDATA RRSIG​

Le champ LABELS est un entier non signé de 8 bits égal au nombre de labels dans le nom du propriétaire du RRSIG, à l'exclusion de l'éventuel label d'en-tête * (astérisque) utilisé pour les enregistrements génériques. Le champ LABELS DOIT être fixé au nombre de labels du nom du propriétaire pour un nom non générique, ou à ce nombre moins un pour un nom générique. Le champ LABELS NE DOIT PAS être 0.

Le validateur DOIT vérifier que le champ LABELS est cohérent avec le nombre de labels du nom du propriétaire du RRSIG (en tenant compte du cas générique), sinon il DOIT rejeter la signature.

3.4. Champ TTL d'origine du RDATA RRSIG​

Le champ ORIGINAL TTL est le TTL des RR dans le RRset signé au moment de la création de la signature. Le validateur DOIT vérifier que le TTL de chaque enregistrement de ce RRset correspond à cette valeur avant la vérification (il peut traiter cela comme décrit dans [RFC4035]) ; sinon la vérification de la signature DOIT échouer.

3.5. Champs expiration et début de signature du RDATA RRSIG​

Les champs SIGNATURE EXPIRATION et SIGNATURE INCEPTION sont donnés en secondes depuis le 1er janvier 1970 00:00 UTC. Le validateur DOIT accepter la signature uniquement si l'heure courante se situe dans l'intervalle [SIGNATURE INCEPTION, SIGNATURE EXPIRATION].

Si SIGNATURE INCEPTION est supérieur à SIGNATURE EXPIRATION, la signature NE DOIT PAS être acceptée.

3.6. Champ clé étiquette du RDATA RRSIG​

Le champ KEY TAG contient la clé étiquette du DNSKEY RR utilisé pour vérifier cette signature. Il est utilisé pour sélectionner efficacement le bon DNSKEY RR dans le DNSKEY RRset.

3.7. Champ nom du signataire du RDATA RRSIG​

Le champ SIGNER'S NAME contient le nom de la zone ayant signé ce RRset. Il DOIT être le nom de la zone contenant le DNSKEY utilisé pour la vérification (ou un de ses ancêtres, conformément aux règles de chaîne de confiance de [RFC4035]).

3.8. Champ signature du RDATA RRSIG​

Le champ SIGNATURE contient la signature cryptographique sous forme binaire, calculée sur la forme canonique du RRset à l'aide de la clé privée associée au DNSKEY RR, conformément au processus de calcul de signature prescrit dans [RFC4035].

3.9. Format de présentation RRSIG​

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

  • le type couvert est représenté sous forme textuelle (par exemple A, NS, SOA) ou, pour un type inconnu, selon la notation RFC 3597 ;
  • l'algorithme est représenté par un entier non signé en décimal ;
  • le nombre de labels est représenté par un entier non signé en décimal ;
  • le TTL d'origine est représenté par un entier non signé en décimal ;
  • l'expiration et le début de la signature sont représentés au format YYYYMMDDHHmmSS (UTC) ;
  • la clé étiquette est représentée par un entier non signé en décimal ;
  • le nom du signataire est représenté sous forme textuelle de nom de domaine canonique ;
  • la signature est représentée par une chaîne d'octets encodée en Base64 [RFC3548], sans espaces.

3.10. Considérations particulières pour le RRSIG RR​

Un enregistrement RRSIG ne signe qu'un seul RRset ; pour chaque RRset et chaque algorithme, il DEVRAIT exister un enregistrement RRSIG correspondant. L'enregistrement RRSIG NE DOIT PAS être inclus dans le RRset qu'il signe. Le validateur DOIT vérifier le RRSIG à l'aide de la clé dont le bit ZONE correspond au DNSKEY de signature.


Navigation entre sections :