2. Il record di risorsa DNSKEY (The DNSKEY Resource Record)
DNSSEC utilizza la crittografia a chiave pubblica (public key cryptography) per firmare e autenticare i set di record di risorse DNS (resource record sets, RRsets). Le chiavi pubbliche (public keys) sono memorizzate nei record di risorse DNSKEY e sono utilizzate nel processo di autenticazione DNSSEC descritto in [RFC4035]: Una zona firma i suoi RRset autorevoli (authoritative RRsets) utilizzando una chiave privata (private key) e memorizza la chiave pubblica corrispondente in un RR DNSKEY. Un resolver può quindi utilizzare la chiave pubblica per validare le firme che coprono i RRsets nella zona, autenticandoli così.
Il RR DNSKEY non è inteso come record per memorizzare chiavi pubbliche arbitrarie e NON DEVE essere utilizzato per memorizzare certificati o chiavi pubbliche che non sono direttamente correlate all'infrastruttura DNS.
Il valore Type per il tipo RR DNSKEY è 48.
Il RR DNSKEY è indipendente dalla classe (class independent).
Il RR DNSKEY non ha requisiti TTL speciali.
2.1. Formato wire RDATA DNSKEY (DNSKEY RDATA Wire Format)
Il RDATA per un RR DNSKEY consiste in un campo Flags di 2 ottetti, un campo Protocol di 1 ottetto, un campo Algorithm di 1 ottetto e il campo 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. Il campo Flags (The Flags Field)
Il bit 7 del campo Flags è il flag Zone Key. Se il bit 7 ha valore 1, il record DNSKEY contiene una chiave di zona DNS (DNS zone key) e il nome del proprietario (owner name) del RR DNSKEY DEVE essere il nome della zona. Se il bit 7 ha valore 0, il record DNSKEY contiene un altro tipo di chiave pubblica DNS e NON DEVE essere utilizzato per verificare RRSIG che coprono RRsets.
Il bit 15 del campo Flags è il flag Secure Entry Point, descritto in [RFC3757]. Se il bit 15 ha valore 1, il record DNSKEY contiene una chiave destinata ad essere utilizzata come punto di ingresso sicuro (secure entry point). Questo flag è inteso solo come suggerimento al software di firma della zona o di debug riguardo all'uso previsto di questo record DNSKEY. I validatori (validators) NON DEVONO modificare il loro comportamento durante il processo di verifica della firma in base all'impostazione di questo bit. Questo significa anche che affinché un RR DNSKEY con il bit SEP impostato possa legittimamente generare firme, deve essere impostato anche il flag Zone Key. Un RR DNSKEY con SEP impostato e il flag Zone Key non impostato NON DEVE essere utilizzato per verificare RRSIG che coprono RRsets.
I bit 0-6 e i bit 8-14 sono riservati. Questi bit DEVONO avere valore 0 quando si crea il RR DNSKEY e DEVONO essere ignorati alla ricezione.
2.1.2. Il campo Protocol (The Protocol Field)
Il campo Protocol DEVE avere valore 3, e se durante la verifica della firma si scopre che il RR DNSKEY ha un valore diverso da 3, allora il RR DNSKEY DEVE essere trattato come non valido.
2.1.3. Il campo Algorithm (The Algorithm Field)
Il campo Algorithm identifica l'algoritmo crittografico della chiave pubblica e determina il formato del campo Public Key. Un elenco dei tipi di algoritmo DNSSEC si trova nell'Appendice A.1.
2.1.4. Il campo Public Key (The Public Key Field)
Il campo Public Key contiene il materiale della chiave pubblica (public key material). Il formato dipende dall'algoritmo della chiave memorizzata ed è descritto in un documento separato.
2.1.5. Note sul design RDATA DNSKEY (Notes on DNSKEY RDATA Design)
Il campo Protocol ha sempre valore 3, ma è mantenuto per compatibilità con le versioni iniziali del record KEY.
2.2. Formato di presentazione RR DNSKEY (The DNSKEY RR Presentation Format)
Il formato di presentazione della porzione RDATA è il seguente.
Il campo Flag DEVE essere rappresentato come numero intero decimale senza segno. Considerando i flag attualmente definiti, i valori possibili sono 0, 256 e 257.
Il campo Protocol DEVE essere rappresentato come numero intero decimale senza segno con valore 3.
Il campo Algorithm DEVE essere rappresentato come numero intero decimale senza segno o come mnemonico di algoritmo (algorithm mnemonic) come specificato nell'Appendice A.1.
Il campo Public Key DEVE essere rappresentato come codifica Base64 della chiave pubblica. Gli spazi possono essere inclusi nel testo Base64. Per una definizione della codifica Base64, vedere [RFC3548].
2.3. Esempio di RR DNSKEY (DNSKEY RR Example)
Il seguente RR DNSKEY memorizza la chiave di zona DNS per example.com.
example.com. 86400 IN DNSKEY 256 3 5 ( AQPSKmynfzW4kyBv015MUG2DeIQ3
Cbl+BBZH4b/0PY1kxkmvHjcZc8no
kfzj31GajIQKY+5CptLr3buXA10h
WqTkF7H6RfoRqXQeogmMHfpftf6z
Mv1LyBUgia7za6ZEzOJBOztyvhjL
742iU/TpPSEDhm2SNKLijfUppn1U
aNvv4w== )
I primi quattro campi di testo specificano il nome del proprietario, TTL, classe e tipo RR (DNSKEY). Il valore 256 indica che il bit Zone Key (bit 7) del campo Flags ha valore 1. Il valore 3 è il valore Protocol fisso. Il valore 5 indica l'algoritmo di chiave pubblica. L'Appendice A.1 identifica il tipo di algoritmo 5 come RSA/SHA1 e indica che il formato del campo Public Key RSA/SHA1 è definito in [RFC3110]. Il testo rimanente è la codifica Base64 della chiave pubblica.
Navigazione dei capitoli correlati:
- Precedente: 1. Introduzione (Introduction)
- Successivo: 3. Il record di risorsa RRSIG (The RRSIG Resource Record)