Registros DNS DNSKEY y DS

Los registros DNSKEY y DS son utilizados por los solucionadores DNSSEC para verificar la autenticidad de los registros DNS.

Objetivos de aprendizaje

Después de leer este artículo podrás:

  • Entender el objetivo del registro DNSKEY
  • Entender el papel que desempeña el registro DS en DNSSEC

Copiar enlace del artículo

¿Qué son los registros DNSKEY y DS?

El Sistema de nombres de dominio (DNS) es la guía telefónica de Internet, pero no se diseñó pensando en la seguridad. Por este motivo, se creó un protocolo de seguridad opcional llamado DNSSEC, para que los propietarios de las webs pudieran asegurar mejor sus aplicaciones. DNSSEC aumenta la seguridad al añadir firmas criptográficas a los registros DNS; estas firmas pueden comprobarse para verificar que un registro procede del servidor DNS correcto.

Para la implementación de estas firmas criptográficas, se crearon dos nuevos tipos de registros DNS: DNSKEY y DS. El registro DNSKEY contiene una clave de firma pública, y el registro DS contiene un hash* de un registro DNSKEY.

A cada zona DNSSEC se le asigna un conjunto de claves de firma (ZSK) de zona. Este conjunto incluye una ZSK privada y otra pública. La ZSK privada se utiliza para firmar los registros DNS de esa zona, y la ZSK pública se utiliza para verificar la privada.

La ZSK pública se publica en un registro DNSSEC, que es como se proporciona a un solucionador DNSSEC; el solucionador utilizará la ZSK pública para garantizar que los registros de esa zona sean auténticos. Como capa de seguridad adicional, las zonas DNSSEC contienen un segundo registro DNSKEY que contiene una clave de firma (KSK), que verifica la autenticidad de la ZSK pública.

El registro DS se utiliza para verificar la autenticidad de las zonas hijas** de las zonas DNSSEC. El registro de claves DS de una zona padre contiene un hash de la KSK de una zona hija. Por tanto, un solucionador DNSSEC puede verificar la autenticidad de la zona hija haciendo un hash de su registro KSK y comparándolo con lo que hay en el registro DS de la zona madre.

*Un hash criptográfico es una codificación unidireccional de entrada alfanumérica; los hashes se suelen utilizar para almacenar información confidencial, como las contraseñas en los servidores. Por ejemplo, un hash de la entrada "cantguessthis" es 18fe9934cf77a759eb2471f2b304708a. Cada vez que "cantguessthis" se somete a la función de hash, se obtiene el mismo hash. Pero no hay manera de obtener la entrada original usando solo el hash. El hash por sí mismo no vale para nada.

**Una zona hija es un subdominio delegado de otra zona. Por ejemplo, una URL de example.com podría tener zonas hijas con dominios como blog.example.com y mail.example.com.