Verificador DNSSEC
Escribe un dominio y seguimos su cadena de firmas desde la zona raíz hacia abajo. Sabrás si el dominio no está firmado, si está firmado y es válido, si está a medio configurar o roto, y qué registro hay que arreglar.
El hueco que cierra DNSSEC
Cuando tu ordenador pregunta “¿cuál es la dirección de example.com?”, la respuesta vuelve como un paquete pequeño sin protección. El DNS original no le da al receptor ninguna forma de comprobar quién la escribió. Alguien situado entre tú y el servidor de nombres, o alguien que cuela una respuesta falsa en la memoria de un resolvedor, puede enviar visitantes y correo a la máquina que elija.
DNSSEC añade firmas. El dueño de una zona firma cada conjunto de registros con una clave privada y publica la clave pública correspondiente en la zona como un registro DNSKEY. Un resolvedor que recibe una respuesta recibe también su firma (RRSIG) y puede verificar que los registros son exactamente los que publicó el dueño. DNSSEC no cifra nada y no oculta qué nombres consultas. Lo único que hace es demostrar que una respuesta es auténtica.
Una cadena de huellas digitales
Una clave pública que está en el mismo lugar que los datos no prueba gran cosa, porque un falsificador podría reemplazar ambos. Por eso cada zona le pide a la zona superior que responda por ella. La zona padre publica un registro DS, una huella corta (digest) de la clave de la hija, y firma ese registro con su propia clave. La clave del padre la avala su propio padre de la misma manera, hasta llegar a la zona raíz. La clave de la raíz es lo único que un resolvedor tiene que conocer de antemano, y viene incluida en el software del resolvedor.
Para example.com el camino es este: clave de la raíz, DS de com en la raíz, claves de com, DS de example.com en com, claves de example.com, registros firmados. Si falta un eslabón o es incorrecto, la prueba falla.
El registro DS es la parte que vive fuera de tu proveedor de DNS. Se entrega al registry a través de tu registrador, y la mayoría de los fallos vienen de esa separación.
Qué hace esta comprobación
Para la raíz, la zona de nivel superior y cada zona hasta tu dominio, nuestro servidor lee los registros DS en la zona padre y los registros DNSKEY de la zona. Los lee a través de resolvedores públicos con la validación desactivada (la bandera “checking disabled”), así que puede inspeccionar incluso una zona rota. De cada clave calcula el key tag, y de cada DS recalcula el digest a partir de la clave con la misma función hash (RFC 4034) y compara los dos byte por byte.
Después consulta a tres resolvedores públicos que validan (Cloudflare, Google y Quad9) el registro SOA del dominio, esta vez con la validación activada. Un resolvedor que validó la respuesta activa la bandera AD (“authenticated data”). Uno que encontró un fallo responde SERVFAIL. Nuestro servidor compara las huellas por su cuenta, pero no verifica las firmas. Ese veredicto les corresponde a los resolvedores.
| Veredicto | Qué se encontró | Efecto |
|---|---|---|
| No firmado | Sin DS, sin DNSKEY | Funciona en todas partes, pero las respuestas no se pueden verificar. La mayoría de los dominios. |
| Firmado y válido | El DS coincide con una clave, los resolvedores activan AD | Los resolvedores que validan rechazan las respuestas falsas. |
| A medio configurar | DNSKEY presente, sin DS | Funciona, pero nadie comprueba las firmas. |
| Roto | DS sin una clave que coincida, o SERVFAIL solo cuando la validación está activada | Inalcanzable para todos los que están detrás de un resolvedor que valida. |
La comprobación también señala algoritmos retirados o débiles (RSA/MD5, DSA, RSA/SHA-1, digests SHA-1 en un DS), un DS que quedó de una clave antigua, firmas a menos de tres días de su fecha de fin, y si la zona usa NSEC o NSEC3 para demostrar que un nombre no existe.
Arreglar una cadena rota
Una cadena rota es peor que no tener DNSSEC, porque los resolvedores que validan se niegan a responder. Suele pasar así: el dominio se mudó a un proveedor de DNS nuevo, el registro DS viejo se quedó en el registrador, y ahora apunta a una clave que ya no existe.
- Para volver a estar en línea rápido, borra el registro
DSen el registrador. El dominio queda sin firmar y funciona para todos cuando caduquen las cachés, normalmente en un día. - Para conservar DNSSEC, abre la página de DNSSEC de tu proveedor de DNS actual, copia el registro
DSque muestra (key tag, algoritmo, tipo de digest, digest) y escríbelo en el registrador en lugar del viejo. - Antes de la próxima mudanza, quita primero el registro
DS, espera un día, cambia los servidores de nombres, y luego firma y publica el nuevoDS.
Si el veredicto es “a medio configurar”, termina el trabajo publicando el registro DS o desactiva la firma en el proveedor de DNS.
Los resolvedores guardan las respuestas, fallos incluidos, durante todo el TTL del registro. Justo después de una corrección, esta página puede mostrar el estado anterior durante un rato, y distintos resolvedores pueden no coincidir.
Preguntas frecuentes
¿Necesito DNSSEC en mi dominio?
Es opcional, y la mayoría de los dominios funcionan sin él. Protege a los visitantes y al correo contra respuestas DNS falsas, y algunos usos lo exigen, como DANE para servidores de correo. Si tu proveedor de DNS y tu registrador lo manejan con un solo interruptor, activarlo cuesta poco. Si cambias seguido de proveedor de DNS, planifica cada mudanza con cuidado.
¿Cuál es la diferencia entre un registro DS y un registro DNSKEY?
Un DNSKEY es una clave pública, publicada en tu propia zona por tu proveedor de DNS. Un DS es una huella de esa clave, publicada en la zona padre (.com, .org) a través de tu registrador. El DS es lo que une tu zona a la cadena.
¿Por qué mi sitio me funciona a mí pero a otras personas no?
Si DNSSEC está roto, lo que pasa depende del resolvedor de cada visitante. Los resolvedores que validan (Google, Cloudflare, Quad9, muchos proveedores grandes) devuelven un error. Los que no validan siguen respondiendo. Ejecuta la comprobación. Un veredicto “roto” con “validación desactivada: responde” es justo esta situación.
¿Qué son KSK y ZSK?
Dos funciones de las claves de una zona. La clave de firma de claves (KSK, bandera 257) solo firma el conjunto de claves, y es la que señala el registro DS. La clave de firma de zona (ZSK, bandera 256) firma todos los demás registros y se puede reemplazar sin tocar el registrador. Algunos proveedores usan una sola clave para las dos funciones.
¿Qué algoritmo DNSSEC debe usar una zona?
El algoritmo 13 (ECDSA P-256 con SHA-256) es la opción habitual hoy, con firmas pequeñas y amplio soporte. El algoritmo 8 (RSA con SHA-256) también sirve. Los algoritmos 5 y 7 dependen de SHA-1 y conviene reemplazarlos. Los algoritmos 1, 3, 6 y 12 están retirados.
¿Cuánto tarda en verse un cambio de DNSSEC?
Un cambio de DS llega al registry en minutos como máximo en la mayoría de los registradores, pero los resolvedores conservan el DS anterior durante su TTL, a menudo 24 horas para .com. Dale un día completo antes de juzgar el resultado.