On Mon, 8 Nov 2010, Rickard Bellgrim wrote:
3.1 Operational Motivations (5th paragraph) Is it true that you get “operational flexibility and higher computational performance” by using a file based ZSK and smartcard KSK (offline in a safe) than a single key stored on an HSM? The HSM can give you the option to have the keys online, thus no need to take out the smartcard from the safe. And the HSM can be designed to give you speed. I know that my HSM is faster than OpenSSL on my machine.
Which HSM and which openssl version on what type of computer? A decent quadcore outperforms an HSM in my experience.
3.2 Practical Consequences (2nd paragraph) The statement is that you can have signature validity periods on the order of days for ZSK signatures, because there is no interaction with the parent during a key rollover. Well this is not true. There is nothing that prevents you from having short validity periods for KSK signatures. ZSK and KSK is thus equal in that aspect.
It depends on how long the parent's DS/NS records are valid for (TTL) and how fast they can update the DS record. It's not fully in your control, so there is some possible delay (and you NEED a monitor to avoid a bad rollover)
3.4.2 Key Sizes (1st paragraph) “can safely use 1024-bit keys for at least the next ten years”. NIST SP 800-131 says that 1024 – 2048 bit is acceptable to use in 2010. It is deprecated between 2011 and 2013. From 2011 you should use keys larger than 2048 bits. http://csrc.nist.gov/groups/ST/toolkit/documents/draftSP800-131_June_11_2010.pdf
key size depends on key usage. The NIST SP (if I remember correctly) lists 1 validity time for both volatile signatures and long term encryption. In fact, talking to cryptanalists, the 10 years could even be extended, but it was used as a very conservative number.
4.2.1 KSK Compromise (2nd paragraph) A compromised KSK used by an attacker can also sign data in the zone other than the key set. An attacker does not need to follow the definitions of KSK vs ZSK.
I wonder how different implementations handle this case......
4.3.1 Initial Key Exchange I also think that it should be possible to send in a DS RR for which there is no DNSKEY in the child zone. I know that there are registries that disallow this and others allow this. The reason is to not limit any (future) rollover mechanism. What we could say is that there should be at least one of the DS RRs pointing to a DNSKEY.
4.3.3 Security Lameness (2nd paragraph) No, the parent should allow DS RR pointing to non-published DNSKEY. We should not limit any (future) rollover mechanisms. There should of course be at least one DS pointing to one DNSKEY.
If you already know the DNSKEY (because you have the DS record), what would be the use of not already publishing that DNSKEY? If the "DS update" mechanism would be compromised (eg webgui at registry) then this might allow an attacker to spoof a zone? Verification that the DNSKEY is actually there would offer additional protection. I think it is better for resolvers not to have to try too many bogus trust paths by adding "bogus" DS records.
5.3.3 NSEC3 Salt (3rd paragraph) You recommend doing re-salting at the same time as ZSK rollover. But it is not required to drop all signatures at once during a ZSK rollover. This can be a smooth transition determined by the refresh period.
I thought you would always have the new ZSK sign all the zone data, and just keep the old ZSK for cached sigs? So in that case, yes you always drop all signatures during a ZSK rollover (on the signer, TTL's and SigMax will cause a spread out expiry of the old sigs on caching validating resolvers)
Finally: You are missing text about standby keys. Used to speed up the rollover in case of an emergency. But also as part of your disaster recovery, when you have lost access to your keys and the backups cannot be restored. This is how you do it: 1. Generate standby KSK and ZSK. Store them safely. 2. Prepublish standby ZSK in zone. 3. Prepublish DS of standby KSK in parent zone. 4. You have a disaster. 5. Create a new datacenter and import the standby keys. 6. Postpublish old ZSK in zone (fetch it from a secondary somewhere). 7. Sign and publish zone. 8. After "some" TTL remove old ZSK and old DS 9. Continue with normal operation.
I find this very odd. You publish "bad data" just because you might have a bad backup? It seems like outsourcing your responsibilities, at the cost of everyone's resolvers needing to handle a bogus DS record. And why would the disaster not destroy the standby keys? And if you have a safe method for the standby keys, why did you not use it for the current keys as well, thereby preventing the (DNS) disaster. Paul _______________________________________________ DNSOP mailing list DNSOP@ietf.org https://www.ietf.org/mailman/listinfo/dnsop