[Opendnssec-user] Enforcerd and signerd decoupling
Antti Ristimäki
antti.ristimaki at csc.fi
Wed Mar 5 10:37:24 UTC 2014
Hi,
We've been lately starting worrying about the possible decoupling
between enforcerd and signerd. Given that enforcerd is responsible for
rolling the keys and managing related timers, I think it should receive
at least some level of feedback from the signerd in order to do all the
timings properly. Let's consider for example the following simple and
quite realistic scenario:
1) Enforcerd runs and decides that it's time to introduce a new key into
the zone.
2) The zone next signing should take place but for some reason the zone
is NOT signed, for example due to an outage in the zone provisioning
system. All the subsequent signings are also missed, so the zone won't
get signed until phase 3)
3) Enforcerd runs again and decides that the new key has now been
published for long enough and marks it as active.
4) The zone signing process chain works again and the zone gets signed.
As the new key is now active, the zone gets populated with signatures
created with the new key.
5) A random resolver queries for an RRset not present in cache and
receives it along with the signature created with the new key. The
resolver still has the old DNSKEY RRset in cache and thus validation
fails until cached DNSKEY RRset expires.
The scenario described above is only a single example, but the issue
would also occur if the zone is signed between enforcerd periodic runs
but the updated zone is not propagated to public DNS servers. An
ultimate feature would be if the enforcerd could somehow track whether
the key state changes have been actually propagated to public DNS. Maybe
this could be accomplished by some optional hook to some user defined
script?
The probability of this issue is not so big when the signerd runs
periodically e.g. every half an hour, but in environments where the zone
signing is triggered only when the zone is received from a provisioning
system, the probability might be much bigger.
It is also worth mentioning, that the default PublishSafety interval is
only 3600s IIRC.
Any thoughts about this? Is there already some mechanism in OpenDNSSEC
to prevent this issue that I'm not aware of?
Antti
More information about the Opendnssec-user
mailing list