| < draft-ietf-dnsop-delegation-trust-maintainance-07.txt | draft-ietf-dnsop-delegation-trust-maintainance-08.txt > | |||
|---|---|---|---|---|
| dnsop W. Kumari | dnsop W. Kumari | |||
| Internet-Draft Google | Internet-Draft Google | |||
| Intended status: Informational O. Gudmundsson | Intended status: Informational O. Gudmundsson | |||
| Expires: October 16, 2014 Shinkuro Inc. | Expires: October 17, 2014 Shinkuro Inc. | |||
| G. Barwood | G. Barwood | |||
| April 14, 2014 | April 15, 2014 | |||
| Automating DNSSEC Delegation Trust Maintenance | Automating DNSSEC Delegation Trust Maintenance | |||
| draft-ietf-dnsop-delegation-trust-maintainance-07 | draft-ietf-dnsop-delegation-trust-maintainance-08 | |||
| Abstract | Abstract | |||
| This document describes a method to allow DNS operators to more | This document describes a method to allow DNS operators to more | |||
| easily update DNSSEC Key Signing Keys using the DNS as communication | easily update DNSSEC Key Signing Keys using the DNS as communication | |||
| channel. This document does not address the initial configuration of | channel. This document does not address the initial configuration of | |||
| trust anchors for a domain. The technique described is aimed at | trust anchors for a domain. The technique described is aimed at | |||
| delegations in which it is currently hard to move information from | delegations in which it is currently hard to move information from | |||
| the child to parent. | the child to parent. | |||
| skipping to change at page 1, line 38 ¶ | skipping to change at page 1, line 38 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on October 16, 2014. | This Internet-Draft will expire on October 17, 2014. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2014 IETF Trust and the persons identified as the | Copyright (c) 2014 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 2, line 29 ¶ | skipping to change at page 2, line 29 ¶ | |||
| 3. CDS / CDNSKEY (Child DS/ Child DNSKEY) Record Definitions . . 7 | 3. CDS / CDNSKEY (Child DS/ Child DNSKEY) Record Definitions . . 7 | |||
| 3.1. CDS Resource Record Format . . . . . . . . . . . . . . . 8 | 3.1. CDS Resource Record Format . . . . . . . . . . . . . . . 8 | |||
| 3.2. CDNSKEY Resource Record Format . . . . . . . . . . . . . 8 | 3.2. CDNSKEY Resource Record Format . . . . . . . . . . . . . 8 | |||
| 4. Automating DS Maintainance With CDS/CDNSKEY records . . . . . 8 | 4. Automating DS Maintainance With CDS/CDNSKEY records . . . . . 8 | |||
| 4.1. CDS / CDNSKEY Processing Rules . . . . . . . . . . . . . 8 | 4.1. CDS / CDNSKEY Processing Rules . . . . . . . . . . . . . 8 | |||
| 5. CDS / CDNSKEY Publication . . . . . . . . . . . . . . . . . . 9 | 5. CDS / CDNSKEY Publication . . . . . . . . . . . . . . . . . . 9 | |||
| 6. Parent Side CDS / CDNSKEY Consumption . . . . . . . . . . . . 9 | 6. Parent Side CDS / CDNSKEY Consumption . . . . . . . . . . . . 9 | |||
| 6.1. Detecting a Changed CDS / CDNSKEY . . . . . . . . . . . . 9 | 6.1. Detecting a Changed CDS / CDNSKEY . . . . . . . . . . . . 9 | |||
| 6.1.1. CDS / CDNSKEY Polling . . . . . . . . . . . . . . . . 10 | 6.1.1. CDS / CDNSKEY Polling . . . . . . . . . . . . . . . . 10 | |||
| 6.1.2. Other Mechanisms . . . . . . . . . . . . . . . . . . 10 | 6.1.2. Other Mechanisms . . . . . . . . . . . . . . . . . . 10 | |||
| 6.2. Using the New CDS / CDNSKEY Records . . . . . . . . . . . 11 | 6.2. Using the New CDS / CDNSKEY Records . . . . . . . . . . . 10 | |||
| 6.2.1. Parent Calculates DS . . . . . . . . . . . . . . . . 11 | 6.2.1. Parent Calculates DS . . . . . . . . . . . . . . . . 11 | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 8. Privacy Considerations . . . . . . . . . . . . . . . . . . . 12 | 8. Privacy Considerations . . . . . . . . . . . . . . . . . . . 12 | |||
| 9. Security Considerations . . . . . . . . . . . . . . . . . . . 12 | 9. Security Considerations . . . . . . . . . . . . . . . . . . . 12 | |||
| 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 14 | 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 | 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 11.1. Normative References . . . . . . . . . . . . . . . . . . 14 | 11.1. Normative References . . . . . . . . . . . . . . . . . . 14 | |||
| 11.2. Informative References . . . . . . . . . . . . . . . . . 15 | 11.2. Informative References . . . . . . . . . . . . . . . . . 15 | |||
| Appendix A. RRR background . . . . . . . . . . . . . . . . . . . 15 | Appendix A. RRR background . . . . . . . . . . . . . . . . . . . 15 | |||
| Appendix B. Changes / Author Notes. . . . . . . . . . . . . . . 16 | Appendix B. Changes / Author Notes. . . . . . . . . . . . . . . 16 | |||
| skipping to change at page 3, line 5 ¶ | skipping to change at page 3, line 5 ¶ | |||
| When a DNS operator first signs their zone, they need to communicate | When a DNS operator first signs their zone, they need to communicate | |||
| their DS record(s) (or DNSKEY(s)) to their parent through some out- | their DS record(s) (or DNSKEY(s)) to their parent through some out- | |||
| of-band method to complete the chain of trust. | of-band method to complete the chain of trust. | |||
| Each time the child changes the key that is represented in the | Each time the child changes the key that is represented in the | |||
| parent, the updated and/or deleted key information has to be | parent, the updated and/or deleted key information has to be | |||
| communicated to the parent and published in the parent's zone. How | communicated to the parent and published in the parent's zone. How | |||
| this information is sent to the parent depends on the relationship | this information is sent to the parent depends on the relationship | |||
| the child has with the parent. In many cases this is a manual | the child has with the parent. In many cases this is a manual | |||
| process, and not an easy one. For each key roll, there may be up to | process, and not an easy one. For each key change, there may be up | |||
| two interactions with the parent. Any manual process is susceptible | to two interactions with the parent. Any manual process is | |||
| to mistakes and/or errors. In addition, due to the annoyance factor | susceptible to mistakes and/or errors. In addition, due to the | |||
| of the process, operators may avoid performing key rollovers or skip | annoyance factor of the process, operators may avoid changing keys or | |||
| needed steps to publish the new DS at the parent. | skip needed steps to publish the new DS at the parent. | |||
| DNSSEC provides data integrity to information published in DNS; thus | DNSSEC provides data integrity to information published in DNS; thus | |||
| DNS publication can be used to automate maintenance of delegation | DNS publication can be used to automate maintenance of delegation | |||
| information. This document describes a method to automate | information. This document describes a method to automate | |||
| publication of subsequent DS records, after the initial one has been | publication of subsequent DS records, after the initial one has been | |||
| published. | published. | |||
| Readers are expected to be familiar with DNSSEC, including [RFC4033], | Readers are expected to be familiar with DNSSEC, including [RFC4033], | |||
| [RFC4034], [RFC4035], [RFC5011] and [RFC6781]. | [RFC4034], [RFC4035], [RFC5011] and [RFC6781]. | |||
| skipping to change at page 3, line 45 ¶ | skipping to change at page 3, line 45 ¶ | |||
| parental agent. It lists exactly what the parent should publish, and | parental agent. It lists exactly what the parent should publish, and | |||
| allows for publication of stand-by keys. A different protocol, | allows for publication of stand-by keys. A different protocol, | |||
| [I-D.csync], can be used to maintain other important delegation | [I-D.csync], can be used to maintain other important delegation | |||
| information, such as NS and glue. These two protocols have been kept | information, such as NS and glue. These two protocols have been kept | |||
| as separate solutions because the problems are fundamentally | as separate solutions because the problems are fundamentally | |||
| different, and a combined solution is overly complex. | different, and a combined solution is overly complex. | |||
| This document describes a method for automating maintanance of the | This document describes a method for automating maintanance of the | |||
| delegation trust information, and proposes a polled / periodic | delegation trust information, and proposes a polled / periodic | |||
| trigger for simplicity. Some users may prefer a different trigger, | trigger for simplicity. Some users may prefer a different trigger, | |||
| such as a button on a webpage, a REST interface, DNS NOTIFY, etc. | for example a button on a webpage, a REST interface or a DNS NOTIFY. | |||
| These alternate / additional triggers are not discussed in this | These alternate / additional triggers are not discussed in this | |||
| document. | document. | |||
| This proposal does not include all operations needed for the | This proposal does not include all operations needed for the | |||
| maintenance of DNSSEC key material, specifically the initial | maintenance of DNSSEC key material, specifically the initial | |||
| introduction or complete removal of all keys. Because of this, | introduction or complete removal of all keys. Because of this, | |||
| alternate communications mechanisms must always exist, potentially | alternate communications mechanisms must always exist, potentially | |||
| introducing more complexity. | introducing more complexity. | |||
| 1.1. Terminology | 1.1. Terminology | |||
| skipping to change at page 4, line 21 ¶ | skipping to change at page 4, line 21 ¶ | |||
| Highlighted roles: | Highlighted roles: | |||
| o Child: "The entity on record that has the delegation of the domain | o Child: "The entity on record that has the delegation of the domain | |||
| from the parent" | from the parent" | |||
| o Parent: "The domain in which the child is registered" | o Parent: "The domain in which the child is registered" | |||
| o Child DNS Operator: "The entity that maintains and publishes the | o Child DNS Operator: "The entity that maintains and publishes the | |||
| zone information for the child DNS" | zone information for the child DNS" | |||
| o Parent DNS Operator: "The entity that maintains and publishes the | ||||
| zone information for the parent DNS" | ||||
| o Parental Agent: "The entity that the child has relationship with, | o Parental Agent: "The entity that the child has relationship with, | |||
| to change its delegation information" | to change its delegation information" | |||
| o Provisioning system: "A system that the operator of the master DNS | o Provisioning system: "A system that the operator of the master DNS | |||
| server operates to maintain the information published in the DNS. | server operates to maintain the information published in the DNS. | |||
| This includes the systems that sign the DNS data" | This includes the systems that sign the DNS data" | |||
| RRR is our shorthand for Registry/Registrar/Registrant model of | RRR is our shorthand for Registry/Registrar/Registrant model of | |||
| parent child relationship see Appendix A for more. | parent child relationship see Appendix A for more. | |||
| skipping to change at page 5, line 32 ¶ | skipping to change at page 5, line 30 ¶ | |||
| As the DS record can only be present at the parent ( [RFC4034]), some | As the DS record can only be present at the parent ( [RFC4034]), some | |||
| other method is needed to automate which DNSKEYs are picked to be | other method is needed to automate which DNSKEYs are picked to be | |||
| represented in the parent zone's DS records. One possibility is to | represented in the parent zone's DS records. One possibility is to | |||
| use flags in the DNSKEY record. If the SEP bit is set, this | use flags in the DNSKEY record. If the SEP bit is set, this | |||
| indicates that the DNSKEY is intended for use as a secure entry | indicates that the DNSKEY is intended for use as a secure entry | |||
| point. This DNSKEY signs the DNSKEY RRset, and the Parental Agent | point. This DNSKEY signs the DNSKEY RRset, and the Parental Agent | |||
| can calculate DS records based on that. But this fails to meet some | can calculate DS records based on that. But this fails to meet some | |||
| operating needs, including the child having no influence what DS | operating needs, including the child having no influence what DS | |||
| digest algorithms are used and DS records can only be published for | digest algorithms are used and DS records can only be published for | |||
| keys that are in the DNSKEY RRset, and thus this technique would not | keys that are in the DNSKEY RRset, and thus this technique would not | |||
| be compatible with Double-DS key rollover. | be compatible with Double-DS ( [RFC6781] ) key rollover. | |||
| 2.2. Relationship Between Parent and Child DNS Operator | 2.2. Relationship Between Parent and Child DNS Operator | |||
| In practical application, there are many different relationships | In practical application, there are many different relationships | |||
| between the parent and child DNS operators. The type of relationship | between the parent and Child DNS Operators. The type of relationship | |||
| affects how the Child DNS Operator communicates with the parent. | affects how the Child DNS Operator communicates with the parent. | |||
| This section will highlight some of the different situations, but is | This section will highlight some of the different situations, but is | |||
| by no means a complete list. | by no means a complete list. | |||
| Different communication paths: | Different communication paths: | |||
| o Direct/API: The child can change the delegation information via | o Direct/API: The child can change the delegation information via | |||
| automated/scripted means. EPP[RFC5730], used by many TLDs is an | automated/scripted means. EPP[RFC5730], used by many TLDs is an | |||
| example of this. Another example is the web service's | example of this. Another example is the web service's | |||
| programmatic interfaces that Registrars make available to their | programmatic interfaces that Registrars make available to their | |||
| Resellers. | Resellers. | |||
| o User Interface: The Child uses a (web) site set up by the Parental | o User Interface: The Child uses a (web) site set up by the Parental | |||
| Agent for updating delegation information. | Agent for updating delegation information. | |||
| o Indirect: The communication has to be transmitted via out-of-band | o Indirect: The communication has to be transmitted via out-of-band | |||
| between two parties, such as email, telephone etc.. This is common | between two parties, such as by email or telephone. This is | |||
| when the Child's DNS operator is neither the child itself nor the | common when the Child's DNS operator is neither the child itself | |||
| Registrar for the domain but a third party. | nor the Registrar for the domain but a third party. | |||
| o Multi-step Combinations: The information flows through an | o Multi-step Combinations: The information flows through an | |||
| intermediary. It is possible, but unlikely, that all the steps | intermediary. It is possible, but unlikely, that all the steps | |||
| are automated via API's and there are no humans are involved. | are automated via API's and there are no humans are involved. | |||
| A domain name holder (Child) may operate its own DNS servers or | A domain name holder (Child) may operate its own DNS servers or | |||
| outsource the operation. While we use the word parent as a singular, | outsource the operation. While we use the word parent as a singular, | |||
| parent can consist of single entity or a composite of many discrete | parent can consist of single entity or a composite of many discrete | |||
| parts that have rules and roles. We refer to the entity that the | parts that have rules and roles. We refer to the entity that the | |||
| child corresponds with as the Parent. | child corresponds with as the Parent. | |||
| IIn another common case an organization may delegate parts of its | In some cases an organization may delegate parts of its name-space to | |||
| name-space to be operated by a group that is not the same as that | be operated by a group that is not the same as that which operates | |||
| which operates the organization's DNS servers. In this case the flow | the organization's DNS servers. In this case the flow of information | |||
| of information is frequently handled in either an ad hoc manner or | is frequently handled in either an ad hoc manner or via some | |||
| via some corporate mechanism; this can range from email to fully- | corporate mechanism; this can range from email to fully-automated | |||
| automated operation. | operation. | |||
| 2.2.1. Solution Space | 2.2.1. Solution Space | |||
| This document is aimed at the cases in which there is a separation | This document is aimed at the cases in which there is a separation | |||
| between the child and parent. | between the child and parent. | |||
| A further complication is when the Child DNS Operator is not the | A further complication is when the Child DNS Operator is not the | |||
| Child. There are two common cases of this: | Child. There are two common cases of this: | |||
| a) The Parental Agent (e.g. registrar) handles the DNS operation. | a) The Parental Agent (e.g. registrar) handles the DNS operation. | |||
| skipping to change at page 7, line 13 ¶ | skipping to change at page 7, line 13 ¶ | |||
| DS vs DNSKEY agnostic, and allows operation with either. | DS vs DNSKEY agnostic, and allows operation with either. | |||
| 2.2.2. DNSSEC key change process | 2.2.2. DNSSEC key change process | |||
| After a Child DNS Operator first signs the zone, there is a need to | After a Child DNS Operator first signs the zone, there is a need to | |||
| interact with the Parent, for example via a delegation account | interact with the Parent, for example via a delegation account | |||
| interface, to "upload / paste-in the zone's DS information". This | interface, to "upload / paste-in the zone's DS information". This | |||
| action of logging in through the delegation account user interface | action of logging in through the delegation account user interface | |||
| authenticates that the user is authorized to change delegation | authenticates that the user is authorized to change delegation | |||
| information for the child published in the parent zone. In the case | information for the child published in the parent zone. In the case | |||
| where the "Child DNS Operator" does not have access to the | where the Child DNS Operator does not have access to the registration | |||
| registration account, the Child needs to perform the action. | account, the Child needs to perform the action. | |||
| At a later date, the Child DNS Operator may want to publish a new DS | At a later date, the Child DNS Operator may want to publish a new DS | |||
| record in the parent, either because they are rolling keys, or | record in the parent, either because they are changing keys, or | |||
| because they want to publish a stand-by key. This involves | because they want to publish a stand-by key. This involves | |||
| performing the same process as before. Furthermore when this is a | performing the same process as before. Furthermore when this is a | |||
| manual process with cut and paste, operational mistakes will happen | manual process with cut and paste, operational mistakes will happen | |||
| -- or worse, the update action is not performed at all. | -- or worse, the update action is not performed at all. | |||
| The Child DNS Operator may also introduce new keys, and can do so | The Child DNS Operator may also introduce new keys, and can do so | |||
| when old keys exist and can be used. The Child may also remove old | when old keys exist and can be used. The Child may also remove old | |||
| keys, but this document does not support removing all keys. This is | keys, but this document does not support removing all keys. This is | |||
| to avoid making signed zones unsigned. The Child may not enroll the | to avoid making signed zones unsigned. The Child may not enroll the | |||
| initial key or introduce a new key when there are no old keys that | initial key or introduce a new key when there are no old keys that | |||
| skipping to change at page 7, line 44 ¶ | skipping to change at page 7, line 44 ¶ | |||
| CDNSKEY. These records are used to convey, from one zone to its | CDNSKEY. These records are used to convey, from one zone to its | |||
| parent, the desired contents of the zone's DS resource record set | parent, the desired contents of the zone's DS resource record set | |||
| residing in the parent zone. | residing in the parent zone. | |||
| The CDS / CDNSKEY resource records are published in the child zone | The CDS / CDNSKEY resource records are published in the child zone | |||
| and gives the child control of what is published for it in the | and gives the child control of what is published for it in the | |||
| parental zone. The CDS / CDNSKEY RRset expresses what the child | parental zone. The CDS / CDNSKEY RRset expresses what the child | |||
| would like the DS RRset to look like after the change; it is a | would like the DS RRset to look like after the change; it is a | |||
| "replace" operation, and it is up to the consumer of the records to | "replace" operation, and it is up to the consumer of the records to | |||
| translate that into the appropriate add/delete operations in the | translate that into the appropriate add/delete operations in the | |||
| registration systems (and in the case of CDNSKEY, to generate the DS | provisioning systems (and in the case of CDNSKEY, to generate the DS | |||
| from the DNSKEY). If no CDS / CDNSKEY RRset is present in child, | from the DNSKEY). If no CDS / CDNSKEY RRset is present in child, | |||
| this means that no change is needed. | this means that no change is needed. | |||
| [[RFC Editor: Please remove this paragraph before publication] | [[RFC Editor: Please remove this paragraph before publication] | |||
| Version -04 of the ID that became this working group document (http:/ | Version -04 of the ID that became this working group document (http:/ | |||
| /tools.ietf.org/id/draft-kumari-ogud-dnsop-cds-04.txt) defined a new | /tools.ietf.org/id/draft-kumari-ogud-dnsop-cds-04.txt) defined a new | |||
| record (CTA) that could hold either a DS or a DNSKEY record (with a | record (CTA) that could hold either a DS or a DNSKEY record (with a | |||
| selector to differentiate between them). In a shocking development, | selector to differentiate between them). In a shocking development, | |||
| there was almost full consensus that this was horrid :-) ] | there was almost full consensus that this was horrid :-) ] | |||
| skipping to change at page 8, line 41 ¶ | skipping to change at page 8, line 41 ¶ | |||
| 4. Automating DS Maintainance With CDS/CDNSKEY records | 4. Automating DS Maintainance With CDS/CDNSKEY records | |||
| CDS/CDNSKEY resource records are intended to be "consumed" by | CDS/CDNSKEY resource records are intended to be "consumed" by | |||
| delegation trust maintainers. The use of CDS/CDNSKEY is optional. | delegation trust maintainers. The use of CDS/CDNSKEY is optional. | |||
| The child SHOULD publish both CDS and CDNSKEY resource records. If | The child SHOULD publish both CDS and CDNSKEY resource records. If | |||
| the child knows which the parent consumes, it MAY choose to only | the child knows which the parent consumes, it MAY choose to only | |||
| publish that record type (for example, some children wish the parent | publish that record type (for example, some children wish the parent | |||
| to publish a DS, but they wish to keep the DNSKEY "hidden" until | to publish a DS, but they wish to keep the DNSKEY "hidden" until | |||
| needed). If the child publishes both, the two RRsets MUST match in | needed). If the child publishes both, the two RRsets MUST match in | |||
| content. The parent should use whichever one they choose, but MUST | content. | |||
| NOT query for both and perform consistency checks between the CDS and | ||||
| CDNSKEY resource records. | ||||
| 4.1. CDS / CDNSKEY Processing Rules | 4.1. CDS / CDNSKEY Processing Rules | |||
| If there are no CDS / CDNSKEY RRset in the child, this signals that | If there are no CDS / CDNSKEY RRset in the child, this signals that | |||
| no change should be made to the current DS set. This means that, | no change should be made to the current DS set. This means that, | |||
| once the child and parent are in sync, the child DNS operator MAY | once the child and parent are in sync, the Child DNS Operator MAY | |||
| remove all CDS and CDNSKEY resource records from the zone. | remove all CDS and CDNSKEY resource records from the zone. | |||
| Following acceptance rules are placed on the CDS / CDNSKEY resource | Following acceptance rules are placed on the CDS / CDNSKEY resource | |||
| records as follows: | records as follows: | |||
| o Location: "the CDS / CDNSKEY resource records MUST be at the child | o Location: "the CDS / CDNSKEY resource records MUST be at the child | |||
| zone apex". | zone apex". | |||
| o Signer: "MUST be signed with a key that is represented in both the | o Signer: "MUST be signed with a key that is represented in both the | |||
| current DNSKEY and DS RRset's." | current DNSKEY and DS RRset's." | |||
| skipping to change at page 9, line 38 ¶ | skipping to change at page 9, line 35 ¶ | |||
| published a CDNSKEY RR, the Parent will have to calculate the DS | published a CDNSKEY RR, the Parent will have to calculate the DS | |||
| (using the requested digest algorithm) to do the comparison. | (using the requested digest algorithm) to do the comparison. | |||
| 6. Parent Side CDS / CDNSKEY Consumption | 6. Parent Side CDS / CDNSKEY Consumption | |||
| The CDS / CDNSKEY RRset SHOULD be used by the Parental Agent to | The CDS / CDNSKEY RRset SHOULD be used by the Parental Agent to | |||
| update the DS RRset in the parent zone. The Parental Agent for this | update the DS RRset in the parent zone. The Parental Agent for this | |||
| uses a tool that understands the CDS / CDNSKEY signing rules from | uses a tool that understands the CDS / CDNSKEY signing rules from | |||
| Section 4.1 so it may not be able to use a standard validator. | Section 4.1 so it may not be able to use a standard validator. | |||
| The parent MUST choose to accept either CDS or CDNSKEY resource | The parent MUST choose to use either CDNSKEY or CDS resource records | |||
| records (based upon local policy), and MUST NOT expect there to be | as their default updating mechanism. The parent MAY only accept | |||
| both. A parent MUST NOT perform a consistency check between CDS and | either CDNSKEY or CDS, but it MAY also accept both, so it can use the | |||
| CDNSKEY (other than for informational / debugging use) resource | other in the absence of the default updating mechanism, but it MUST | |||
| records. | NOT expect there to be both. | |||
| 6.1. Detecting a Changed CDS / CDNSKEY | 6.1. Detecting a Changed CDS / CDNSKEY | |||
| How the Parental Agent gets the CDS / CDNSKEY RRset may differ, below | How the Parental Agent gets the CDS / CDNSKEY RRset may differ, below | |||
| are two examples as how this can take place. | are two examples as how this can take place. | |||
| Polling The Parental Agent operates a tool that periodically checks | Polling The Parental Agent operates a tool that periodically checks | |||
| each of the children that has a DS record to see if there is a | each of the children that has a DS record to see if there is a | |||
| CDS or CDNSKEY RRset. | CDS or CDNSKEY RRset. | |||
| skipping to change at page 10, line 28 ¶ | skipping to change at page 10, line 24 ¶ | |||
| the "Pushing" case to assume that the Child is ready and thus accept | the "Pushing" case to assume that the Child is ready and thus accept | |||
| changes without delay. | changes without delay. | |||
| 6.1.1. CDS / CDNSKEY Polling | 6.1.1. CDS / CDNSKEY Polling | |||
| This is the only defined use of CDS / CDNSKEY resource records in | This is the only defined use of CDS / CDNSKEY resource records in | |||
| this document. There are limits to the scaleability of polling | this document. There are limits to the scaleability of polling | |||
| techniques, thus some other mechanism is likely to be specified later | techniques, thus some other mechanism is likely to be specified later | |||
| that addresses CDS / CDNSKEY resource recod usage in the situation | that addresses CDS / CDNSKEY resource recod usage in the situation | |||
| where polling does not scale to. Having said that Polling will work | where polling does not scale to. Having said that Polling will work | |||
| in many important cases like enterprises, universities, small TLDs | in many important cases such as enterprises, universities and smaller | |||
| etc. In many regulatory environments the registry is prohibited from | TLDs. In many regulatory environments the registry is prohibited | |||
| talking to the registrant. In most of these cases the registrant has | from talking to the registrant. In most of these cases the | |||
| a business relationship with the registrar, and so the registrar can | registrant has a business relationship with the registrar, and so the | |||
| offer this as a service. | registrar can offer this as a service. | |||
| If the CDS / CDNSKEY RRset does not exist, the Parental Agent MUST | If the CDS / CDNSKEY RRset does not exist, the Parental Agent MUST | |||
| take no action. Specifically it MUST NOT delete or alter the | take no action. Specifically it MUST NOT delete or alter the | |||
| existing DS RRset. | existing DS RRset. | |||
| 6.1.2. Other Mechanisms | 6.1.2. Other Mechanisms | |||
| It is assumed that other mechanisms will be implemented to trigger | It is assumed that other mechanisms will be implemented to trigger | |||
| the parent to look for an updated CDS / CDNSKEY RRsets. As the CDS / | the parent to look for an updated CDS / CDNSKEY RRsets. As the CDS / | |||
| CDNSKEY resource records are validated with DNSSEC, these mechanisms | CDNSKEY resource records are validated with DNSSEC, these mechanisms | |||
| can be unauthenticated (for example, a child could telephone its | can be unauthenticated (for example, a child could telephone its | |||
| parent and request that they process the new CDS or CDNSKEY resource | parent and request that they process the new CDS or CDNSKEY resource | |||
| records, an unauthenticated POST could be made to a webserver (with | records or an unauthenticated POST could be made to a webserver (with | |||
| rate-limiting), etc.) | rate-limiting).) | |||
| Other documents can specify the trigger conditions. | Other documents can specify the trigger conditions. | |||
| 6.2. Using the New CDS / CDNSKEY Records | 6.2. Using the New CDS / CDNSKEY Records | |||
| Regardless of how the Parental Agent detected changes to a CDS / | Regardless of how the Parental Agent detected changes to a CDS / | |||
| CDNSKEY RRset, the Parental Agent SHOULD use a DNSSEC validator to | CDNSKEY RRset, the Parental Agent SHOULD use a DNSSEC validator to | |||
| obtain a validated CDS / CDNSKEY RRset from the Child zone. The only | obtain a validated CDS / CDNSKEY RRset from the Child zone. The only | |||
| exception to this is if the parent perfoms some additional validation | exception to this is if the parent perfoms some additional validation | |||
| on the data to confirm that it is the "correct" key. This behavior | on the data to confirm that it is the "correct" key. This behavior | |||
| is NOT RECOMMENDED. | is NOT RECOMMENDED. | |||
| The Parental Agent MUST ensure that old versions of the CDS / CDNSKEY | The Parental Agent MUST ensure that previous versions of the CDS / | |||
| RRset do not overwrite newer versions. This MAY be accomplished by | CDNSKEY RRset do not overwrite more recent versions. This MAY be | |||
| checking that the signature inception in the RRSIG for CDS / CDNSKEY | accomplished by checking that the signature inception in the RRSIG | |||
| RRset is newer and/or the serial number on the child's SOA is | for CDS / CDNSKEY RRset is later and/or the serial number on the | |||
| greater. This may require the Parental Agent to maintain some state | child's SOA is greater. This may require the Parental Agent to | |||
| information. | maintain some state information. | |||
| The Parental Agent MAY take extra security measures. For example, to | The Parental Agent MAY take extra security measures. For example, to | |||
| mitigate the possibility that a Child's key signing key has been | mitigate the possibility that a Child's key signing key has been | |||
| compromised, the Parental Agent may, for example, inform (by email or | compromised, the Parental Agent may, for example, inform (by email or | |||
| other methods ) the Child DNS Operator of the change. However the | other methods ) the Child DNS Operator of the change. However the | |||
| precise out-of-band measures that a parent zone SHOULD take are | precise out-of-band measures that a parent zone SHOULD take are | |||
| outside the scope of this document. | outside the scope of this document. | |||
| Once the Parental Agent has obtained a valid CDS / CDNSKEY RRset it | Once the Parental Agent has obtained a valid CDS / CDNSKEY RRset it | |||
| MUST check the publication rules from section 4.1. In particular the | MUST check the publication rules from section 4.1. In particular the | |||
| Parental Agent MUST double check the Continuity rule and do its best | Parental Agent MUST check the Continuity rule and do its best not to | |||
| not to invalidate the Child zone. Once checked and if the | invalidate the Child zone. Once checked and if the information in | |||
| information in the CDS / CDNSKEY and DS differ it may apply the | the CDS / CDNSKEY and DS differ it may apply the changes to the | |||
| changes to the parent zone. If the parent consumes CDNSKEY, the | parent zone. If the parent consumes CDNSKEY, the parent should | |||
| parent should calculate the DS before doing this comparison. | calculate the DS before doing this comparison. | |||
| 6.2.1. Parent Calculates DS | 6.2.1. Parent Calculates DS | |||
| There are cases where the Parent wants to calculate the DS record due | There are cases where the Parent wants to calculate the DS record due | |||
| to policy reasons. In this case, the Child publishes CDNSKEY records | to policy reasons. In this case, the Child publishes CDNSKEY records | |||
| and the parent calculates the DS records on behalf of the children. | and the parent calculates the DS records on behalf of the children. | |||
| When a Parent operates in "calculate DS" mode it can operate in one | When a Parent operates in "calculate DS" mode it can operate in one | |||
| of two sub-modes | of two sub-modes | |||
| skipping to change at page 12, line 49 ¶ | skipping to change at page 12, line 47 ¶ | |||
| parent (possibly via a registrar web interface) and remove any | parent (possibly via a registrar web interface) and remove any | |||
| compromised DS keys. | compromised DS keys. | |||
| A compromise of the account with the parent (e.g. registrar) will not | A compromise of the account with the parent (e.g. registrar) will not | |||
| be mitigated by this technique, as the "new registrant" can delete/ | be mitigated by this technique, as the "new registrant" can delete/ | |||
| modify the DS records at will. | modify the DS records at will. | |||
| While it may be tempting, this SHOULD NOT be used for initial | While it may be tempting, this SHOULD NOT be used for initial | |||
| enrollment of keys since there is no way to ensure that the initial | enrollment of keys since there is no way to ensure that the initial | |||
| key is the correct one. If is used, strict rules for inclusion of | key is the correct one. If is used, strict rules for inclusion of | |||
| keys like hold down times, challenge data inclusion etc., ought to be | keys such as hold down times, challenge data inclusion or similar, | |||
| used, along with some kind of challenge mechanism. A child cannot | ought to be used, along with some kind of challenge mechanism. A | |||
| use this mechanism to go from signed to unsigned (publishing an empty | child cannot use this mechanism to go from signed to unsigned | |||
| CDS / CDNSKEY RRset means no-change should be made in the parent). | (publishing an empty CDS / CDNSKEY RRset means no-change should be | |||
| made in the parent). | ||||
| The CDS RR type should allow for enhanced security by simplifying | The CDS RR type should allow for enhanced security by simplifying | |||
| process. Since rollover is automated, updating a DS RRset by other | process. Since key change is automated, updating a DS RRset by other | |||
| means may be regarded as unusual and subject to extra security | means may be regarded as unusual and subject to extra security | |||
| checks. | checks. | |||
| As this introduces a new mechanism to update information in the | As this introduces a new mechanism to update information in the | |||
| parent it MUST be clear who is fetching the records and creating the | parent it MUST be clear who is fetching the records and creating the | |||
| appropriate records in the parent zone. Specifically some operations | appropriate records in the parent zone. Specifically some operations | |||
| may use other mechanisms than what is described here. For example, a | may use other mechanisms than what is described here. For example, a | |||
| registrar may assume that it is maintaining the DNSSEC key | registrar may assume that it is maintaining the DNSSEC key | |||
| information in the registry, and may have this cached. If the | information in the registry, and may have this cached. If the | |||
| registry is fetching the CDS / CDNSKEY RRset then the registry and | registry is fetching the CDS / CDNSKEY RRset then the registry and | |||
| skipping to change at page 13, line 30 ¶ | skipping to change at page 13, line 28 ¶ | |||
| result of such a situation is unclear. Therefore, this mechanism | result of such a situation is unclear. Therefore, this mechanism | |||
| SHOULD NOT be use to bypass intermediaries that might cache | SHOULD NOT be use to bypass intermediaries that might cache | |||
| information and because of that get the wrong state. | information and because of that get the wrong state. | |||
| If there is a failure in applying changes in child zone to all DNS | If there is a failure in applying changes in child zone to all DNS | |||
| servers listed in either parent or child NS set it is possible that | servers listed in either parent or child NS set it is possible that | |||
| the Parental agent may get confused, either because it gets different | the Parental agent may get confused, either because it gets different | |||
| answers on different checks or CDS RR validation fails. In the worst | answers on different checks or CDS RR validation fails. In the worst | |||
| case, the Parental Agent performs an action reversing a prior action | case, the Parental Agent performs an action reversing a prior action | |||
| but after the child signing system decides to take the next step in | but after the child signing system decides to take the next step in | |||
| rollover, resulting in a broken delegation. | the key change process, resulting in a broken delegation. | |||
| DNS is a loosely coherent distributed database with local caching; | DNS is a loosely coherent distributed database with local caching; | |||
| therefore, it is important to allow old information to expire from | therefore, it is important to allow old information to expire from | |||
| caches before deleting DS or DNSKEY records. Similarly, it is | caches before deleting DS or DNSKEY records. Similarly, it is | |||
| important to allow new records to propagate through the DNS before | important to allow new records to propagate through the DNS before | |||
| use, see [RFC6781] and [I-D.key-time] | use, see [RFC6781] and [I-D.key-time] | |||
| It is common practice for users to outsource their DNS hosting to a | It is common practice for users to outsource their DNS hosting to a | |||
| 3rd party DNS provider. In order for that provider to be able to | 3rd party DNS provider. In order for that provider to be able to | |||
| maintain the DNSSEC information some users give the provider their | maintain the DNSSEC information some users give the provider their | |||
| skipping to change at page 16, line 19 ¶ | skipping to change at page 16, line 19 ¶ | |||
| In many RRR cases the Registrar and Registry communicate via | In many RRR cases the Registrar and Registry communicate via | |||
| EPP[RFC5730] and use the EPP DNSSEC extension [RFC5910]. In a number | EPP[RFC5730] and use the EPP DNSSEC extension [RFC5910]. In a number | |||
| of ccTLDs there are other mechanisms in use as well as EPP, but in | of ccTLDs there are other mechanisms in use as well as EPP, but in | |||
| general there seems to be a movement towards EPP usage when DNSSEC is | general there seems to be a movement towards EPP usage when DNSSEC is | |||
| enabled in the TLD. | enabled in the TLD. | |||
| Appendix B. Changes / Author Notes. | Appendix B. Changes / Author Notes. | |||
| [RFC Editor: Please remove this section before publication ] | [RFC Editor: Please remove this section before publication ] | |||
| WG-07 to WG-08 | ||||
| o Incorporated text from Antoin Verschuren at the end of Section 6. | ||||
| o Comments from Paul Hoffman and Tim W | ||||
| WG-06 to WG-07 | WG-06 to WG-07 | |||
| o Incorporated nits / editorial comments from Tim Wicinski. | o Incorporated nits / editorial comments from Tim Wicinski. | |||
| o | o | |||
| * Reference for Mark's draft was incorrect, Wes Hardaker doesn't | * Reference for Mark's draft was incorrect, Wes Hardaker doesn't | |||
| work for ISC :-P | work for ISC :-P | |||
| * Normalized CDS record / CDS resource record / records / etc. | * Normalized CDS record / CDS resource record / records / etc. | |||
| End of changes. 26 change blocks. | ||||
| 62 lines changed or deleted | 64 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||