DNSSEC protege el DNS. En este artículo, se analiza cómo detectar los problemas de DNSSEC que afectan la resolución de DNS.
Prueba de DNSSEC con Dig
Dig es una herramienta de línea de comando para consultar a un servidor de nombres por registros DNS. Por ejemplo, dig puede solicitar un solucionador de DNS para la dirección IP de www.cloudflare.com (la opción +short elabora solo el resultado):
$ dig www.cloudflare.com +short198.41.215.162198.41.214.162
Usa dig para verificar los registros DNSSEC. En el ejemplo a continuación, la última línea de elaboración es el registro RRSIG. RRSIG es la firma DNSSEC adjunta al registro. Con RRSIG, una resolución DNS determina si una respuesta DNS es de confianza.
$ dig www.cloudflare.com +dnssec +short198.41.214.162198.41.215.162A 13 3 300 20180927180434 20180925160434 35273 cloudflare.com. DYYZ/bhHSAIlpvu/HEUsxlzkC9NsswbCQ7dcfcuiNBrbhYV7k3AI8t46 QMnOlfhwT6jqsfN7ePV6Fwpym3B0pg==
Dig también recupera la clave pública utilizada para verificar el registro DNS. Los registros DNS de un dominio están todos firmados con la misma clave pública. Por lo tanto, consulta por la clave pública del dominio raíz, no por la del subdominio:
$ dig DNSKEY cloudflare.com +short257 3 13 mdsswUyr3DPW132mOi8V9xESWE8jTo0dxCjjnopKl+GqJxpVXckHAeF+ KkxLbxILfDLUT0rAK9iUzy1L53eKGQ==256 3 13 koPbw9wmYZ7ggcjnQ6ayHyhHaDNMYELKTqT+qRGrZpWSccr/lBcrm10Z 1PuQHB3Azhii+sb0PYFkH1ruxLhe5g==
La respuesta DNS incluye dos registros:
- El registro DNSKEY 256 es la clave pública llamada clave de firma de zonas y se utiliza para verificar las firmas de registro DNS para A, MX, CNAME, SRV, etc.
- El registro DNSKEY 257 se llama clave de firma de claves y se utiliza para verificar las firmas de los registros DNSKEY, CDS y CDNSKEY.
Cuando no se usa la opción +short con dig, se autentica mediante DNSSEC una respuesta DNS si una marca ad aparece en el encabezado de respuesta:
$ dig www.cloudflare.com[...];; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65326
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 [...] ;; SECCIÓN DE PREGUNTAS: ;www.cloudflare.com. IN A [...] ;; SECCIÓN DE RESPUESTAS: www.cloudflare.com. 15 IN A 198.41.215.162 www.cloudflare.com. 15 IN A 198.41.214.162
Vista de la cadena de confianza de DNSSEC con Dig
La verificación completa de firmas de dominio (por ejemplo: cloudflare.com) implica verificar la clave de firma de claves en el dominio de primer nivel (por ejemplo: .com). Una verificación similar se realiza después al revisar la clave de firma de claves de .com en el nivel del servidor raíz. Las claves raíz de DNSSEC se distribuyen a los clientes de DNS para completar la cadena de confianza.
Cuando se habilita DNSSEC, se necesita un registro DS en el DNS del registrar. El registro DS contiene un hash de la clave pública de firma de claves y metadatos sobre la clave.
Usa dig para encontrar un registro DS:
$ dig +short DS cloudflare.com2371 13 2 32996839A6D808AFE3EB4A795A0E6A7A39A76FC52FF228B22B76F6D6 3826F2B9
Al usar la opción +trace , dig confirma si una respuesta se envía por el servidor de nombres para cloudflare.com o .com. En este ejemplo, el registro DS para cloudflare.com lo envía e.gtld-servers.net:
$ dig DS cloudflare.com +trace[...]cloudflare.com. 86400 IN DS 2371 13 2 32996839A6D808AFE3EB4A795A0E6A7A39A76FC52FF228B22B76F6D6 3826F2B9[...]com. 172800 IN NS e.gtld-servers.net.[...];; Received 1213 bytes from 2001:502:1ca1::30#53(e.gtld-servers.net) in 37 ms
Una alternativa más sencilla a la ejecución manual de todos los pasos anteriores es usar la herramienta en línea DNSViz. Obtén más detalles sobre la solución de problemas de validación de DNSSEC mediante el uso de DNSViz o un ejemplo de resultados DNSSEC de cloudflare.com a través de DNSViz.
Solución de problemas de validación de DNSSEC con Dig
Si los proveedores de DNS autoritativo se cambian sin actualizar o quitar registros DNSSEC antiguos en el registrar, se producen problemas:
$ dig A brokendnssec.net @1.0.0.1;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 10663
Confirma si una respuesta SERVFAIL se relaciona con DNSSEC al ejecutar digcon la opción +cd. La opción +cd proporciona resultados DNS sin ninguna validación de DNSSEC vigente.
$ dig A brokendnssec.net @1.0.0.1 +dnssec +cd +short104.20.49.61104.20.48.61
En el ejemplo anterior, DNSSEC está mal configurado si se recibe una respuesta DNS apropiada al usar la opción +cd, pero las consultas que usan DNSSEC envían una respuesta SERVFAIL. Este problema suele suceder cuando los servidores de nombres autoritativos se cambian pero los registros DS no están actualizados. Este problema también puede ocurrir si un atacante intenta falsificar la respuesta a una consulta.
Solución de problemas de validación de DNSSEC mediante el uso de DNSViz
- Visita http://dnsviz.net/
- Escribe un nombre de dominio en el campo de texto.
- Si DNSViz nunca ha analizado el sitio, haz clic en el botón Analizar.
- Si DNSViz ya ha analizado el sitio, haz clic en el botón Actualizar ahora.
Ejemplo sin DNSSEC
A continuación hay un ejemplo de un dominio que funciona sin DNSSEC como diagramó dnsviz.net:

Ejemplo con DNSSEC correcto
A continuación se incluye un ejemplo de un dominio con registros DNSSEC que funcionan entre los servidores de nombres TLD y los servidores de nombres autoritativos para cloudflare.com:
Ejemplo con un registro RRSIG perdido o incorrecto en el servidor de nombres autoritativo
A continuación, hay un ejemplo de cómo dnsviz.com mostrará la delegación incorrecta cuando el servidor de nombres autoritativo no proporcione ningún registro DNSKEY válido que coincida con el registro DS publicado por el servidor de nombres TLD:
Pasos siguientes
Si se descubre un problema con la implementación de DNSSEC, ponte en contacto con el registrar de dominio y confirma que el registro DS coincide con lo especificado por el proveedor de DNS autoritativo. Si Cloudflare es el proveedor de DNS autoritativo, sigue las instrucciones para la configuración de DNSSEC con Cloudflare.