Admin Libre - Administración de sistemas y redes

DNSSEC Key Rollover con el método de doble KSK
Por Francisco Gaitán el 19 de Agosto de 2023

Seguiré las explicaciones del RFC 7583 DNSSEC Key Rollover Timing Considerations, en concreto el método Double-KSK Method. Es una operación delicada ya que un error supondrá que la zona no funcione en absoluto durante el tiempo definido por los valores TTL.

Partiendo de una zona DNS firmada como explico en el artículo DNSSEC con nsd y ldns-utils:

  1. Creo una nueva llave que denominaré N+1
  2. Firmo la zona con dos llaves: la llave anterior (N) y la llave nueva (N+1)
  3. Actualizo la zona en los servidores y espero el tiempo de propagación de la misma + el TTL del registro DNSKEY
  4. Subo a la zona padre el nuevo DS y espero a que se haya propagado a todos los servidores padre
  5. Desde el registrador retiro el antiguo registro DS
  6. Espero a la propagación en la zona padre + el TTL del registro DS actual
  7. Firmo la zona con la nueva llave (N+1) únicamente y la publico.

Paso 1: Creo la nueva llave

$ ldns-keygen -a13 -k example.com

Ahora tengo dos juegos de llaves:

  • Kexample.com.+013+32053.{ds,key,private}
  • Kexample.com.+013+59947.{ds,key,private}

Paso 2: Firmo la zona con la llave anterior y con la nueva

$ ldns-signzone -n -u -o example.com example.com Kexample.com.+013+32053 Kexample.com.+013+59947

Nótese que el tamaño del fichero firmado es aproximadamente el doble al contener firmas para dos llaves.

Paso 3: Actualizo la zona y espero

Publico la zona y a continuación espero el tiempo de propagación sumado al tiempo TTL del registro DNSKEY de la misma.

Una vez que se ha propagado a los servidores secundarios espero 86400 segundos que es el TTL de la zona DNSKEY antes de dar el siguiente paso.

Paso 4: Subo el nuevo DS y espero a que se propague

A través del registrador subo a la zona padre (en este caso com.) el nuevo DS y compruebo que se haya propagado correctamente con DNSViz.net o consultando directamente a los servidores NS de com.

Paso 5: Una vez propagado el nuevo DS retiro el antiguo

Elimino el antiguo DS de la zona padre a través del registrador.

Paso 6: Espero a la propagación del nuevo DS + el TTL del registro DS

Ahora mismo la zona padre tiene solamente el nuevo DS y la zona está firmada por la llave antigua y por la nueva. A partir de que esté propagado este cambio de DS además hay que esperar el valor del TTL del mismo ya que puede estar cacheado en otros servidores.

Paso 7: Firmar la zona con la nueva llave (N+1) solamente y la publico

Una vez llegado a este punto donde ya ha caducado cualquier registro con el DS antiguo es el momento de firmar la zona únicamente con la llave N+1 y de publicarla en los servidores autoritativos.

Destacado

Contacto

Si has encontrado algún error o quieres comentarme algo mándame un correo a webmaster@adminlibre.org