Passa al contenuto principale

2. Resource record DNSKEY

Il resource record (RR) DNSKEY contiene, sotto forma di chiave pubblica, le informazioni di crittografia a chiave pubblica associate alle estensioni di sicurezza del Domain Name System (DNSSEC).

Il formato del RDATA del resource record DNSKEY è il seguente:

                         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 (lunghezza variabile secondo algoritmo) /
/ /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Il RDATA del resource record DNSKEY è rappresentato e codificato nel modo seguente:

  • i flag (FLAGS) sono un intero senza segno a 16 bit, disposto in ordine di byte di rete (Network Byte Order);
  • il protocollo (PROTOCOL) è un intero senza segno a 8 bit il cui valore DEVE essere 3;
  • l'algoritmo (ALGORITHM) è un intero senza segno a 8 bit che identifica l'algoritmo a chiave pubblica utilizzato;
  • la chiave pubblica (PUBLIC KEY) è una stringa di ottetti di lunghezza variabile il cui contenuto dipende dal valore del campo algoritmo, come descritto di seguito.

2.1. Campo flag del RDATA DNSKEY​

I bit del campo FLAGS sono allocati come segue.

                         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 figura sopra mostra solo i bit all'interno del campo FLAGS (nota: la numerazione dei bit inizia da 0, da sinistra a destra).

I bit del campo FLAGS del DNSKEY RR sono allocati come segue:

  • il bit 7 è il bit ZONE (vedi sotto);
  • il bit 15 è il bit Secure Entry Point (SEP) (vedi [RFC3757]);
  • i bit da 0 a 6 e da 8 a 14 sono riservati e DEVONO essere impostati a 0.

Le sezioni 2.1.1 e 2.1.2 descrivono il significato dei bit ZONE e SEP.

2.1.1. Bit di flag ZONE​

Il bit ZONE (bit 7) nel DNSKEY RR indica se il DNSKEY RR possiede la chiave privata della zona corrispondente e può quindi firmare gli RRset di tale zona.

  • quando il bit ZONE è impostato (valore 1), il detentore del record DNSKEY possiede la chiave privata utilizzata per firmare la zona;
  • quando il bit ZONE è azzerato (valore 0), il record DNSKEY PUÒ essere utilizzato per altri scopi oltre alla verifica degli RRset firmati ottenuti dalla zona corrispondente.

Il bit di flag ZONE DEVE essere impostato in modo appropriato dall'amministratore della zona. Un validatore utilizza un DNSKEY per verificare gli RRSIG della zona solo se il DNSKEY a cui punta il record RRSIG possiede il bit ZONE.

2.1.2. Bit di flag Secure Entry Point (SEP)​

Il bit Secure Entry Point (SEP) (bit 15) identifica se questo DNSKEY è considerato dall'amministratore della zona come un "punto di ingresso sicuro" (Secure Entry Point) della zona. Un punto di ingresso sicuro è la chiave a cui punta il record DS nella zona padre. Il bit SEP non ha alcun significato crittografico nell'operazione di firma della zona; è unicamente un bit di identificazione che aiuta l'amministratore della zona a distinguere la chiave utilizzata come punto di ingresso sicuro (ovvero la chiave che genererà un record DS nella zona padre) dalle altre chiavi utilizzate per la firma della zona.

Il bit SEP è descritto più dettagliatamente in [RFC3757].

2.2. Campo protocol del RDATA DNSKEY​

Il campo PROTOCOL del DNSKEY RR DEVE essere 3. Se viene ricevuto un DNSKEY RR il cui campo PROTOCOL non è 3, DEVE essere trattato come malformato (malformed) e ignorato.

2.3. Campo algorithm del RDATA DNSKEY​

Il campo ALGORITHM del DNSKEY RR identifica l'algoritmo di crittografia a chiave pubblica utilizzato per questo DNSKEY RR. I numeri di algoritmo utilizzati in DNSSEC sono riportati nell'appendice A.

Il valore del campo ALGORITHM determina la disposizione e il contenuto del campo PUBLIC KEY.

2.4. Campo public key del RDATA DNSKEY​

Il campo PUBLIC KEY del DNSKEY RR contiene il materiale della chiave pubblica, il cui formato è determinato dal campo ALGORITHM. Per gli algoritmi definiti in questo documento, il materiale della chiave pubblica è fornito in un formato adatto a ciascun algoritmo (ad esempio la rappresentazione dell'esponente con lunghezza prefissa per RSA, o la concatenazione dei campi per DSA).

2.5. Formato di presentazione DNSKEY​

Il formato di presentazione (presentation format) del DNSKEY RR è il seguente:

  • il campo flag è rappresentato da un intero senza segno in decimale;
  • il campo protocol è rappresentato da un intero senza segno in decimale. Questo campo DEVE essere sempre 3;
  • il campo algorithm è rappresentato da un intero senza segno in decimale;
  • il campo public key è rappresentato da una stringa di ottetti codificata in Base64 [RFC3548].

Esempio:

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

2.6. Considerazioni particolari per il DNSKEY RR​

Il DNSKEY RR è un record importante utilizzato per la firma della zona. Il validatore DEVE utilizzare, per verificare la firma, il DNSKEY a cui punta il record RRSIG e che possiede il bit ZONE.

Quando un DNSKEY RRset viene firmato, la chiave DNSKEY utilizzata per verificare tale firma DOVREBBE essere pubblicata sotto forma di record DS nella zona padre per stabilire una catena di fiducia (chain of trust).


Navigazione tra sezioni: