DNSSEC, asegurando la integridad y autenticidad de tu dominio web

Una de las piedras angulares sobre las que se sustenta Internet es el sistema de nombres de dominio, también conocido por sus siglas en inglés DNS. Este protocolo tiene como objetivo traducir los nombres de dominio que utilizamos los usuarios en direcciones IP que puedan interpretar las máquinas.

Este protocolo data de la década de los 80, una época donde primaba la funcionalidad sobre la seguridad y DNS no fue la excepción. Los servidores DNS trabajan con bases de datos distribuidas en las que almacenan los registros con la información de los dominios y sus IP. Las deficiencias de seguridad existentes en este protocolo lo hacen susceptible de falsificación de estos registros, con los consiguientes riesgos de redirección a sitios maliciosos y suplantación, entre otros.

Para dar solución a esos problemas se diseñó lo que se conoce como extensiones de seguridad para el sistema de nombres de dominio o DNSSEC, por sus siglas en inglés Domain Name System Security Extensions.

¿Qué es DNSSEC y cómo funciona DNSSEC?

DNSSEC añade una capa de seguridad adicional al protocolo DNS que permite comprobar la integridad y autenticidad de los datos. Gracias a estas extensiones de seguridad se pueden prevenir ataques de suplantación y falsificación.

Las nuevas funcionalidades del protocolo están basadas en criptografía asimétrica, también conocida como criptografía de clave pública. DNSSEC utiliza el método de clave pública basado en dos claves distintas, una pública que, como su nombre indica, es de dominio público, y otra privada, que únicamente debe conocer su propietario. Mediante el uso de las  claves y las firmas generadas a partir de ellas, se puede saber si un mensaje ha sido modificado o no, permitiendo así garantizar la integridad y autenticidad del mensaje.

Cuando un usuario realiza una búsqueda de un dominio que cuenta con DNSSEC, en el proceso se envía la información necesaria para resolver la búsqueda, es decir, la dirección IP del dominio que se está buscando. Pero también se envían varias las firmas de las claves asociadas a los distintos servidores DNS que se han consultado.

Si al comprobar estas firmas no coinciden unas con otras, la consulta no puede ser validada como legítima ya que la cadena de confianza se ha roto y por lo tanto no es seguro acceder al sitio web. Por el contrario, si las firmas coinciden unas con otras, el usuario podrá acceder al sitio web ya que el proceso ha sido autenticado y la cadena de confianza no se ha roto.

¿Qué beneficios tiene el uso de DNSSEC?

La utilización de DNSSEC aporta una capa extra de autenticidad sobre los datos enviados mediante DNS sin extensiones de seguridad, evitando ataques de suplantación, como aquellos que redirigen a la víctima a sitios maliciosos como los de tipo phishing. También aumenta la protección frente a ataques de observación e interceptación del tráfico ya que la cadena de custodia que aporta DNSSEC lo evita.

DNSSEC no es una funcionalidad que la mayoría de los usuarios puedan habilitar ya que depende del proveedor de servicios de Internet o ISP que se haya contratado.

En la siguiente imagen se muestra una representación de un ciberdelincuente atacando una web con DNSSEC.

Ataque contra un servidor DNS con DNSSEC habilitado.

  1. El atacante accede al servidor DNS vulnerable y modifica la dirección IP asociada al servidor web por otra fraudulenta bajo su control.
  2. El usuario busca en su navegador web el dominio tienda.es.
  3. El servidor DNS local del usuario pregunta al servidor DNS raíz dónde puede encontrar al servidor DNS de los dominios .es.
  4. El servidor DNS raíz responde con la dirección IP del servidor DNS de los dominios .es y con las firmas del servidor raíz y del siguiente servidor DNS a consultar.
  5. El servidor DNS local pregunta al servidor DNS .es por el dominio de tienda.es.
  6. El servidor DNS .es devuelve la dirección IP del servidor DNS de tienda.es y con las firmas del servidor .es y del siguiente servidor DNS a consultar.
  7. El servidor DNS local pregunta al servidor DNS de tienda por la dirección IP de su servidor web.
  8. El servidor DNS de tienda.es devuelve la dirección IP fraudulenta del servidor web y las firmas asociadas al dominio tienda.es.
  9. El servidor DNS local facilita la dirección IP del servidor web al equipo del usuario.
  10. El equipo del usuario comprueba que la cadena de confianza que ofrece DNSSEC se ha roto ya que las firmas del servidor DNS de tienda.es no coinciden con las firmas facilitadas por el servidor DNS .es y, por lo tanto, no accede al sitio web de tienda.es.

En el siguiente escenario un atacante intercepta el tráfico para redirigir al usuario a una web fraudulenta.

Ataque MITM contra DNSSEC.

  1. El usuario busca en su navegador web el dominio tienda.es.
  2. Su servidor DNS local devuelve al atacante que está interceptando el tráfico la dirección IP del servidor web legítimo y las firmas de los distintos servidores DNS consultadas en el proceso.
  3. El atacante modifica la dirección IP por la de un servidor web bajo su control.
  4. El atacante devuelve al usuario la dirección IP fraudulenta y las firmas DNSSEC.
  5. El equipo del usuario comprueba que la cadena de confianza que ofrece DNSSEC se ha roto ya que las firmas no coinciden con las que debería ser y no accede al sitio web de tienda.es.

En ambos casos la cadena de confianza que ofrece DNSSEC se rompe ya que las firmas utilizadas para autenticarla no coinciden con las que deberían ser, por lo tanto el usuario no accederá a la web fraudulenta.

Desde INCIBE-CERT se ha elaborado una completa Guía de implantación y buenas prácticas de DNSSEC. En ella puedes obtener más información sobre los aspectos técnicos de estas mejoras de seguridad sobre el protocolo DNS.

¿Cómo saber si mi web tiene DNSSEC?

Para saber si tu página web cuenta con DNSSEC existen varias herramientas en Internet que lo permiten como:

Haciendo una comprobación de un dominio con DNSSEC, obtenemos el siguiente resultado:

Dominio con DNSSEC activado

En cambio, si hacemos la comprobación contra un dominio sin DNSSEC, el resultado es:

Dominio sin DNSSEC activado.

Si después de comprobar el uso de DNSSEC en tu dominio ves que no cuenta con esta mejora de seguridad, es recomendable que contactes con tu ISP para solicitarle que lo implemente. En caso de no obtener una respuesta afirmativa, es recomendable buscar otro proveedor que sí lo haga, de esta forma elevaremos la seguridad en la empresa y sobre todo para nuestros clientes, además de mejorar nuestra reputación digital.

DNSSEC es una mejora de seguridad que todo sitio web debería tener ya que se aumenta la integridad y autenticidad de un protocolo que es de vital importancia en Internet. No esperes más y solicita a tu ISP que implemente DNSSEC, si no lo ha hecho todavía.

GonzaloCN
Acerca de 
Administrador de Sistemas/Seguridad informática, adoro las nuevas tecnologías y gadgets. Blogero de pura cepa :)