dnssec.in › Learn › KSK, ZSK and key rollover
Learn DNSSEC

KSK, ZSK and key rollover

Why DNSSEC zones use a key-signing key and a zone-signing key, when one combined key is enough, and how to roll keys without breaking validation.

A zone usually has two roles for keys:

A CSK (combined signing key) does both jobs. With short, strong ECDSA keys, many operators use one CSK and roll it rarely. This site uses one ECDSA P-256 CSK.

Rolling a ZSK: pre-publish

  1. Publish the new ZSK in the DNSKEY set, still signing with the old one.
  2. Wait for the DNSKEY TTL, so caches have the new key.
  3. Sign with the new key.
  4. Wait until the old signatures have expired from caches, then remove the old key.

Rolling a KSK: double-DS or double-KSK

  1. Add the new KSK and sign the DNSKEY set with both keys (double-KSK), or publish the new DS next to the old one (double-DS).
  2. Change the DS at the registrar to the new key.
  3. Wait for the parent's DS TTL, then remove the old KSK.

The rule in both: never let a cache hold a DS or signature that points at a key it cannot get. RFC 6781 and RFC 7583 describe the timing in detail. Signers like PowerDNS, BIND's dnssec-policy and Knot can run rollovers for you.

The root KSK

The whole chain starts at the root zone's KSK, the trust anchor built into validating resolvers. It was rolled once, in October 2018 (KSK-2010 to KSK-2017), the first rollover of the root key since DNSSEC was deployed at the root in 2010.

Check a domain →

More guides