Preliminary Comparison between the different Trust Anchor Rollover Proposals
(last modified: 28 June 2006)
Older Versions
trust-anchor-comparison-v00.htm
This document makes a preliminary comparison between the different trust anchor rollover proposals. The requirements listed in the first column below were drawn from draft-ietf-dnsext-rollover-rquirements-02.
The comments/rationale and notes for each of the approaches have been entered based solely on my interpretation and evaluation of the requirements, proposals and various mail exchanges on namedroppers. The idea is to encourage discussion so that the correct set of evaluation parameters may be identified.
Please send any updates or corrections directly to: suresh at sparta dot com
draft-ietf-dnsext-rollover-rquirements-02
 
               
ID Functional Requirement Interpretation Comments/Rationale M-of-N Timers Laurie Vixie Moreau
               
               
1. Scalability Support for large number of resolvers and up to 1000 trust anchors per resolver. Rollover daemons may have to periodically query nameservers to identify apex keyset. Queries to make sure that the apex keyset has not changed (TTL) Queries to make sure apex keyset has not changed + one query during the add-hold period for each new key + one query per revoked-key advertisement window As the number of islands grows, there are more certificates to retrieve recursively. You can also specify "effectivity periods" for tust anchors (through the X509 infrastructure) and use this as the bootstrapping interval. query for apex when hash of keyset changes. Periodic queries (TTL) for apex keyset may be needed if no other data within this zone has been queried for. Queries to make sure that the keyset has not changed (TTL) + queries for the SDDA. Might be able to augment initial distribution or the SDDA records with effectivity periods for keys to use as an optimal polling interval.
Procedure to re-establish initial trust must be manageable over the scale of the Internet Although initial trust is out of scope, I believe this to be relevant Need to establish trust with all zones for which a TA needs to be configured, every time the resolver is offline for a prolonged period Need to establish trust with all zones for which a TA needs to be configured, every time the resolver is offline for a prolonged period Need to establish trust with only the local CA. Need to establish trust with all zones for which a TA needs to be configured, every time the resolver is offline for a prolonged period Need to establish trust with all zones for which a TA needs to be configured, every time the resolver is offline for a prolonged period
               
               
2. No Intellectual Property Encumberance No known IPR encumberance Encourage deployment Diversinet patent filed in Israel and also applied for in Canada. Don't understand what it considers "reasonable" (I am not a lawyer) Diversinet patent filed in Israel and also applied for in Canada. Don't understand what it considers "reasonable" (I am not a lawyer) None currently known Suffers from the same patent claim that M-N does(?) There is some hint that the idea of pre-distribution of digests is not new -- using MASH's is patented though, and the idea is not universally free to use
               
               
3. General Applicability Shall work for different types of keys in the keyset (unknown algorithms, only ZSKs, only KSKs) Since there is no protocol difference between ZSKs and KSKs, it is not essential that all zone administrators will maintain this separation Needs to have ZSK and KSK separation Needs to have ZSK and KSK separation Need not have ZSK and KSK separation Needs to have ZSK and KSK separation Need not have ZSK and KSK separation
Support all types of stub resolvers are there any resolver scenarios where there might not be sufficient memory to store the initial trusted configuration/state? Needs memory for storing at least M+N keys per island of trust Needs sufficient memory for at least two trust anchor keys per island of trust and the set of revoked keys that were previously seen Needs sufficient memory to store location and certificate of local CA Similar to M-of-N Needs memory to store the series of 4-tuples for every island of trust
               
               
4. Support Private Networks Must support all types of networks What are the different types of networks?          
               
               
5. Detection of Stale Trust Anchors Failure conditions must be identifiable and detectable This might be refering to distinguishing between genuine loss of synchronization and spoof attacks Difficult to make this distinction if the name sever rolls its keys faster than the polling interval. Two different timing parameters to consider: revocation and addition. If you suddenly see new keys and you know you haven't missed revocation event, you can ignore the new keys "Rollover" is essentially doing the resolver bootstrap all over again. The resolver may treat multiple unknown trust anchors as cue to perform the bootstrap, Difficult to make this distinction if the name sever rolls its keys faster than the polling interval. Since there is no revocation information maintained, you donŐt know if the name server operator suddenly decided to change the complete set of pre-published keys
               
               
6. Manual Operations Permitted Leave room for manual rollover operations It is always possible to manually set the trust anchor, so one interpretation of this requirement could be that doing so should not prevent automated mechanisms from taking over thereon No state is maintained, so no harm done if trust anchors are manually configured Probably no harm -- specification needs to be made clear to specify how the timers are affected if trust anchors change OOB The bootstrapping process simply gives a list of keys, which can also be configured manually No state is maintained, so no harm done if trust anchors are manually configured Should be possible to configure a trust anchor manually
               
               
7. Planned and Unplanned Rollovers Support for scheduled and un-scheduled types of rollover Why do we want to separate these two? Is it only rollovers or does revocation count? Supports pre-scheduled well; emergency rollover cannot be detected any sooner Supports pre-scheduled well; emergency rollover cannot be detected any sooner rollovers in general can only be detected at the same rate at which bootstrapping is done Supports pre-scheduled well. Emergency rollover is faster than MofN because any DNS response from that zone can trigger this Supports pre-scheduled well; emergency rollover cannot be detected any sooner
               
               
8. Timeliness quickly distribute TA material to resolvers May be same as emergency rollover requirement          
               
               
9. High Availability Ability to inspect issuer's knowledge of possible current and past trust anchors Resolvers should be able to detect when they need to re-sync. obtaining current keys is easy; obtaining past keys is not obtaining current keys is easy; obtaining past keys is not The CAs provide the repository of current and past (CRL) keys obtaining current keys is easy; obtaining past keys is not Past keys (or their hash) can be known by inspecting the pre-distributed list
Support reconnection upto a period of N months Avoid initial setup if it can be avoided Does not directly support this Does not directly support this As long as you can trust the local CA certificate, resolvers can reconnect without problem Does not directly support this If resolvers have the current key in the set of pre-distributed keys, they can reconnect without problem
               
               
10. New RR Types No new RRs shall be needed No on-the-wire changes in general No on-the-wire changes Addition of the revoke bit in the DNSKEY (but this is a feature) Completely OOB Modifies name server algorithm. Keyset digest is sent in the authority section. Message size increases New SDDA RR definition
Must be an in-band mechanism No reliance on other pieces that can fail separately (I think this is relevant) If re-sync is not needed, completely in-band If re-sync is not needed, completely inband DNSSEC rollover fails if X509 infrastructure fails If re-sync is not needed, completely inband If re-sync is not needed, completely inband
               
               
11. Support for Trust Anchor Maintenance operations Should support add, remove, replace(as a single operation) Basic operations. Add, remove and replace may not be simultaneously possible. For replace, N has to be at least 2, but for single addition N has to be 1. Supports add and remove operations. Remove is same as revoke unless it is inside the add-hold time interval (in which case the key is not added). Replace is not possiblein one step (because of the add-hold timer) Supports add. Remove and replace are only possible if keys are revoked. Same as M-of-N Supports add, remove and replace operations
It should be possible to identify which keys are have been added/rolled over There is always local policy that can influence the final decision on whether a key is rolled over at the resolver end You don't really know if one of the keys in the trusted set was removed. The M and N parameters are additional policy knobs that determine exact key that is rolled over. The values of the timers can influence the set of keys that are added as trust anchors in the resolver. May not have the full set of revoked keys if we're offline for a while. You get to see this in the CRLs You don't really know if one of the keys in the trusted set was removed Its possible to examine the pre-distributed list to know which keys have been rolled over.
Must not impose a limit on how many keys can be added, removed, replaced Does it matter. Should there be a limit?          
             
               
               
12. Recovery from Compromise must support revocation and knowledge about which keys are the target of revocation Supporting revocation is the key here I'd imagine. Does not support revocation Supports revocation, but may not have knowledge of the complete set of keys that were revoked - it only knows what it sees Supports revocation through the X509 infrastructure Does not support revocation Does not support revocation
               
               
13. Non-degrading trust Trustworthiness must not degrade after a rollover May be a policy issue (which algorithm to allow etc). How does one define degraded trustworthyness?