ICM / conectividad / DNS, DNSSEC y E-DNSSEC

DNS, DNSSEC y E-DNSSEC

14 octubre 2020 | Pablo Gómez

El sistema de nombres de dominio es un componente fundamental para Internet. Debido a su importancia, proteger el DNS es una necesidad para las redes actuales y futuras. DNSSEC, su versión extendida, se ha desarrollado para proporcionar servicios de seguridad. Pero desafortunadamente, esta no ofrece privacidad de consultas. Y así se pueden ver todas las consultas enviadas al DNS Server en texto claro. El objetivo de este artículo es evaluar la seguridad de los protocolos DNS y DNSSEC, y podremos ver que DNSSEC no garantiza la confidencialidad de los datos que transitan por la red. Por eso, hay que avanzar hacia un nuevo método denominado E-DNSSEC, que tiene como objetivo agregar, además de las características de seguridad de DNSSEC, la confidencialidad de las consultas, cifrándolas entre distintos servidores DNSSEC.

¿Qué es el DNS?

Primero, explicaremos el concepto básico. DNS es una base de datos distribuida accesible globalmente mediante una arquitectura de solicitud/respuesta. Este protocolo resuelve los nombres de dominio legibles por humanos a direcciones IP. Por lo tanto, es esencial que la infraestructura DNS sea robusta y segura, y que, además, garantice la autenticación, la integridad y la confidencialidad.

El TSIG (Transaction Signatures) definido en el RFC2845 es una solución para garantizar la integridad de los datos entre DNS’s. Así, permite que dos máquinas que intercambian mensajes verifiquen la identidad del origen que hace la petición. Desafortunadamente, este mecanismo no autentica los datos de origen, y solo protege los datos de transmisión entre dos partes que comparten la misma clave secreta.

DNS

Los datos fuente originales pueden provenir de un DNS comprometido de una zona determinada o pueden ser modificados durante el tránsito de un DNS de una zona a algún «reenvíador» que puede estar comprometido. Estos mecanismos están reservados únicamente para proteger las transferencias de zona y los mensajes de actualización dinámica. Por lo tanto, TSIG se usa entre servidores DNS maestro y esclavo para asegurar transferencias de zona. Actualmente, casi todas las transferencias entre servidores autorizados están protegidas por TSIG.

¿Qué es el DNSSEC?

DNSSEC (DNS Security Extension), resuelve algunos problemas de seguridad relacionados con el protocolo DNS y asegura los datos enviados por tales servidores. Además, garantiza dos objetivos en seguridad: la autenticación y la integridad de la fuente de datos.

Estas extensiones usan criptografía para firmar registros DNS y colocar la firma en DNS. Por lo tanto, un cliente DNS sospechoso puede recuperar la firma y, utilizando la clave del servidor, verificar si los datos son correctos. DNSSEC permite también la delegación de firmas y el registro de un TLD (Top-Level Domain), así que puede anunciar que este subdominio está firmado. Al utilizar DNSSEC, también se puede construir una cadena de confianza desde el servidor raíz.

Cuando las comunicaciones requieren canales privados, se puede usar SSH o IPsec para interactuar con DNS. Pero estas tecnologías no son las ideales para este objetivo, y además sufren de algún problema de seguridad.

E-DNSSEC, el futuro

El futuro (que ya debería ser presente) es el EDNSSEC, que utiliza criptografía para cifrar el tránsito de consultas DNSSEC a través de Internet (o de nuestra red). Este método tiene como objetivo agregar un nuevo servicio de seguridad para el protocolo DNSSEC y, en consecuencia, mejorar la seguridad en el servicio DNS.

DNSSEC y cuestiones de seguridad

Como DNSSEC es la versión extendida de DNS, tiene la misma estructura de árbol, pero añade algunas mejoras. Incluye así nuevos registros, servicios y técnicas para hacer seguro el protocolo DNS. DNSSEC asimismo utiliza criptografía para proteger los archivos de zona, por lo tanto, cada zona tiene al menos un par de claves. La clave pública de la zona secundaria (por ejemplo «tudominio.ew«), está firmada por la clave privada de la zona principal (en este ejemplo «.ew«), con la excepción de la raíz que está firmada por sí misma. Finalmente, este proceso forma una cadena de confianza (Chain of Trust).

E-DNSSEC

DNSSEC utiliza claves criptográficas ZSK (Zone SigningKey) y KSK (Key Signing Key), y agrega nuevos registros a los mensajes DNS del servicio DNS original (RR KEY, SIG, NSEC y DS). No obstante, DNSSEC no proporciona confidencialidad, ni control de acceso ni protege contra ataques de denegación de servicio.

Las extensiones de seguridad de DNS utilizan criptografía de clave pública para firmar y autenticar registros de recursos de DNS. Un atacante que puede obtener el bit CD en un mensaje de consulta DNS o el bit AD en un mensaje de respuesta DNS. Por tanto, puede usar estos bits para disminuir la protección de un «resolver» DNSSEC en modo recursivo. Por esta razón, el uso de estos bits de control por parte de un DNSSEC para resolver en modo recursivo requiere un canal seguro.

Ventajas E-DNSSEC         

El nuevo protocolo E-DNSSEC mejora el nivel de seguridad de DNSSEC. Como el objetivo es cifrar la consulta DNSSEC entre el cliente DNSSEC y el servidor DNSSEC, el nuevo protocolo se define como DNSESC cifrado, E-DNSSEC (DNSSEC encrypted).

La idea del protocolo E-DNSSEC es analizar la consulta del servidor recursivo y cifrarla antes de enviarla al servidor autorizado. Y en la recepción, el servidor autoritativo lo descifra antes de iniciar la resolución. Y finalmente enviar la respuesta asegurada mediante protocolo DNSSEC.

Por lo tanto, su fin es combinar las propiedades de DNSSEC con el protocolo E-DNSSEC para asegurar el mensaje DNS, desde el principio de la resolución hasta el final. Y así asegurar la autenticidad, la confidencialidad y la integridad de los datos que transitan por la red.