Entendiendo DNSSEC: Seguridad y Protección del DNS

David Vargas
Por
David Vargas
David Vargas es Ingeniero de Redes Senior y consultor IT con más de 12 años de experiencia práctica en el diseño, implementación y administración de infraestructuras...

¿DNSSEC qué es? Se trata de una herramienta para verificar la autenticidad de la respuesta de un servidor DNS. Su propósito es proteger contra la suplantación de direcciones IP. Gracias a esto, los usuarios están protegidos contra el phishing, y el sitio web contra ciberataques de diversos tipos y el “envenenamiento” del tráfico.

DNSSEC Qué es y Principio de funcionamiento

Si ya sabes qué es DNS, para qué sirve y cómo funciona, puedes omitir esta sección y pasar a la siguiente.

DNS es un sistema que asocia dominios con direcciones IP. El usuario ingresa un dominio en el navegador, por ejemplo, redes.help. DNS compara este dominio con su lista y redirige al usuario al servidor correcto mediante la dirección IP.

La transmisión regular de datos desde el servidor principal a los usuarios lleva mucho tiempo. Por eso, se ideó el almacenamiento en caché de las direcciones IP solicitadas anteriormente y su entrega en la siguiente solicitud. Si has conectado o cambiado el dominio de un sitio web, sabes que esto lleva un tiempo: los datos del caché deben actualizarse.

Diagrama que ilustra el proceso de resolución DNSSEC, mostrando cómo una consulta DNS desde un ordenador se verifica a través de diferentes servidores DNS hasta llegar al servidor web legítimo, asegurando la autenticidad de la respuesta.
Descubre paso a paso cómo funciona la resolución DNSSEC y protege tu navegación de ataques de suplantación de identidad.

Un momento en la historia

Hemos entendido lo que proporciona el programa de servidor DNS y cómo lo hace. El problema es que durante mucho tiempo el sistema funcionó solo con base en la confianza. Todos los usuarios habían llegado a un acuerdo tácito de que no engañarían ni modificarían las entradas en el caché.

Pero aparecieron usuarios deshonestos que comenzaron a interceptar los datos entre el cliente y el servidor e introducir modificaciones. Por ejemplo, redirigir a las personas a sitios web distintos a los que intentaban acceder.

Para excluir a los atacantes de esta cadena de solicitudes y respuestas honestas, se inventó DNSSEC. No confía en los datos recibidos, sino que siempre los verifica. Si se detecta una suplantación, la solicitud no se ejecuta.

Puede surgir una pregunta lógica: si DNSSEC es una herramienta tan útil, ¿por qué no se usa universalmente? Se trata de la velocidad. Verificar la firma en el servidor autorizado requiere tiempo, que se suma al tiempo de carga del sitio web.

DNSSEC (Extensiones de Seguridad del Sistema de Nombres de Dominio) es una tecnología que mejora la seguridad del sistema de nombres de dominio (DNS). 

Mecanismo de DNSSEC

DNSSEC se basa en el mismo mecanismo que la firma digital. Hay dos partes:

  • Secreta: solo el propietario la conoce, se almacena en un lugar seguro y se usa para crear la firma.
  • Pública: se usa para verificar las firmas creadas con la clave secreta. Incluso conociendo la parte pública, es difícil reconocer la parte secreta, aunque están interrelacionadas.

La extensión de seguridad DNS admite dos tipos de claves: ZSK y KSK. ZSK es la clave para firmar la zona. KSK es la clave para firmar el conjunto de trabajo de claves. ZSK firma todas las entradas de la zona, excepto las entradas NS de las zonas secundarias. La clave KSK firma el conjunto de entradas DNSKEY, y se toma un hash de su parte pública, que se transmite a la zona principal.

Aunque es difícil reconocer la clave privada a partir de la clave pública, para mantener un alto nivel de seguridad, se recomienda actualizar periódicamente las partes de DNSSEC. Se recomienda cambiar ZSK cada dos o tres meses, y KSK al menos una vez cada seis meses. No es necesario hacerlo manualmente: existen mecanismos de actualización automática.

¿Para qué sirve DNSSEC?

DNSSEC sirve para proteger a los usuarios de internet de ataques que pueden interrumpir el funcionamiento del DNS y afectar la disponibilidad y seguridad de los sitios y servicios. Algunos de estos ataques son:

  • Envenenamiento de caché DNS: Es un ataque en el que un atacante sustituye los datos del DNS en la caché del servidor DNS o del cliente DNS, introduciendo direcciones IP falsas para los nombres de dominio. Esto puede provocar que los usuarios sean redirigidos a sitios falsos que pueden robar sus datos personales, propagar virus o realizar otras acciones fraudulentas.
  • Secuestro de DNS: Es un ataque en el que un atacante intercepta las solicitudes DNS de los usuarios y responde con sus propios datos DNS, sustituyendo las direcciones IP de los nombres de dominio. Esto también puede provocar que los usuarios sean redirigidos a sitios falsos con los mismos objetivos que en el caso del envenenamiento de caché DNS.
  • Suplantación de DNS: Es un ataque en el que un atacante falsifica las respuestas DNS, utilizando identificadores de solicitud elegidos o interceptados, y los envía a los clientes DNS, antes de que estos reciban las respuestas reales de los servidores DNS. Esto también puede provocar que los usuarios sean redirigidos a sitios falsos, así como la interrupción del funcionamiento de otros servicios que dependen del DNS.

DNSSEC previene estos ataques, ya que los clientes DNS pueden verificar la autenticidad e integridad de las respuestas DNS, utilizando firmas criptográficas y claves públicas. Si la respuesta DNS no coincide con la firma o la clave, el cliente DNS la rechaza y no la utiliza para resolver el nombre de dominio. De este modo, DNSSEC garantiza la fiabilidad y seguridad de los datos DNS, mejorando la seguridad de los usuarios de internet.

Ejemplo de la utilidad de DNSSEC

Por ejemplo, existe un sitio web de un banco: bank.com. Cuando un usuario ingresa este dominio en la barra de direcciones del navegador, el sistema DNS lo redirige a la dirección IP 172.168.0.15. Esta es la dirección IP del servicio de banca en línea. Para la autorización y autenticación, el usuario ingresa su nombre de usuario y contraseña.

Diagrama que compara el funcionamiento del DNS con y sin DNSSEC, mostrando DNSSEC qué es y cómo previene ataques de suplantación de identidad al verificar la autenticidad de las respuestas del servidor DNS.
Compara la seguridad del DNS con y sin DNSSEC.

Si el dominio no está protegido con DNSSEC, los atacantes pueden reemplazar la dirección IP en el caché por la suya propia, por ejemplo, 183.168.0.66. En esta dirección se alojará un servicio falso de banca en línea que se ve exactamente igual que el real.

El usuario ingresa su nombre de usuario y contraseña en el portal falso. Estos datos caen en manos de los atacantes. Con estos datos, pueden iniciar sesión en el sitio web real y acceder a las cuentas de la víctima.

Para detectar la suplantación, el usuario puede, por ejemplo, verificar las entradas A del dominio. Pero esto probablemente no suceda con frecuencia. Para la verificación, al menos se necesita saber qué es el hosting DNS y qué datos había inicialmente. Y a quién se le ocurriría verificar la dirección IP si la página falsa se ve exactamente igual que la real.

Y aquí volvemos a hablar de Secure DNS: es una herramienta realmente útil que refuerza la seguridad del sitio web mediante una verificación adicional.

¿Cómo activar DNSSEC?

Para activar DNSSEC, hay que realizar dos pasos: firmar la zona y configurar el servidor DNS.

Firmar la zona es un proceso en el que se generan claves para la zona y se crean firmas para las entradas DNS. Esto se puede hacer con un software especial, como BIND, NSD, Knot DNS, etc. Después, hay que cargar la entrada DNSKEY de la zona en el servidor DNS del registrador, que admite DNSSEC. El registrador, a su vez, transferirá la entrada DNSKEY de la zona al servidor DNS de la zona principal, que la firmará con su clave. De este modo, la zona se incluirá en la cadena de confianza de DNSSEC.

Configurar el servidor DNS es un proceso en el que el servidor DNS se configura para admitir DNSSEC. Esto significa que el servidor DNS debe ser capaz de generar y verificar firmas, así como de procesar las solicitudes y respuestas DNS con DNSSEC. Para ello, también se puede utilizar un software especial, como BIND, NSD, Knot DNS, etc. Además, el servidor DNS debe tener la clave pública actual de la zona raíz (KSK), que se utiliza para verificar las entradas DNSKEY de los servidores raíz. Esta clave se actualiza periódicamente y se distribuye a través de canales especiales, como RFC 5011.

Una vez completados estos pasos, la zona y el servidor DNS estarán listos para funcionar con DNSSEC.

¿Cómo comprobar DNSSEC?

Para comprobar que DNSSEC funciona correctamente, se pueden utilizar varios servicios online, como DNSViz, DNSSEC Analyzer, Verisign DNSSEC Debugger, etc. Estos servicios permiten visualizar y analizar los datos DNS y las cadenas de confianza para cualquier nombre de dominio. También muestran qué solicitudes y respuestas DNS se realizaron, qué firmas y claves se verificaron y qué errores o advertencias se detectaron.

Captura de pantalla de una herramienta online que muestra el estado de DNSSEC para un dominio determinado. Se muestra una cadena de autenticación con varias claves DNSKEY y DS, indicando si son seguras o inseguras.
Utiliza herramientas online como esta para comprobar rápidamente la implementación y estado de DNSSEC en tu dominio. Identifica posibles problemas de seguridad y corrige errores.
  • Por ejemplo, veamos cómo comprobar DNSSEC para el dominio www.redes.help con el servicio DNSViz. Para ello, hay que introducir el nombre de dominio en el campo de búsqueda del sitio web https://dnsviz.net/ y pulsar el botón “Analyze”.
  • A continuación, el servicio realizará varias solicitudes y respuestas DNS relacionadas con el dominio y mostrará el resultado en forma de gráfico.
  • En el gráfico se puede ver cómo el cliente DNS construye la cadena de confianza desde la zona raíz hasta el dominio www.redes.help, verificando las firmas y las claves en cada paso.

También se pueden ver las entradas DNS obtenidas para el dominio, como A, AAAA, MX, CNAME, etc. Si DNSSEC funciona correctamente, todas las firmas y claves deben ser válidas y todas las entradas DNS deben estar confirmadas. En el gráfico, esto se indica en verde.

Si DNSSEC no funciona correctamente, pueden producirse diferentes errores o advertencias, como firmas inválidas, claves ausentes, falta de correspondencia de datos, etc. En el gráfico, esto se indica en rojo o amarillo. En este caso, el cliente DNS no podrá construir la cadena de confianza y no confiará en los datos DNS.

Limitaciones de DNSSEC

Hemos entendido qué es DNSSEC: un medio para verificar la autenticidad. Es importante entender que la extensión no garantiza la seguridad completa del sitio web. Al usar solo esta herramienta, la protección contra los atacantes será incompleta.

  • No hay protección contra ataques DDoS.
  • No hay garantía de transmisión confidencial de datos.
  • No hay cifrado de los datos del sitio web o la aplicación web.

Para organizar una protección completa, no solo se necesita la verificación DNSSEC, sino también la conexión de autenticación de dos factores (o de dos pasos), la conexión de un certificado SSL y la configuración adicional para reflejar los ataques DDoS.

Conclusión

DNSSEC es una tecnología que mejora la seguridad del sistema de nombres de dominio, protegiéndolo de ataques que pueden modificar las direcciones IP y redirigir a los usuarios a sitios falsos o maliciosos. DNSSEC funciona con base en firmas criptográficas que confirman la autenticidad e integridad de los datos DNS.

Para activar DNSSEC, hay que firmar la zona y configurar el servidor DNS. Para comprobar DNSSEC, se pueden utilizar varios servicios online que visualizan y analizan los datos DNS y las cadenas de confianza. DNSSEC garantiza la fiabilidad y seguridad de los datos DNS, mejorando la seguridad de los usuarios de internet.

Compartir este artículo
Seguir:
David Vargas es Ingeniero de Redes Senior y consultor IT con más de 12 años de experiencia práctica en el diseño, implementación y administración de infraestructuras de red. Apasionado por la conectividad y la ciberseguridad, posee certificaciones clave de la industria, incluyendo Cisco CCNA y CompTIA Network+. Su misión en Redes.help es desmitificar la tecnología de redes y compartir su experiencia de campo a través de guías claras y soluciones prácticas, ayudando a estudiantes y profesionales de IT a construir redes más rápidas, seguras y confiables.
1 comentario