6. Forme canonique et ordre des enregistrements de ressources (Canonical Form and Order of Resource Records)
Cette section définit une forme canonique pour les enregistrements de ressources, un ordre canonique des noms DNS et un ordre canonique des enregistrements de ressources au sein d'un RRset. Un ordre canonique des noms est nécessaire pour construire la chaîne de noms NSEC. Une forme canonique RR et un ordre au sein d'un RRset sont nécessaires pour construire et vérifier les RR RRSIG.
6.1. Ordre canonique des noms DNS (Canonical DNS Name Order)
Aux fins de la sécurité DNS, les noms de propriétaires sont ordonnés en traitant les étiquettes individuelles comme des chaînes d'octets non signées justifiées à gauche. Lorsque des chaînes d'octets sont comparées, l'absence d'un octet est triée avant un octet de valeur zéro, et les lettres US-ASCII majuscules sont traitées comme si elles étaient des lettres US-ASCII minuscules.
Pour calculer l'ordre canonique d'un ensemble de noms DNS, commencez par trier les noms selon leurs étiquettes les plus significatives (les plus à droite). Pour les noms dans lesquels l'étiquette la plus significative est identique, continuez à trier selon leur étiquette suivante la plus significative, et ainsi de suite.
Par exemple, les noms suivants sont triés dans l'ordre canonique des noms DNS. L'étiquette la plus significative est "example". À ce niveau, "example" est trié en premier, suivi des noms se terminant par "a.example", puis par les noms se terminant par "z.example". Les noms au sein de chaque niveau sont triés de la même manière.
example
a.example
yljkjljk.a.example
Z.a.example
zABC.a.EXAMPLE
z.example
\001.z.example
*.z.example
\200.z.example
6.2. Forme canonique RR (Canonical RR Form)
Aux fins de la sécurité DNS, la forme canonique d'un RR est le format de transmission du RR où :
-
chaque nom de domaine dans le RR est entièrement développé (pas de compression de nom DNS) et entièrement qualifié ;
-
toutes les lettres US-ASCII majuscules dans le nom de propriétaire du RR sont remplacées par les lettres US-ASCII minuscules correspondantes ;
-
si le type du RR est NS, MD, MF, CNAME, SOA, MB, MG, MR, PTR, HINFO, MINFO, MX, HINFO, RP, AFSDB, RT, SIG, PX, NXT, NAPTR, KX, SRV, DNAME, A6, RRSIG ou NSEC, toutes les lettres US-ASCII majuscules dans les noms DNS contenus dans le RDATA sont remplacées par les lettres US-ASCII minuscules correspondantes ;
-
si le nom de propriétaire du RR est un nom générique (wildcard name), le nom de propriétaire est dans sa forme originale non développée, incluant l'étiquette "*" (pas de substitution générique) ; et
-
le TTL du RR est défini sur sa valeur originale telle qu'elle apparaît dans la zone faisant autorité d'origine ou le champ Original TTL du RR RRSIG couvrant.
6.3. Ordre canonique RR dans un RRset (Canonical RR Ordering Within an RRset)
Aux fins de la sécurité DNS, les RR avec le même nom de propriétaire, la même classe et le même type sont triés en traitant la partie RDATA de la forme canonique de chaque RR comme une séquence d'octets non signés justifiée à gauche dans laquelle l'absence d'un octet est triée avant un octet zéro.
[RFC2181] spécifie qu'un RRset n'est pas autorisé à contenir des enregistrements en double (plusieurs RR avec les mêmes nom de propriétaire, classe, type et RDATA). Par conséquent, si une implémentation détecte des RR en double lors de la mise du RRset sous forme canonique, elle DOIT traiter cela comme une erreur de protocole. Si l'implémentation choisit de gérer cette erreur de protocole dans l'esprit du principe de robustesse (être libéral dans ce qu'elle accepte), elle DOIT supprimer tous les RR en double sauf un aux fins du calcul de la forme canonique du RRset.
Navigation des chapitres connexes :