| < draft-ietf-dnsop-delegation-trust-maintainance-03.txt | draft-ietf-dnsop-delegation-trust-maintainance-04.txt > | |||
|---|---|---|---|---|
| dnsop W. Kumari | dnsop W. Kumari | |||
| Internet-Draft Google | Internet-Draft Google | |||
| Intended status: Informational O. Gudmundsson | Intended status: Informational O. Gudmundsson | |||
| Expires: August 12, 2014 Shinkuro Inc. | Expires: October 12, 2014 Shinkuro Inc. | |||
| G. Barwood | G. Barwood | |||
| February 8, 2014 | April 10, 2014 | |||
| Automating DNSSEC delegation trust maintenance | Automating DNSSEC delegation trust maintenance | |||
| draft-ietf-dnsop-delegation-trust-maintainance-03 | draft-ietf-dnsop-delegation-trust-maintainance-04 | |||
| 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 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. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| 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 August 12, 2014. | This Internet-Draft will expire on October 12, 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 25 ¶ | skipping to change at page 2, line 25 ¶ | |||
| 2.1. DNS delegations . . . . . . . . . . . . . . . . . . . . . 4 | 2.1. DNS delegations . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2.2. Relationship between Parent and Child DNS operator . . . 5 | 2.2. Relationship between Parent and Child DNS operator . . . 5 | |||
| 2.2.1. Solution Space . . . . . . . . . . . . . . . . . . . 6 | 2.2.1. Solution Space . . . . . . . . . . . . . . . . . . . 6 | |||
| 2.2.2. DNSSEC key change process . . . . . . . . . . . . . . 7 | 2.2.2. DNSSEC key change process . . . . . . . . . . . . . . 7 | |||
| 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 . . . . . . . . . . . . . 9 | 4.1. CDS / CDNSKEY processing rules . . . . . . . . . . . . . 9 | |||
| 5. Child's CDS / CDNSKEY Publication . . . . . . . . . . . . . . 9 | 5. Child's CDS / CDNSKEY Publication . . . . . . . . . . . . . . 9 | |||
| 6. Parent side CDS / CDNSKEY Consumption . . . . . . . . . . . . 9 | 6. Parent side CDS / CDNSKEY Consumption . . . . . . . . . . . . 10 | |||
| 6.1. Detecting a changed CDS / CDNSKEY . . . . . . . . . . . . 10 | 6.1. Detecting a changed CDS / CDNSKEY . . . . . . . . . . . . 10 | |||
| 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 . . . . . . . . . . . . . . . . . . 11 | |||
| 6.2. Using the new CDS / CDNSKEY records . . . . . . . . . . . 11 | 6.2. Using the new CDS / CDNSKEY records . . . . . . . . . . . 11 | |||
| 6.2.1. Parent calculates DS . . . . . . . . . . . . . . . . 11 | 6.2.1. Parent calculates DS . . . . . . . . . . . . . . . . 12 | |||
| 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 . . . . . . . . . . . . . . . . . . . . . . 13 | 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 | 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 11.1. Normative References . . . . . . . . . . . . . . . . . . 14 | 11.1. Normative References . . . . . . . . . . . . . . . . . . 14 | |||
| 11.2. Informative References . . . . . . . . . . . . . . . . . 14 | 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 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 18 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 1. Introduction | 1. Introduction | |||
| 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. | |||
| skipping to change at page 3, line 51 ¶ | skipping to change at page 3, line 51 ¶ | |||
| [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. | such as a button on a webpage, a REST interface, DNS NOTIFY, etc. | |||
| 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 maintenance of DNSSEC key material, specifically the introduction | ||||
| or complete removal of all keys. Because of this, alternate | ||||
| communications mechanisms must always exist, potentially introducing | ||||
| more complexity. | ||||
| 1.1. Terminology | 1.1. Terminology | |||
| The terminology we use is defined in this section | The terminology we use is defined in this section | |||
| 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 | o Parent DNS Operator: "The entity that maintains and publishes the | |||
| zone information for the parent DNS" | 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 | |||
| skipping to change at page 6, line 31 ¶ | skipping to change at page 6, line 34 ¶ | |||
| some corporate mechanism; this can range from email to fully- | some corporate mechanism; this can range from email to fully- | |||
| automated operation. The word enterprise above covers all | automated operation. The word enterprise above covers all | |||
| organizations in which the domains are not sold on the open market | organizations in which the domains are not sold on the open market | |||
| and there is some relationship between the entities. | and there is some relationship between the entities. | |||
| 2.2.1. Solution Space | 2.2.1. Solution Space | |||
| This document is aimed at the cases in which there is an | This document is aimed at the cases in which there is an | |||
| organizational separation of the child and parent. | organizational separation of 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 | |||
| b) A third party takes care of the DNS operation. | b) A third party takes care of the DNS operation. | |||
| If the Parental Agent is the DNS operator, life is much easier; the | If the Parental Agent is the DNS operator, life is much easier; the | |||
| Parental Agent can inject any delegation changes directly into the | Parental Agent can inject any delegation changes directly into the | |||
| Parent's Provisioning system. The techniques described below are not | Parent's Provisioning system. The techniques described below are not | |||
| needed in the case when Parental Agent is the DNS operator. | needed in the case when Parental Agent is the DNS operator. | |||
| skipping to change at page 7, line 9 ¶ | skipping to change at page 7, line 10 ¶ | |||
| Some parents want the child to express their DNSKEYS in the form of | Some parents want the child to express their DNSKEYS in the form of | |||
| DS records, while others want to receive the DNSKEY records and | DS records, while others want to receive the DNSKEY records and | |||
| calculate the DS records themselves. There is no consensus on which | calculate the DS records themselves. There is no consensus on which | |||
| method is better; both have good reasons to exist. The proposal | method is better; both have good reasons to exist. The proposal | |||
| below can operate with both models, but the child needs to be aware | below can operate with both models, but the child needs to be aware | |||
| of the parental policies. | of the parental policies. | |||
| 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 the delegation account | interact with the Parent, for example via the delegation account | |||
| interface, to "upload / paste-in the zone's DS information". The | interface, to "upload / paste-in the zone's DS information". The | |||
| 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 account, the Child needs to perform the action. | registration 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 rolling 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 | ||||
| when old keys exist and can be used. The Child may also remove old | ||||
| keys, but we do not support removing all keys. This is to avoid | ||||
| making signed zones unsigned. | ||||
| The Child may not introduce a new key when no old keys can be used, | ||||
| and nor may it remove the last key from the RRSet of the zone apex. | ||||
| The Child may not enroll the initial key or introduce a new key when | ||||
| there are no old keys that can be used, because there is no way to | ||||
| validate the information. [TODO ADD TEXT RE REMOVAL) | ||||
| 3. CDS / CDNSKEY (Child DS/ Child DNSKEY) record definitions | 3. CDS / CDNSKEY (Child DS/ Child DNSKEY) record definitions | |||
| This document specifies two new DNS RRtypes (CDS and CDNSKEY) that | This document specifies two new resource records, CDS and CDNSKEY. | |||
| indicates what the Child wants the parent's DS RRset to contain. It | These records are used to convey, from one zone to it's parent, the | |||
| allows the Child to present DS records and / or DNSKEY records (for | desired contents of the zone's DS resource record set residing in the | |||
| those parents who would rather generate the DS records for their | parent zone. | |||
| children). | ||||
| The CDS / CDNSKEY records are published in the child zone and gives | The CDS / CDNSKEY records are published in the child zone and gives | |||
| the child control of what is published for it in the parental zone. | the child control of what is published for it in the parental zone. | |||
| The CDS / CDNSKEY RRset expresses what the child would like the DS | The CDS / CDNSKEY RRset expresses what the child would like the DS | |||
| RRset to look like after the change; it is a "replace" operation, and | RRset to look like after the change; it is a "replace" operation, and | |||
| it is up to the consumer of the records to translate that into the | it is up to the consumer of the records to translate that into the | |||
| appropriate add/delete operations in the registration systems (and in | appropriate add/delete operations in the registration systems (and in | |||
| the case of CDNSKEY, to generate the DS from the DNSKEY). If no CDS | the case of CDNSKEY, to generate the DS from the DNSKEY). If no CDS | |||
| / CDNSKEY RRset is present in child, this means that no change is | / CDNSKEY RRset is present in child, this means that no change is | |||
| needed. | needed. | |||
| skipping to change at page 8, line 40 ¶ | skipping to change at page 8, line 49 ¶ | |||
| Some parents prefer to accept DNSSEC key information in DS format, | Some parents prefer to accept DNSSEC key information in DS format, | |||
| some parents prefer to accept it in DNSKEY format, and calculate the | some parents prefer to accept it in DNSKEY format, and calculate the | |||
| DS record on the child's behalf. Each method has pros and cons, both | DS record on the child's behalf. Each method has pros and cons, both | |||
| technical and policy. This solution is DS vs DNSKEY agnostic, and | technical and policy. This solution is DS vs DNSKEY agnostic, and | |||
| allows operation with either. | allows operation with either. | |||
| If the child knows what the parent prefers, they can publish the | If the child knows what the parent prefers, they can publish the | |||
| parent's preferred record type. If the child does not know (or | parent's preferred record type. If the child does not know (or | |||
| simply chooses to), they can publish both CDS and CDNSKEY. If the | simply chooses to), they can publish both CDS and CDNSKEY. If the | |||
| child publishes both, the two RRsets they SHOULD match in content. | child publishes both, the two RRsets they MUST match in content. The | |||
| The parent should use whichever one they choose, but SHOULD NOT query | parent should use whichever one they choose, but SHOULD NOT query for | |||
| for both and perform consistency checks between the CDS and CDNSKEY | both and perform consistency checks between the CDS and CDNSKEY | |||
| records. | records. | |||
| [Editor note: It is not an error for a child to have published CDS | [Editor note: It is not an error for a child to have published CDS | |||
| records and not have CDNSKEYs that hash to those records, nor for | records and not have CDNSKEYs that hash to those records, nor for | |||
| there to be CDNSKEY records without matching DS records. This is | there to be CDNSKEY records without matching DS records. This is | |||
| because a child might have been publishing CDS records and then the | because a child might have been publishing CDS records and then the | |||
| parent's policy changes to require CDNSKEY records. The child might | parent's policy changes to require CDNSKEY records. The child might | |||
| forget to remove the CDS, etc. This avoids all sorts of error | forget to remove the CDS, etc. This avoids all sorts of error | |||
| conditions / complexity, etc.] | conditions / complexity, etc.] | |||
| 4.1. CDS / CDNSKEY processing rules | 4.1. CDS / CDNSKEY processing rules | |||
| If there are no CDS / CDNSKEY resource records in the child, this | If there are no CDS / CDNSKEY resource records in the child, this | |||
| signals that no change should be made to the current DS set. This | signals 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 | means that, once the child and parent are in sync, the child DNS | |||
| operator MAY remove all CDS records from the zone. | operator SHOULD remove all CDS records from the zone. | |||
| Following acceptance rules are placed on the CDS / CDNSKEY records as | Following acceptance rules are placed on the CDS / CDNSKEY records as | |||
| follows: | follows: | |||
| o Location: "the CDS / CDNSKEY record MUST be at the child zone | o Location: "the CDS / CDNSKEY record MUST be at the child zone | |||
| apex". | 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." | |||
| o Continuity: "SHOULD NOT break the current delegation if applied to | o Continuity: "MUST NOT break the current delegation if applied to | |||
| DS RRset" | DS RRset" | |||
| If any these conditions fail the CDS / CDNSKEY record MUST be | If any these conditions fail the CDS / CDNSKEY record MUST be | |||
| ignored. | ignored. | |||
| 5. Child's CDS / CDNSKEY Publication | 5. Child's CDS / CDNSKEY Publication | |||
| Child DNS Operator SHOULD only publish a CDS or CDNSKEY RRset when it | Child DNS Operator SHOULD only publish a CDS or CDNSKEY RRset when it | |||
| wants to make a change to the DS RRset in the Parent. The CDS / | wants to make a change to the DS RRset in the Parent. In order to be | |||
| CDNSKEY RRset SHOULD be compliant with the rules in Section 4.1. | valid, the CDS / CDNSKEY RRset MUST be compliant with the rules in | |||
| When the Parent DS is "in-sync" with the CDS / CDNSKEY, the Child DNS | Section 4.1. When the Parent DS is "in-sync" with the CDS / CDNSKEY, | |||
| Operator MAY delete the CDS / CDNSKEY RRset(s). Note that if the | the Child DNS Operator SHOULD delete the CDS / CDNSKEY RRset(s). | |||
| child has published a DNSKEY RR in the CDS, it will have to calculate | Note that if the child has published a CDNSKEY RR, the Parent will | |||
| the DS (using the requested digest algorithm) to do the comparison. | have to calculate the DS (using the requested digest algorithm) to do | |||
| the comparison. | ||||
| A child MAY publish both CDS and CDNSKEY. If a child chooses to | A child MAY publish both CDS and CDNSKEY. If a child chooses to | |||
| publish both, it SHOULD attempt to maintain consistency (a matching | publish both, it MUST attempt to maintain consistency (a matching CDS | |||
| CDS for each CDNSKEY) | for each CDNSKEY). | |||
| 6. Parent side CDS / CDNSKEY Consumption | 6. Parent side CDS / CDNSKEY Consumption | |||
| The CDS / CDNSKEY RRset MAY be used by the Parental Agent to update | The CDS / CDNSKEY RRset SHOULD be used by the Parental Agent to | |||
| the DS RRset in the parent zone. The Parental Agent for this uses a | update the DS RRset in the parent zone. The Parental Agent for this | |||
| 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. | |||
| Parent SHOULD treat the Continuity rule as "MUST". | ||||
| The parent MUST choose to accept either CDS or CDNSKEY records, and | The parent MUST choose to accept either CDS or CDNSKEY records, and | |||
| MUST NOT expect there to be both. A parent SHOULD NOT perform a | MUST NOT expect there to be both. A parent SHOULD NOT perform a | |||
| consistency check between CDS and CDNSKEY (other than for | consistency check between CDS and CDNSKEY (other than for | |||
| informational / debugging use). | informational / debugging use). | |||
| 6.1. Detecting a changed CDS / CDNSKEY | 6.1. Detecting a changed CDS / CDNSKEY | |||
| How the Parental Agent gets the CDS / CDNSKEY record may differ, | How the Parental Agent gets the CDS / CDNSKEY record may differ, | |||
| below are two examples as how this can take place. | below are two examples as how this can take place. | |||
| skipping to change at page 11, line 4 ¶ | skipping to change at page 11, line 18 ¶ | |||
| 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 record. As the CDS / | the parent to look for an updated CDS / CDNSKEY record. As the CDS / | |||
| CDNSKEY records are validated with DNSSEC, these mechanisms can be | CDNSKEY records are validated with DNSSEC, these mechanisms can be | |||
| unauthenticated (for example, a child could telephone its parent and | unauthenticated (for example, a child could telephone its parent and | |||
| request that they process the new CDS or CDNSKEY record, an | request that they process the new CDS or CDNSKEY record, an | |||
| unauthenticated POST could be made to a webserver (with rate- | unauthenticated POST could be made to a webserver (with rate- | |||
| limiting), etc.) | limiting), etc.) | |||
| 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 RR, the Parental Agent MUST use a DNSSEC validator to obtain | CDNSKEY RR, the Parental Agent MUST use a DNSSEC validator to obtain | |||
| a validated CDS / CDNSKEY RRset from the Child zone. It would be a | a validated CDS / CDNSKEY RRset from the Child zone. It would be a | |||
| good idea if the Parental Agent checked all NS RRs listed at the | good idea if the Parental Agent checked all NS RRs listed at the | |||
| delegation. | delegation. | |||
| The Parental Agent MUST ensure that old versions of the CDS / CDNSKEY | The Parental Agent MUST ensure that old versions of the CDS / CDNSKEY | |||
| RRset do not overwrite newer versions. This MAY be accomplished by | RRset do not overwrite newer versions. This MAY be accomplished by | |||
| checking that the signature inception in the RRSIG for CDS / CDNSKEY | checking that the signature inception in the RRSIG for CDS / CDNSKEY | |||
| is newer and/or the serial number on the child's SOA is greater. | is newer and/or the serial number on the child's SOA is greater. | |||
| This may require the Parental Agent to maintain some state | This may require the Parental Agent to maintain some state | |||
| information. | 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 it MAY | Once the Parental Agent has obtained a valid CDS / CDNSKEY it MUST | |||
| double check the publication rules from section 4.1. In particular | double check the publication rules from section 4.1. In particular | |||
| the Parental Agent MUST double check the Continuity rule and do its | the Parental Agent MUST double check the Continuity rule and do its | |||
| best not to invalidate the Child zone. Once checked and if the CDS / | best not to invalidate the Child zone. Once checked and if the CDS / | |||
| CDNSKEY and DS "differ" it may apply the changes to the parent zone. | CDNSKEY and DS "differ" it may apply the changes to the parent zone. | |||
| If the parent consumes CDNSKEY, the parent should calculate the DS | If the parent consumes CDNSKEY, the parent should calculate the DS | |||
| before doing this comparison. | 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 | |||
| containing DNSKEYs. | and the parent calculates the DS records on behalf of the children. | |||
| The parent calculates the DS records on behalf of the children. The | ||||
| DNS Parent needs to publish guidelines for the children as to what | ||||
| digest algorithms are acceptable in the CDS record. | ||||
| 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 | |||
| full i.e. it only publishes DS records it calculates from DNSKEY | full i.e. it only publishes DS records it calculates from DNSKEY | |||
| records, | records, | |||
| augment i.e. it will make sure there are DS records for the digest | augment i.e. it will make sure there are DS records for the digest | |||
| algorithm(s) it requires(s). | algorithm(s) it requires(s). | |||
| Implications on Parental Agent are that the CDNSKEY and DS are not | IIn the case the parent fetch the CDNSKEY and calculate the DS it MAY | |||
| exactly the same after update thus it needs to take that into | be the case that the DS published in the parent zone is not identical | |||
| consideration when checking CDNSKEY records. Same goes for the Child | with the data in the CDS record made available by the child. | |||
| DNS Operator, it needs to be able to detect that the new DS RRset is | ||||
| "equivalent" to the current CDNSKEY RRset, thus it can remove the | ||||
| CDNSKEY RRset. | ||||
| 7. IANA Considerations | 7. IANA Considerations | |||
| IANA has assigned RR Type code 59 for CDS. This was done for an | IANA has assigned RR Type code 59 for CDS. This was done for an | |||
| earlier version of this document[I-D.ds-publish] This document is to | earlier version of this document[I-D.ds-publish] This document is to | |||
| become the reference for CDS RRtype. | become the reference for CDS RRtype. | |||
| IANA is requested to assign another RR Type for the CDNSKEY. | IANA is requested to assign another RR Type for the CDNSKEY. | |||
| 8. Privacy Considerations | 8. Privacy Considerations | |||
| skipping to change at page 13, line 15 ¶ | skipping to change at page 13, line 24 ¶ | |||
| keys like hold down times, challenge data inclusion etc., ought to be | keys like hold down times, challenge data inclusion etc., ought to be | |||
| used, along with some kind of challenge mechanism. A child cannot | used, along with some kind of challenge mechanism. A child cannot | |||
| use this mechanism to go from signed to unsigned (publishing an empty | use this mechanism to go from signed to unsigned (publishing an empty | |||
| CDS / CDNSKEY RRset means no-change should be made in the parent). | 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 rollover 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 | ||||
| parent it MUST be clear who is fetching the records and creating the | ||||
| appropriate records in the parent zone. Specifically some operations | ||||
| may use other mechanisms than what is described here. For example, a | ||||
| registrar may assume that it is maintaining the DNSSEC key | ||||
| information in the registry, and may have this cached. If the | ||||
| registry is fetching the CDS / CDNSKEY then the registry and | ||||
| registrar may have different views of the DNSSEC key material and the | ||||
| result of such a situation is unclear. Because of this, this | ||||
| mechanism SHOULD NOT be use to bypass intermediaries that might cache | ||||
| 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 not perform action because | the Parental agent may get confused either not perform action because | |||
| it gets different answers on different checks or CDS validation | it gets different answers on different checks or CDS validation | |||
| fails. In the worst case, Parental Agent performs an action | fails. In the worst case, Parental Agent performs an action | |||
| reversing a prior action but after the child signing system decides | reversing a prior action but after the child signing system decides | |||
| to take the next step in rollover, resulting in a broken delegation. | to take the next step in rollover, 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 | |||
| skipping to change at page 13, line 46 ¶ | skipping to change at page 14, line 19 ¶ | |||
| security. | security. | |||
| By automating the maintenance of the DNSSEC key information (and | By automating the maintenance of the DNSSEC key information (and | |||
| removing humans from the process) we expect to decrease the number of | removing humans from the process) we expect to decrease the number of | |||
| DNSSEC related outages, which should increase DNSSEC deployment. | DNSSEC related outages, which should increase DNSSEC deployment. | |||
| 10. Acknowledgements | 10. Acknowledgements | |||
| We would like to thank a large number of folk, including: Mark | We would like to thank a large number of folk, including: Mark | |||
| Andrews, Joe Abley, Jaap Akkerhuis, Roy Arends, Doug Barton, Brian | Andrews, Joe Abley, Jaap Akkerhuis, Roy Arends, Doug Barton, Brian | |||
| Dickinson, Paul Ebersman, Tony Finch, Patrik Faltsrom, Jim Galvin, | Dickinson, Paul Ebersman, Tony Finch, Patrik Faltstrom, Jim Galvin, | |||
| Paul Hoffman, Samir Hussain, Tatuya Jinmei, Olaf Kolkman, Cricket | Paul Hoffman, Samir Hussain, Tatuya Jinmei, Olaf Kolkman, Cricket | |||
| Liu, Stephan Lagerholm, Matt Larson, Marco Sanz, Antoin Verschuren, | Liu, Stephan Lagerholm, Matt Larson, Marco Sanz, Antoin Verschuren, | |||
| Suzanne Woolf, Paul Wouters, Matthijs Meeking, John Dickinson, | Suzanne Woolf, Paul Wouters, Matthijs Meeking, John Dickinson, | |||
| Timothe Litt and Edward Lewis. | Timothe Litt and Edward Lewis. | |||
| Special thanks to Wes Hardaker for contributing significant text and | Special thanks to Wes Hardaker for contributing significant text and | |||
| creating the complementary (CSYNC) solution, and to Paul Hoffman and | creating the complementary (CSYNC) solution, and to Paul Hoffman and | |||
| Mukund Sivaraman for text and review. | Mukund Sivaraman for text and review. | |||
| There were a number of other folk with whom we discussed this, | There were a number of other folk with whom we discussed this, | |||
| skipping to change at page 16, line 9 ¶ | skipping to change at page 16, line 29 ¶ | |||
| 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-03 to WG-04 | ||||
| o Large number of comments and changes from Patrik. | ||||
| WG-02 to WG-03 | WG-02 to WG-03 | |||
| o Fixed some references to RFC 5011 - from Samir Hussain. | o Fixed some references to RFC 5011 - from Samir Hussain. | |||
| o Fixed some spelling / typos - from Samir Hussain. | o Fixed some spelling / typos - from Samir Hussain. | |||
| o A number of clarifiations on the meaning on an empty / non- | o A number of clarifiations on the meaning on an empty / non- | |||
| existant CDS RRset - thanks to JINMEI, Tatuya | existant CDS RRset - thanks to JINMEI, Tatuya | |||
| o Be consistent in mentioning both CDS and CDNSKEY throughout the | o Be consistent in mentioning both CDS and CDNSKEY throughout the | |||
| End of changes. 32 change blocks. | ||||
| 51 lines changed or deleted | 75 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/ | ||||