3. Services Provided by DNS Security (Servizi forniti dalla sicurezza DNS)
Le estensioni di sicurezza del Domain Name System (DNS) forniscono servizi di autenticazione dell'origine e di garanzia dell'integrità per i dati DNS, inclusi meccanismi di prova autenticata della non-esistenza dei dati DNS. Tali meccanismi sono descritti di seguito.
Questi meccanismi richiedono modifiche al protocollo DNS. DNSSEC aggiunge quattro nuovi tipi di record di risorsa: Resource Record Signature (RRSIG), DNS Public Key (DNSKEY), Delegation Signer (DS) e Next Secure (NSEC). Aggiunge inoltre due nuovi bit nell'header dei messaggi: Checking Disabled (CD) e Authenticated Data (AD). Per supportare le maggiori dimensioni dei messaggi DNS derivanti dall'aggiunta dei RR DNSSEC, DNSSEC richiede inoltre il supporto di EDNS0 ([RFC2671]). Infine, DNSSEC necessita del supporto del bit di header EDNS DNSSEC OK (DO) ([RFC3225]) affinché un resolver consapevole della sicurezza possa indicare nelle proprie richieste di voler ricevere i RR DNSSEC nei messaggi di risposta.
Questi servizi proteggono dalla maggior parte delle minacce al Domain Name System descritte in [RFC3833]. Si consulti la sezione 12 per una discussione dei limiti di queste estensioni.
3.1. Data Origin Authentication and Data Integrity (Autenticazione dell'origine dati e integrità dei dati)
DNSSEC fornisce l'autenticazione associando ai RRset DNS firme digitali generate in modo crittografico. Tali firme digitali sono memorizzate in un nuovo record di risorsa, il record RRSIG. Vi sarà generalmente una sola chiave privata che firma i dati di una zona, ma sono possibili più chiavi. Ad esempio, possono esistere chiavi per ciascuno di diversi algoritmi di firma digitale. Se un resolver consapevole della sicurezza apprende in modo affidabile la chiave pubblica di una zona, può autenticare i dati firmati di tale zona. Un concetto importante di DNSSEC è che la chiave che firma i dati di una zona è associata alla zona stessa e non ai name server autorevoli della zona. (Le chiavi pubbliche per i meccanismi di autenticazione delle transazioni DNS possono anch'esse comparire nelle zone, come descritto in [RFC2931], ma DNSSEC riguarda la sicurezza degli oggetti dei dati DNS, non la sicurezza del canale delle transazioni DNS. Le chiavi associate alla sicurezza delle transazioni possono essere memorizzate in altri tipi di RR. Si vedano [RFC3755] per maggiori dettagli.)
Un resolver consapevole della sicurezza può apprendere la chiave pubblica di una zona o tramite una chiave di fiducia configurata nel resolver, o tramite una normale risoluzione DNS. Per consentire quest'ultimo caso, le chiavi pubbliche sono memorizzate in un nuovo tipo di record di risorsa, il RR DNSKEY. Si noti che le chiavi private utilizzate per firmare i dati di zona devono essere conservate in sicurezza e, per quanto possibile, archiviate offline. Per scoprire una chiave pubblica in modo affidabile tramite la risoluzione DNS, la chiave bersaglio stessa deve essere firmata da una chiave di autenticazione configurata o da un'altra chiave precedentemente autenticata. I resolver consapevoli della sicurezza autenticano le informazioni di zona formando una catena di autenticazione da una chiave pubblica appena appresa a una chiave pubblica di autenticazione già nota, che a sua volta è stata configurata nel resolver o deve essere stata appresa e verificata in precedenza. Pertanto, il resolver deve essere configurato con almeno un punto di ancoraggio di fiducia.
Se l'ancoraggio di fiducia configurato è una chiave di firma della zona, autenticherà la zona associata; se la chiave configurata è una chiave di firma della chiave, autenticherà una chiave di firma della zona. Se l'ancoraggio di fiducia configurato è l'hash di una chiave anziché la chiave stessa, il resolver potrebbe dover ottenere la chiave tramite una richiesta DNS. Per aiutare i resolver consapevoli della sicurezza a stabilire questa catena di autenticazione, i name server consapevoli della sicurezza tentano di inviare nella risposta DNS le firme necessarie per autenticare le chiavi pubbliche di una zona, insieme alla chiave pubblica stessa, purché vi sia spazio nel messaggio.
Il tipo di RR Delegation Signer (DS) semplifica alcune delle attività amministrative legate alla firma di delegazioni oltre i confini organizzativi. Il RRset DS risiede in un punto di delega in una zona padre e indica la o le chiavi pubbliche corrispondenti alle chiavi private utilizzate per auto-firmare il RRset DNSKEY al vertice della zona figlia delegata. L'amministratore della zona figlia, a sua volta, utilizza le chiavi private corrispondenti a una o più delle chiavi pubbliche di tale RRset DNSKEY per firmare i dati della zona figlia. La tipica catena di autenticazione è pertanto DNSKEY->[DS->DNSKEY]->RRset, dove "" indica zero o più sottocatene DS->DNSKEY. DNSSEC consente catene di autenticazione più complesse, come livelli aggiuntivi di RR DNSKEY che firmano altri RR DNSKEY all'interno di una zona.
Un resolver consapevole della sicurezza costruisce normalmente questa catena di autenticazione dalla radice della gerarchia DNS alle zone foglia, sulla base della conoscenza configurata della chiave pubblica della radice. Tuttavia, la politica locale può anche consentire a un resolver consapevole della sicurezza di utilizzare una o più chiavi pubbliche configurate (o hash di chiavi pubbliche) diverse dalla chiave pubblica della radice, può non fornire la conoscenza configurata della chiave pubblica della radice, o può impedire al resolver di utilizzare particolari chiavi pubbliche per ragioni arbitrarie, anche se tali chiavi pubbliche sono correttamente firmate con firme verificabili. DNSSEC fornisce meccanismi che permettono a un resolver consapevole della sicurezza di determinare se la firma di un RRset è "valida" nel senso di DNSSEC. In ultima analisi, tuttavia, sia l'autenticazione delle chiavi sia dei dati DNS ricade sotto la politica locale, che può estendere o addirittura sostituire le estensioni di protocollo definite in questo set di documenti. Si veda la sezione 5 per ulteriori discussioni.
3.2. Authenticating Name and Type Non-Existence (Autenticazione della non-esistenza di nomi e tipi)
Il meccanismo di sicurezza descritto nella sezione 3.1 fornisce solo un modo per firmare i RRset esistenti in una zona. Il problema di fornire risposte negative con lo stesso livello di autenticazione e integrità richiede l'uso di un altro nuovo tipo di record di risorsa, il record NSEC. Il record NSEC permette a un resolver consapevole della sicurezza di autenticare una risposta negativa per la non-esistenza di un nome o di un tipo con gli stessi meccanismi utilizzati per autenticare le altre risposte DNS. L'uso dei record NSEC richiede una rappresentazione e un ordinamento canonico dei nomi di dominio nelle zone. Le catene di record NSEC descrivono esplicitamente le lacune, o "spazi vuoti", tra i nomi di dominio di una zona ed enumerano i tipi di RRset presenti ai nomi esistenti. Ogni record NSEC è firmato e autenticato utilizzando i meccanismi descritti nella sezione 3.1.