Verifica DNSSEC

Inserisci un dominio e seguiamo la sua catena di firme a partire dalla zona radice. Scoprirai se il dominio non è firmato, è firmato e valido, è configurato a metà o è rotto, e quale record correggere.

Inserisci il dominio stesso, ad esempio example.com. Un www. iniziale viene ignorato.

Oppure prova cloudflare.com, ietf.org, dnssec-failed.org

La falla che DNSSEC chiude

Quando il tuo computer chiede «qual è l’indirizzo di example.com?», la risposta torna in un piccolo pacchetto senza protezione. Il DNS originale non dà a chi riceve alcun modo di verificare chi l’ha scritta. Qualcuno che si trova tra te e il name server, o che infila una risposta falsa nella memoria di un resolver, può mandare visitatori ed e-mail verso una macchina a sua scelta.

DNSSEC aggiunge le firme. Il titolare di una zona firma ogni insieme di record con una chiave privata e pubblica la chiave pubblica corrispondente nella zona come record DNSKEY. Un resolver che riceve una risposta riceve anche la sua firma (RRSIG) e può verificare che i record siano esattamente quelli pubblicati dal titolare. DNSSEC non cifra nulla e non nasconde quali nomi cerchi. Si limita a dimostrare che una risposta è autentica.

Una catena di impronte

Una chiave pubblica che sta nello stesso posto dei dati non dimostra molto, perché un falsario potrebbe sostituire entrambi. Così ogni zona chiede alla zona superiore di garantire per lei. Il genitore pubblica un record DS, una breve impronta (digest) della chiave del figlio, e firma quel record con la propria chiave. La chiave del genitore è garantita allo stesso modo dal suo genitore, e così via fino alla zona radice. La chiave radice è l’unica cosa che un resolver deve conoscere in anticipo ed è inclusa nel software del resolver.

Per example.com il percorso è questo: chiave radice, DS di com nella radice, chiavi di com, DS di example.com in com, chiavi di example.com, record firmati. Basta un anello mancante o sbagliato e la prova fallisce.

Il record DS è la parte che vive fuori dal tuo provider DNS. Viene consegnato al registro tramite il tuo registrar e la maggior parte dei guasti nasce da questa separazione.

Cosa fa questa verifica

Per la radice, la zona di primo livello e ogni zona fino al tuo dominio, il nostro server legge i record DS nel genitore e i record DNSKEY della zona. Li legge tramite resolver pubblici con la validazione disattivata (il flag «checking disabled»), così può ispezionare anche una zona rotta. Per ogni chiave calcola il key tag e per ogni DS ricalcola il digest dalla chiave con la stessa funzione di hash (RFC 4034), poi confronta i due byte per byte.

Poi chiede a tre resolver pubblici che validano (Cloudflare, Google e Quad9) il record SOA del dominio, questa volta con la validazione attiva. Un resolver che ha validato la risposta imposta il flag AD («authenticated data»). Uno che ha trovato un errore risponde SERVFAIL. Il nostro server confronta da sé le impronte, ma non verifica le firme. Quel verdetto spetta ai resolver.

VerdettoCosa è stato trovatoEffetto
Non firmatoNessun DS, nessun DNSKEYFunziona ovunque, le risposte non sono verificabili. La maggior parte dei domini.
Firmato e validoIl DS corrisponde a una chiave, i resolver impostano ADI resolver che validano rifiutano le risposte false.
Configurato a metàDNSKEY presente, nessun DSFunziona, ma nessuno controlla le firme.
RottoDS senza chiave corrispondente, oppure SERVFAIL solo con la validazione attivaIrraggiungibile per chiunque usi un resolver che valida.

La verifica segnala anche gli algoritmi ritirati o deboli (RSA/MD5, DSA, RSA/SHA-1, digest SHA-1 in un DS), un DS rimasto da una vecchia chiave, le firme a meno di tre giorni dalla scadenza e se la zona usa NSEC o NSEC3 per dimostrare che un nome non esiste.

Riparare una catena rotta

Una catena rotta è peggio di nessun DNSSEC, perché i resolver che validano si rifiutano di rispondere. Di solito va così: il dominio è passato a un nuovo provider DNS, il vecchio record DS è rimasto presso il registrar e ora punta a una chiave che non esiste più.

  1. Per tornare online in fretta, elimina il record DS presso il registrar. Il dominio diventa non firmato e funziona per tutti appena scadono le cache, di solito entro un giorno.
  2. Per mantenere DNSSEC, apri la pagina DNSSEC del tuo provider DNS attuale, copia il record DS che mostra (key tag, algoritmo, tipo di digest, digest) e inseriscilo presso il registrar al posto di quello vecchio.
  3. Prima del prossimo trasloco, rimuovi prima il record DS, aspetta un giorno, cambia i name server, poi firma e pubblica il nuovo DS.

Nel caso «configurato a metà», o completi il lavoro pubblicando il record DS o disattivi la firma presso il provider DNS.

I resolver conservano le risposte, errori compresi, per tutto il tempo consentito dal TTL del record. Subito dopo una correzione questa pagina può mostrare ancora il vecchio stato per un po’ e resolver diversi possono non essere d’accordo.

Domande frequenti

Mi serve DNSSEC sul mio dominio?

È facoltativo e la maggior parte dei domini funziona senza. Protegge visitatori ed e-mail dalle risposte DNS false e alcuni usi lo richiedono, come DANE per i server di posta. Se il tuo provider DNS e il tuo registrar lo gestiscono con un solo interruttore, attivarlo costa poco. Se cambi spesso provider DNS, pianifica ogni trasloco con cura.

Qual è la differenza tra un record DS e un record DNSKEY?

Un DNSKEY è una chiave pubblica, pubblicata nella tua zona dal tuo provider DNS. Un DS è un’impronta di quella chiave, pubblicata nella zona genitore (.com, .org) tramite il tuo registrar. È il DS che lega la tua zona alla catena.

Perché il mio sito funziona per me ma non per altri?

Se DNSSEC è rotto, quello che succede dipende dal resolver di ogni visitatore. I resolver che validano (Google, Cloudflare, Quad9, molti grandi provider) restituiscono un errore. Quelli che non validano rispondono comunque. Lancia la verifica. Un verdetto «rotto» con «validazione disattivata: risponde» è esattamente questa situazione.

Cosa sono KSK e ZSK?

Due ruoli per le chiavi di una zona. La chiave di firma delle chiavi (KSK, flag 257) firma solo l’insieme delle chiavi ed è quella a cui punta il record DS. La chiave di firma della zona (ZSK, flag 256) firma tutti gli altri record e si può sostituire senza toccare il registrar. Alcuni provider usano una sola chiave per entrambi i ruoli.

Quale algoritmo DNSSEC dovrebbe usare una zona?

L’algoritmo 13 (ECDSA P-256 con SHA-256) è la scelta comune oggi, con firme piccole e ampio supporto. Anche l’algoritmo 8 (RSA con SHA-256) va bene. Gli algoritmi 5 e 7 si basano su SHA-1 e vanno sostituiti. Gli algoritmi 1, 3, 6 e 12 sono ritirati.

Quanto ci mette una modifica DNSSEC a diventare visibile?

Presso la maggior parte dei registrar una modifica del DS arriva al registro in pochi minuti, ma i resolver conservano il DS precedente per il suo TTL, spesso 24 ore per .com. Lascia passare un giorno intero prima di giudicare il risultato.