5. Resource record NSEC
Il resource record (RR) NSEC (Next SECure, successivo sicuro) è utilizzato per provare l'assenza di un nome del proprietario (owner name) o di un determinato tipo di resource record in una zona firmata. Il NSEC RR ottiene ciò enumerando il nome del proprietario successivo, nell'ordine canonico della zona.
Il formato del RDATA del resource record NSEC è 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/ Next Domain Name /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/ Type Bit Maps /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Il RDATA del resource record NSEC è rappresentato e codificato nel modo seguente:
- il nome di dominio successivo (NEXT DOMAIN NAME) è il nome del proprietario successivo, nell'ordine canonico della zona (questo nome DEVE essere diverso dal nome del proprietario di questo NSEC RR), rappresentato come nome di dominio canonico (wire format);
- la mappa di bit dei tipi (TYPE BIT MAPS) identifica l'insieme dei tipi di resource record associati al nome del proprietario del NSEC RR. La mappa di bit dei tipi è codificata come bitmap compatta, il cui formato è descritto nella sezione 5.1.
5.1. Campo type bit maps del RDATA NSEC
La mappa di bit dei tipi è codificata come sequenza di uno o più blocchi finestra (window block). La struttura di ciascun blocco finestra è la seguente:
+--------+--------+--------+--------+--------+--------+
| Window| Bitmap Length | Bitmap |
+--------+--------+--------+--------+--------+--------+
dove:
- Window è un intero senza segno a 8 bit che identifica gli 8 bit più significativi del codice di tipo (ovvero il quoziente del codice di tipo diviso per 256);
- Bitmap Length è un intero senza segno a 8 bit che identifica la lunghezza (in ottetti) della bitmap in questo blocco finestra, compresa tra 1 e 32;
- Bitmap è una bitmap di Bitmap Length ottetti che copre i codici di tipo all'interno di tale finestra. Ciascun bit della bitmap corrisponde a un codice di tipo; il bit 0 (bit più significativo) corrisponde al codice di tipo Window × 256 e il bit 7 (bit meno significativo) corrisponde al codice di tipo Window × 256 + 7.
La mappa di bit dei tipi DEVE contenere il bit corrispondente a ciascun tipo RR associato al nome del proprietario del NSEC RR. Se il nome del proprietario è associato a più tipi RR, tali tipi devono essere tutti rappresentati nella mappa di bit dei tipi.
La mappa di bit dei tipi DEVE essere disposta in ordine crescente del campo Window e NON DEVE contenere blocchi finestra sovrapposti o di lunghezza superiore a 32 ottetti.
Il validatore del NSEC RR utilizza la mappa di bit dei tipi per verificare:
- l'esistenza di un determinato tipo RR per il nome del proprietario del NSEC RR (prova dell'esistenza del tipo);
- l'assenza di altri nomi nell'intervallo di ordine canonico tra il nome del proprietario del NSEC RR e il nome di dominio successivo (prova dell'assenza del nome).
5.2. Campo next domain name del RDATA NSEC
Il campo NEXT DOMAIN NAME DEVE contenere il nome del proprietario immediatamente successivo al nome del proprietario del NSEC RR nell'ordine canonico (canonical order) della zona. Il campo NEXT DOMAIN NAME dell'ultimo NSEC RR della zona DEVE contenere il nome del proprietario del primo NSEC RR della zona (ovvero un ritorno all'inizio della zona).
Ciò serve a provare, quando un validatore richiede un nome inesistente, che tale nome non è nella zona: il validatore individua un NSEC RR il cui nome del proprietario è, nell'ordine canonico, prima del nome richiesto e il cui NEXT DOMAIN NAME è, nell'ordine canonico, dopo il nome richiesto.
5.3. Formato di presentazione NSEC
Il formato di presentazione (presentation format) del NSEC RR è il seguente:
- il nome di dominio successivo è rappresentato in forma testuale di nome di dominio canonico (ovvero senza compressione);
- la mappa di bit dei tipi è rappresentata da un elenco di tipi di resource record separati da spazi (ad esempio RRSIG NSEC SOA NS A). I tipi sconosciuti utilizzano la notazione RFC 3597.
Esempio:
example.com. 3600 IN NSEC www.example.com. A RRSIG NSEC
5.4. Considerazioni particolari per il NSEC RR
Il NSEC RR rivela l'esistenza dei nomi nella zona, il che può sollevare preoccupazioni sulla privacy. Il NSEC RR DEVE essere generato dal firmatario responsabile della zona e DEVE essere firmato utilizzando una chiave coerente con il DNSKEY della zona.
Il validatore DEVE, nel provare l'assenza di un nome o di un tipo, verificare che l'intervallo di ordine canonico indicato dal NSEC RR non contenga effettivamente il nome o il tipo la cui assenza è provata.
Navigazione tra sezioni:
- Precedente: 4. Resource record DS
- Successivo: 6. Forma canonica e ordinamento dei resource record