5. Il record di risorsa DS (The DS Resource Record)
Il record di risorsa DS fa riferimento a un RR DNSKEY ed è utilizzato nel processo di autenticazione DNSKEY DNS. Un RR DS fa riferimento a un RR DNSKEY memorizzando il key tag, il numero di algoritmo e un digest del RR DNSKEY. Si noti che sebbene il digest dovrebbe essere sufficiente per identificare la chiave pubblica, la memorizzazione del key tag e dell'algoritmo della chiave aiuta a rendere il processo di identificazione più efficiente. Autenticando il record DS, un resolver può autenticare il RR DNSKEY a cui punta il record DS. Il processo di autenticazione della chiave è descritto in [RFC4035].
Il RR DS e il suo RR DNSKEY corrispondente hanno lo stesso nome del proprietario, ma sono memorizzati in posizioni diverse. Il RR DS appare solo sul lato superiore (genitore) di una delega ed è dato autorevole nella zona genitore. Ad esempio, il RR DS per "example.com" è memorizzato nella zona "com" (la zona genitore) piuttosto che nella zona "example.com" (la zona figlia). Il RR DNSKEY corrispondente è memorizzato nella zona "example.com" (la zona figlia). Questo semplifica la gestione della zona DNS e la firma della zona, ma introduce requisiti speciali di elaborazione della risposta per il RR DS; questi sono descritti in [RFC4035].
Il numero di tipo per il record DS è 43.
Il record di risorsa DS è indipendente dalla classe.
Il RR DS non ha requisiti TTL speciali.
5.1. Formato wire RDATA DS (DS RDATA Wire Format)
Il RDATA per un RR DS consiste in un campo Key Tag di 2 ottetti, un campo Algorithm di 1 ottetto, un campo Digest Type di 1 ottetto e un campo Digest.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Key Tag | Algorithm | Digest Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/ /
/ Digest /
/ /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5.1.1. Il campo Key Tag (The Key Tag Field)
Il campo Key Tag elenca il key tag del RR DNSKEY a cui fa riferimento il record DS, in ordine di byte di rete.
Il Key Tag utilizzato dal RR DS è identico al Key Tag utilizzato dai RR RRSIG. L'Appendice B descrive come calcolare un Key Tag.
5.1.2. Il campo Algorithm (The Algorithm Field)
Il campo Algorithm elenca il numero di algoritmo del RR DNSKEY a cui fa riferimento il record DS.
Il numero di algoritmo utilizzato dal RR DS è identico al numero di algoritmo utilizzato dai RR RRSIG e DNSKEY. L'Appendice A.1 elenca i tipi di numero di algoritmo.
5.1.3. Il campo Digest Type (The Digest Type Field)
Il RR DS fa riferimento a un RR DNSKEY includendo un digest di quel RR DNSKEY. Il campo Digest Type identifica l'algoritmo utilizzato per costruire il digest. L'Appendice A.2 elenca i tipi di algoritmo digest possibili.
5.1.4. Il campo Digest (The Digest Field)
Il record DS fa riferimento a un RR DNSKEY includendo un digest di quel RR DNSKEY.
Il digest viene calcolato concatenando la forma canonica (canonical form) del nome del proprietario pienamente qualificato del RR DNSKEY con il RDATA DNSKEY, e quindi applicando l'algoritmo digest.
digest = digest_algorithm( DNSKEY owner name | DNSKEY RDATA);
"|" denota la concatenazione
DNSKEY RDATA = Flags | Protocol | Algorithm | Public Key.
La dimensione del digest può variare a seconda dell'algoritmo digest e della dimensione del RR DNSKEY. Al momento della stesura di questo documento, l'unico algoritmo digest definito è SHA-1, che produce un digest di 20 ottetti.
5.2. Elaborazione dei RR DS durante la validazione delle risposte (Processing of DS RRs When Validating Responses)
Il RR DS collega la catena di autenticazione (authentication chain) attraverso i confini di zona, quindi il RR DS richiede particolare cura nell'elaborazione. Il RR DNSKEY a cui si fa riferimento nel RR DS DEVE essere una chiave di zona DNSSEC. I Flag del RR DNSKEY DEVONO avere il bit 7 dei Flag impostato. Se i flag DNSKEY non indicano una chiave di zona DNSSEC, il RR DS (e il RR DNSKEY a cui fa riferimento) NON DEVONO essere utilizzati nel processo di validazione.
5.3. Formato di presentazione RR DS (The DS RR Presentation Format)
Il formato di presentazione della porzione RDATA è il seguente:
Il campo Key Tag DEVE essere rappresentato come numero intero decimale senza segno.
Il campo Algorithm DEVE essere rappresentato come numero intero decimale senza segno o come mnemonico di algoritmo come specificato nell'Appendice A.1.
Il campo Digest Type DEVE essere rappresentato come numero intero decimale senza segno.
Il Digest DEVE essere rappresentato come sequenza di cifre esadecimali senza distinzione tra maiuscole e minuscole. Gli spazi sono consentiti nel testo esadecimale.
5.4. Esempio di RR DS (DS RR Example)
L'esempio seguente mostra un RR DNSKEY e il suo RR DS corrispondente.
dskey.example.com. 86400 IN DNSKEY 256 3 5 ( AQOeiiR0GOMYkDshWoSKz9Xz
fwJr1AYtsmx3TGkJaNXVbfi/
2pHm822aJ5iI9BMzNXxeYCmZ
DRD99WYwYqUSdjMmmAphXdvx
egXd/M5+X7OrzKBaMbCVdFLU
Uh6DhweJBjEVv5f2wwjM9Xzc
nOf+EPbtG9DMBmADjFDc2w/r
ljwvFw==
) ; key id = 60485
dskey.example.com. 86400 IN DS 60485 5 1 ( 2BB183AF5F22588179A53B0A
98631FAD1A292118 )
I primi quattro campi di testo specificano il nome, TTL, classe e tipo RR (DS). Il valore 60485 è il key tag per il RR DNSKEY corrispondente "dskey.example.com.", e il valore 5 denota l'algoritmo utilizzato da questo RR DNSKEY "dskey.example.com.". Il valore 1 è l'algoritmo utilizzato per costruire il digest, e il resto del testo RDATA è il digest in esadecimale.
Navigazione dei capitoli correlati: