DNSSEC: Migración a ECDSAP256SHA256 en algunos de mis dominios

Tras "Key Rollover" y reconfiguración de mis DNSSEC para eliminar SHA-1 me quedé con el resquemor de migrar mis dominios DNS protegidos con DNSSEC al algoritmo RSASHA256 y no al molón ECDSAP256SHA256. Mi miedo en aquel momento era la compatibilidad [1].

[1] La zona raíz del DNS y el propio dominio regional .es utilizan RSASHA256 para las firmas DNSSEC.

Pero dentro de jcea.es tengo algunos dominios de uso interno y otro con un único "consumidor". Comprobando los resolvers "consumidores" de esos dominios, confirmo que son compatibles con el algoritmo ECDSAP256SHA256 en DNSSEC. ¡Podría migrarlos sin arriesgar la compatibilidad del dominio jcea.es!

Los pasos son similares a los documentados en "Key Rollover" y reconfiguración de mis DNSSEC para eliminar SHA-1, así que no voy a repetir los comandos precisos, me centraré en una descripción de alto nivel:

  1. Añado claves KSK y ZSK ECDSAP256SHA256 nuevas a esos subdominios. Las activo inmediatamente para que empiecen a firmar. En ese momento los registros DNS tendrán dos firmas: las antiguas y las nuevas.

  2. Añado registros DS en jcea.es para validar las nuevas claves KSK. No elimino los DS antiguos porque el TTL de los registros DNSKEY es de 24 horas y hasta ese momento un resolver podría tener en su caché registros DNSKEY antiguos, pero recibir un DS actualizado que ya no tolera las claves KSK antiguas. Manteniendo los DS antiguos y añadiendo los nuevos durante 24 horas, nos garantizamos que todos los resolvers puedan validar DNSSEC para esos subdominios, tengan lo que tengan en su caché.

  3. Configuro las claves KSK y ZSK antiguas para que dejen de firmar y desaparezcan del DNS tras 24 horas. Es decir, tras esas 24 horas los registros DNS seguirán teniendo dos firmas digitales, pero una de ellas, la "antigua", se ignorará por no tener ZSK asociada. El DNSSEC sigue validando porque aún queda una firma útil.

  4. Tras 24 horas, editamos jcea.es para eliminar los registros DS antiguos. A partir de ese momento todos los resolvers tendrán en su caché registros DNSKEY que contienen las claves nuevas y, con el cambio que hemos hecho, esas claves serán las únicas válidas.

    Nota

    Un detalle interesante es que mis registros DS utilizaban tanto SHA-1 como SHA256. Con el cambio de la clave KSK, aprovecho para dejar solo los registros DS con SHA256.

    Por ejemplo, antes los registros eran:

    acme-challenge          IN      NS      dns.jcea.es.
                            IN DS 31735 8 1 519B9FADEA94F9D7DA81E377E226E874D5E1D5F3
                            IN DS 31735 8 2 A71C4C8502B2FD7DB9E225EFE22EEFD950A29193D29297BF55F81471C5192336
    

    Ahora:

    acme-challenge          IN      NS      dns.jcea.es.
                            IN DS 25593 13 2 22D693C48C70538DD7CDA134C9A6FC7E07EDBF9F739A98D7C9FD074088D2A693
    

    Nótese que para este dominio DNS ya estaba usando RSASHA256, dado que fue de creación posterior a mi despliegue DNSSEC inicial.

El proceso ha sido fácil e indoloro. La integridad DNSSEC se mantuvo en todo momento.