| < draft-ietf-dnsop-maintain-ds-03.txt | draft-ietf-dnsop-maintain-ds-04.txt > | |||
|---|---|---|---|---|
| dnsop O. Gudmundsson | dnsop O. Gudmundsson | |||
| Internet-Draft CloudFlare | Internet-Draft CloudFlare | |||
| Intended status: Standards Track P. Wouters | Intended status: Standards Track P. Wouters | |||
| Expires: December 12, 2016 Red Hat | Expires: May 4, 2017 Red Hat | |||
| June 10, 2016 | October 31, 2016 | |||
| Managing DS records from parent via CDS/CDNSKEY | Managing DS records from parent via CDS/CDNSKEY | |||
| draft-ietf-dnsop-maintain-ds-03 | draft-ietf-dnsop-maintain-ds-04 | |||
| Abstract | Abstract | |||
| RFC7344 specifies how DNS trust can be partially maintained in-band | RFC7344 specifies how DNS trust can be maintained across key | |||
| between parent and child. There are two features missing in that | rollovers in-band between parent and child. This document elevates | |||
| specification: initial trust setup and removal of trust anchor. This | RFC7344 from informational to standards track and adds a standard | |||
| document addresses both these omissions. | track method for initial trust setup and removal of secure entry | |||
| point. | ||||
| Changing a domain's DNSSEC status can be a complicated matter | Changing a domain's DNSSEC status can be a complicated matter | |||
| involving multiple unrelated parties. Some of these parties, such as | involving multiple unrelated parties. Some of these parties, such as | |||
| the DNS operator, might not even be known by all the organizations | the DNS operator, might not even be known by all the organizations | |||
| involved. The inability to disable DNSSEC via in-band signalling is | involved. The inability to disable DNSSEC via in-band signaling is | |||
| seen as a problem or liability that prevents some DNSSEC adoption at | seen as a problem or liability that prevents some DNSSEC adoption at | |||
| large scale. This document adds a method for in-band signalling of | large scale. This document adds a method for in-band signaling of | |||
| these DNSSEC status changes. | these DNSSEC status changes. | |||
| Initial trust is considered in general to be a hard technical | This document describes reasonable policies to ease deployment of the | |||
| problem, this document sets forth reasonable policies that clarify | initial acceptance of new secure entry points (DS records) | |||
| and simplify the initial acceptance policy. | ||||
| It is preferable that operators collaborate on the transfer or move | ||||
| of a domain. The best method is to perform a Key Signing Key ("KSK") | ||||
| plus Zone Signing Key ("ZSK") rollover. If that is not possible, the | ||||
| method using an unsigned intermediate state described in this | ||||
| document can be used to move the domain between two parties. This | ||||
| leaves the domain temporarily unsigned and vulnerable to DNS | ||||
| spoofing, but that is preferred over the alternative of validation | ||||
| failures due to a mismatched DS and DNSKEY record. | ||||
| 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 December 12, 2016. | This Internet-Draft will expire on May 4, 2017. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2016 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 | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 1.1. Introducing a DS record . . . . . . . . . . . . . . . . . 3 | 1.1. Introducing a DS record . . . . . . . . . . . . . . . . . 3 | |||
| 1.2. Removing a DS Record . . . . . . . . . . . . . . . . . . 3 | 1.2. Removing a DS Record . . . . . . . . . . . . . . . . . . 3 | |||
| 1.3. Notation . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1.3. Notation . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 1.4. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 | 1.4. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2. The Three Uses of CDS . . . . . . . . . . . . . . . . . . . . 4 | 2. The Three Uses of CDS . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2.1. The meaning of the CDS RRset . . . . . . . . . . . . . . 5 | 2.1. The meaning of the CDS RRset . . . . . . . . . . . . . . 5 | |||
| 3. Enabling DNSSEC via CDS/CDNSKEY . . . . . . . . . . . . . . . 5 | 3. Enabling DNSSEC via CDS/CDNSKEY . . . . . . . . . . . . . . . 5 | |||
| 3.1. Accept policy via authenticated channel . . . . . . . . . 5 | 3.1. Accept policy via authenticated channel . . . . . . . . . 6 | |||
| 3.2. Accept with extra checks . . . . . . . . . . . . . . . . 5 | 3.2. Accept with extra checks . . . . . . . . . . . . . . . . 6 | |||
| 3.3. Accept after delay . . . . . . . . . . . . . . . . . . . 6 | 3.3. Accept after delay . . . . . . . . . . . . . . . . . . . 6 | |||
| 3.4. Accept with challenge . . . . . . . . . . . . . . . . . . 6 | 3.4. Accept with challenge . . . . . . . . . . . . . . . . . . 6 | |||
| 4. DNSSEC Delete Algorithm . . . . . . . . . . . . . . . . . . . 6 | 3.5. Accept from inception . . . . . . . . . . . . . . . . . . 7 | |||
| 5. Security considerations . . . . . . . . . . . . . . . . . . . 7 | 4. DNSSEC Delete Algorithm . . . . . . . . . . . . . . . . . . . 7 | |||
| 6. IANA considerations . . . . . . . . . . . . . . . . . . . . . 7 | 5. Security considerations . . . . . . . . . . . . . . . . . . . 8 | |||
| 6.1. Promoting RFC7344 to standards track . . . . . . . . . . 8 | 6. IANA considerations . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 6.1. Promoting RFC7344 to standards track . . . . . . . . . . 9 | |||
| 7.1. Normative References . . . . . . . . . . . . . . . . . . 8 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 7.2. Informative References . . . . . . . . . . . . . . . . . 8 | 7.1. Normative References . . . . . . . . . . . . . . . . . . 9 | |||
| Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 8 | 7.2. Informative References . . . . . . . . . . . . . . . . . 9 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 8 | Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . 9 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 | ||||
| 1. Introduction | 1. Introduction | |||
| CDS/CDNSKEY [RFC7344] records are used to signal changes in trust | CDS/CDNSKEY [RFC7344] records are used to signal changes in secure | |||
| anchors. This is one method to maintain delegations that can be used | entry points. This is one method to maintain delegations that can be | |||
| when the DNS operator has no other way to inform the parent that | used when the DNS operator has no other way to inform the parent that | |||
| changes are needed. | changes are needed. This document elevates [RFC7344] from | |||
| informational to standards track RFC. | ||||
| [RFC7344] is lacking two different options for full automated | In addition, [RFC7344] is lacking two different options for full | |||
| operation to be possible. Firstly it did not define a method for the | automated operation to be possible. It did not define a method for | |||
| Initial Trust establishment and left it to each parent to come up | the Initial Trust establishment, leaving it open to each parent to | |||
| with an acceptance policy. Secondly it did not provide a "delete" | come up with an acceptance policy. Additionally, [RFC7344] did not | |||
| signal for the child to tell the parent that it wants to remove the | provide a "delete" signal for the child to inform the parent that the | |||
| DNSSEC security for its domain. | DNSSEC security for its domain must be removed. | |||
| 1.1. Introducing a DS record | 1.1. Introducing a DS record | |||
| The big issue is how a child domain instructs the parent that it | Automated insertion of DS records has been limited for many zones by | |||
| wants to have a DS record added. This problem can be solved using a | the requirement that all changes pass through a "registry" of the | |||
| few simplifying assumptions. This document makes the assumption that | child zone's parent. This has significantly hindered deployment of | |||
| there are reasonable policies that can be applied and will allow | DNSSEC at large scale for DNS hosters, as the child zone owner is | |||
| automation of trust introduction. | often not aware or able to update DNS records such as the DS record. | |||
| Not being able to enable trust via an easily automated mechanism is | This document describes a few possible methods for the parent to | |||
| hindering DNSSEC at scale for DNS hosters that do not have automated | accept a request by the child to add a DS record to its zone. These | |||
| access to the "registry" of the child zone's parent. | methods have different security properties that addresses different | |||
| deployment scenarios, all resulting in an automated method of trust | ||||
| introduction. | ||||
| 1.2. Removing a DS Record | 1.2. Removing a DS Record | |||
| This document introduces the delete option for both CDS and CDNSKEY, | This document introduces the delete option for both CDS and CDNSKEY, | |||
| allowing a child to signal to the parent to turn off DNSSEC. When a | allowing a child to signal to the parent to turn off DNSSEC. When a | |||
| domain is moved from one DNS operator to another one, sometimes it is | domain is moved from one DNS operator to another, sometimes it is | |||
| necessary to turn off DNSSEC to facilitate the change of DNS | necessary to turn off DNSSEC to facilitate the change of DNS | |||
| operator. Common scenarios include: | operator. Common scenarios include: | |||
| 1 alternative to doing a proper DNSSEC algorithm rollover due to | 1 Alternative to doing a proper DNSSEC algorithm rollover due to | |||
| operational limitations such as software limitations. | operational limitations such as software limitations. | |||
| 2 moving from a DNSSEC operator to a non-DNSSEC capable operator. | 2 Moving from a DNSSEC operator to a non-DNSSEC capable operator. | |||
| 3 moving to an operator that cannot/does-not-want to do a proper | 3 Moving to an operator that cannot/does-not-want to do a proper | |||
| DNSSEC rollover. | DNSSEC rollover. | |||
| 4 when moving between two DNS operators that use disjoint sets of | 4 When moving between two DNS operators that use disjoint sets of | |||
| algorithms to sign the zone, thus an algorithm rollover can not be | algorithms to sign the zone, thus an algorithm rollover can not be | |||
| performed. | performed. | |||
| 5 the domain holder no longer wants DNSSEC enabled. | 5 The domain holder no longer wants DNSSEC enabled. | |||
| The lack of a "remove my DNSSEC" option is cited as a reason why some | The lack of a "remove my DNSSEC" option is cited as a reason why some | |||
| operators cannot deploy DNSSEC, as this is seen as an operational | operators cannot deploy DNSSEC, as this is seen as an operational | |||
| risk. | risk. | |||
| Turning off DNSSEC reduces the security of the domain and thus should | Turning off DNSSEC reduces the security of the domain and thus should | |||
| only be done carefully, and that decision SHOULD be fully under the | only be done carefully, and that decision should be fully under the | |||
| child domain's control. | child domain's control. | |||
| 1.3. Notation | 1.3. Notation | |||
| When this document uses the word CDS it implies that the same applies | Signaling can happen via CDS or CDNSKEY records. The only | |||
| to CDNSKEY and vice verse. The only differences between the two | differences between the two records is how information is | |||
| records is how information is represented, and who calculates the DS | represented, and who calculates the DS digest. For clarity, this | |||
| digiest. | document uses the term "CDS" throughout the document to mean "either | |||
| CDS or CDNSKEY". | ||||
| We use RRR to mean Registry Registrar Registrant in the context of | ||||
| DNS domain markets. | ||||
| When the document uses the word "parent" it implies an entity that is | When the document uses the word "parent" it implies an entity that is | |||
| authorized to insert DS records into the parent zone on behalf of the | authorized to insert DS records into the parent zone on behalf of the | |||
| child domain. Which entity this exactly is does not matter. It | child domain. Which entity this exactly is does not matter. It | |||
| could be the Registrar or Reseller that the child domain was | could be the Registrar or Reseller that the child domain was | |||
| purchased from. It could be the Registry that the domain is | purchased from. It could be the Registry that the domain is | |||
| registered in when allowed. It could be some other entity when the | registered in when allowed. Or it could be some other entity. | |||
| RRR framework is not used. | ||||
| 1.4. Terminology | 1.4. Terminology | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in [RFC2119]. | document are to be interpreted as described in [RFC2119]. | |||
| 2. The Three Uses of CDS | 2. The Three Uses of CDS | |||
| In general there are three operations that a domain wants to | In general there are three operations that a domain wants to instruct | |||
| influence on its parent: | their parent to perform: | |||
| 1 Enable DNSSEC validation, i.e. place an initial DS RRset in the | 1 Enable DNSSEC validation, i.e. place an initial DS RRset in the | |||
| parent. | parent. | |||
| 2 Roll over KSK, this means updating the DS records in the parent to | 2 Roll over the Key Signing Key ("KSK"), this means updating the DS | |||
| reflect the new set of KSK's at the child. This could be an ADD | records in the parent to reflect the new set of KSK's at the | |||
| operation, a DELETE operation on one or more records while keeping | child. This could be an ADD operation, a DELETE operation on one | |||
| at least one DS RR, or a full REPLACE operation. | or more records while keeping at least one DS RR, or a full | |||
| REPLACE operation. | ||||
| 3 Turn off DNSSEC validation, i.e. delete all the DS records. | 3 Turn off DNSSEC validation, i.e. delete all the DS records. | |||
| Operation 2 is covered in [RFC7344], operations 1 and 3 are defined | Rolling the KSK is covered in [RFC7344]. It is considered the safest | |||
| in this document. In many people's minds, those two operations carry | use case of a CDS/CDNSKEY record as it makes no change to the trust | |||
| more risk than the first one. This document argues that 3 is | relationship between parent and child. Introduction and removal of | |||
| identical to 2 and the first one is different (but not that | DS records are defined in this document. As these CDS/CDNSKEY use | |||
| different). | cases create or end the trust relationship between the parent and | |||
| child, these use cases should be carefully implemented and monitored. | ||||
| 2.1. The meaning of the CDS RRset | 2.1. The meaning of the CDS RRset | |||
| The semantic meaning of publishing a CDS RRset is interpreted to | The semantic meaning of publishing a CDS RRset is interpreted to | |||
| mean: | mean: | |||
| "Publishing a CDS or CDNSKEY record signals to the parent that the | "Publishing a CDS or CDNSKEY record signals to the parent that the | |||
| child desires that the corresponding DS records be synchronized. | child desires that the corresponding DS records be synchronized. | |||
| Every parent or parental agent should have an acceptance policy of | Every parent or parental agent should have an acceptance policy of | |||
| these records for the three different use cases involved: Initial DS | these records for the three different use cases involved: Initial DS | |||
| publication, Key rollover, and Returning to Insecure." | publication, Key rollover, and Returning to Insecure." | |||
| In short, the CDS RRset is an instruction to the parent to modify the | In short, the CDS RRset is an instruction to the parent to modify the | |||
| DS RRset if the CDS and DS Reset's differ. The acceptance policy for | DS RRset if the CDS and DS Reset's differ. | |||
| CDS in the rollover case is "seeing" according to [RFC7344]. The | ||||
| acceptance policy in the Delete case is seeing a (validly signed) CDS | The acceptance policy for CDS in the rollover case is "seeing" | |||
| RRset with the delete operation specified in this document. | according to [RFC7344]. The acceptance policy in the Delete case is | |||
| seeing a (validly signed) CDS RRset with the delete operation | ||||
| specified in this document. | ||||
| 3. Enabling DNSSEC via CDS/CDNSKEY | 3. Enabling DNSSEC via CDS/CDNSKEY | |||
| There are number of different models for managing initial trust, but | There are number of different models for managing initial trust, but | |||
| in the general case, the child wants to enable global validation for | in the general case, the child wants to enable global validation. As | |||
| the future. Thus during the period from the time the child publishes | long as the child is insecure, DNS answers can be forged. The goal | |||
| the CDS until the corresponding DS is published at the parent is the | is to promote the child from insecure to secure as soon as reasonably | |||
| period that DNS answers for the child could be forged. The goal is | possible by the parent. This means that the period from the child's | |||
| to keep this period as short as possible. | publication of CDS/CDNSKEY RRset to the parent publishing the | |||
| synchronized DS RRset should be as short as possible. | ||||
| One important case is how a third party DNS operator can upload its | One important use case is how a third party DNS operator can upload | |||
| DNSSEC information to the parent, so the parent can publish a DS | its DNSSEC information to the parent, so the parent can publish a DS | |||
| record for the child. In this case there is a possibility of setting | record for the child. In this case there is a possibility of setting | |||
| up some kind of authentication mechanism and submission mechanism | up some kind of authentication mechanism and submission mechanism | |||
| that is outside the scope of this document. | that is outside the scope of this document. | |||
| Below are some policies that parents can use. These policies assume | Below are some policies that parents can use. These policies assume | |||
| that the notifications can be verified or authenticated. | that the notifications can be verified or authenticated. | |||
| 3.1. Accept policy via authenticated channel | 3.1. Accept policy via authenticated channel | |||
| In this case the parent is notified via authenticated channel UI/API | In this case the parent is notified via authenticated channel UI/API | |||
| that a CDS/CDNSKEY RRset exists. In the case of a CDS RRset the | that a CDS/CDNSKEY RRset exists. In the case of a CDS RRset the | |||
| parent retrieves the CDS and inserts the corresponding DS RRset as | parent retrieves the CDS RRset and inserts the corresponding DS RRset | |||
| requested. In the case of CDNSKEY the parent retrieves the CDNSKEY | as requested. In the case of CDNSKEY the parent retrieves the | |||
| RRset and calculates the DS record(s). | CDNSKEY RRset and calculates the DS record(s). Parents may limit the | |||
| DS record type based on local policy. Parents SHOULD NOT refuse CDS/ | ||||
| CDNSKEY updates that do not (yet) have a matching DNSKEY in the child | ||||
| zone. This will allow the child to prepublish a spare (and | ||||
| potentially offline) DNSKEY. | ||||
| 3.2. Accept with extra checks | 3.2. Accept with extra checks | |||
| In this case the parent checks that the source of the notification is | In this case the parent checks that the source of the notification is | |||
| allowed to request the DS insertion. The checks could include | allowed to request the DS insertion. The checks could include | |||
| whether this is a trusted entity, whether the nameservers correspond | whether this is a trusted entity, whether the nameservers correspond | |||
| to the requester, whether there have been any changes in registration | to the requester, whether there have been any changes in registration | |||
| in the last few days, etc. The parent can also send a notification | in the last few days, etc. The parent can also send a notification | |||
| requesting a confirmation, for example by sending email to the | requesting a confirmation, for example by sending email to the | |||
| registrant requesting a confirmation. The end result is that the CDS | registrant requesting a confirmation. The end result is that the CDS | |||
| RRset is accepted at the end of the checks or when the out-of-band | RRset is accepted at the end of the checks or when the out-of-band | |||
| confirmation is received. | confirmation is received. Any extra checks should have proper rate | |||
| limiting in place to prevent abuse. | ||||
| 3.3. Accept after delay | 3.3. Accept after delay | |||
| In this case, if the parent deems the request valid, it starts | In this case, if the parent deems the request valid, it starts | |||
| monitoring the CDS RRset at the child nameservers over period of time | monitoring the CDS RRset at the child nameservers over period of time | |||
| to make sure nothing changes. After some time or after a number of | to make sure nothing changes. After some time or after a number of | |||
| checks, preferably from different vantage points in the network, the | checks, preferably from different vantage points in the network, the | |||
| parent accepts the CDS RRset as a valid signal to update its DS RRset | parent accepts the CDS RRset as a valid signal to update its DS RRset | |||
| for this child. | for this child. | |||
| 3.4. Accept with challenge | 3.4. Accept with challenge | |||
| In this case the parent instructs the requester to insert some record | In this case the parent instructs the requester to insert some record | |||
| into the child domain to prove it has the ability to do so (i.e., it | into the child domain to prove it has the ability to do so (i.e., it | |||
| is the operator of the zone). | is the operator of the zone). This method imposes a new task on the | |||
| parent to monitor the child zone to see if the challenge has been | ||||
| added to the zone. The parent should verify the challenge is | ||||
| published by all the child's nameservers and should test for this | ||||
| challenge from various diverse network locations to increase the | ||||
| security of this method as much as possible. | ||||
| 3.5. Accept from inception | ||||
| If a parent is adding a new child domain that is not currently | ||||
| delegated at all, it could use the child CDS/CDNSKEY RRset to | ||||
| immediately publish a DS RRset along with the new NS RRset. This | ||||
| would ensure that the new child domain is never active in an insecure | ||||
| state. | ||||
| 4. DNSSEC Delete Algorithm | 4. DNSSEC Delete Algorithm | |||
| The DNSKEY algorithm registry contains two reserved values: 0 and | This document defines the previously reserved DNS Security Algorithm | |||
| 255[RFC4034]. The CERT record [RFC4398] defines the value 0 to mean | Number of value 0 in the context of CDS and CDNSKEY records to mean | |||
| the algorithm in the CERT record is not defined in DNSSEC. | that the entire DS RRset at the parent must be removed. The value 0 | |||
| remains reserved for the DS and DNSKEY records. | ||||
| For this reason, using the value 0 in CDS/CDNSKEY delete operations | No DNSSEC validator can treat algorithm 0 as a valid signature | |||
| is potentially problematic, but we propose it here anyway as the risk | algorithm. If a validator sees a DNSKEY or DS record with this | |||
| is minimal. The alternative is to reserve a DNSSEC algorithm number | algorithm value, it must treat it as unknown. Accordingly, the zone | |||
| for this purpose. | is treated as unsigned unless there are other algorithms present. In | |||
| general the value 0 should never be used in the context of DNSKEY and | ||||
| DS records. | ||||
| Right now, no DNSSEC validator understands algorithm 0 as a valid | The CERT record [RFC4398] defines the value 0 similarly to mean the | |||
| signature algorithm. If a validator sees a DNSKEY or DS record with | algorithm in the CERT record is not defined in DNSSEC. | |||
| this algorithm value, it MUST treat it as unknown. Accordingly, the | ||||
| zone is treated as unsigned unless there are other algorithms | ||||
| present. In general the value 0 should never be used in the context | ||||
| of DNSKEY and DS records. | ||||
| In the context of CDS and CDNSKEY records, DNSSEC algorithm 0 is | The contents of the CDS or CDNSKEY RRset MUST contain one RR and only | |||
| defined to mean that the entire DS RRset MUST be removed. The | ||||
| contents of the CDS or CDNSKEY RRset MUST contain one RR and only | ||||
| contain the exactly the fields as shown below. | contain the exactly the fields as shown below. | |||
| 1 CDS 0 0 0 | 1 CDS 0 0 0 | |||
| 2 CDNSKEY 0 3 0 | 2 CDNSKEY 0 3 0 | |||
| The keying material payload is represented by a single 0. This | The keying material payload is represented by a single 0. This | |||
| record is signed in the same way as regular CDS/CDNSKEY RRset's are | record is signed in the same way as regular CDS/CDNSKEY RRsets are | |||
| signed. This is a change in format from strict interpretation of | signed. This is a change in format from strict interpretation of | |||
| [RFC7344] and may cause problems with some deployed software. | [RFC7344] and may cause problems with some deployed software. | |||
| Strictly speaking the CDS record could be "CDS X 0 X" as only the | Strictly speaking the CDS record could be "CDS X 0 X" as only the | |||
| DNSKEY algorithm is what signals the DELETE operation, but for | DNSKEY algorithm is what signals the DELETE operation, but for | |||
| clarity the "0 0 0" notation is mandated - this is not a definition | clarity the "0 0 0" notation is mandated - this is not a definition | |||
| of DS Digest algorithm 0. The same argument applies to "CDNSKEY 0 3 | of DS Digest algorithm 0. The same argument applies to "CDNSKEY 0 3 | |||
| 0", the value 3 in second field is mandated by RFC4034 section 2.1.2. | 0", the value 3 in second field is mandated by [RFC4034] section | |||
| 2.1.2. | ||||
| Once the parent has verified the CDS/CDNSKEY RRset and it has passed | Once the parent has verified the CDS/CDNSKEY RRset and it has passed | |||
| other acceptance tests, the parent MUST remove the DS RRset. After | other acceptance tests, the parent MUST remove the DS RRset. After | |||
| waiting a sufficient amount of time - depending on the parental TTL's | waiting a sufficient amount of time - depending on the parental TTL's | |||
| - the child can start the process of turning off DNSSEC. | - the child can start the process of turning off DNSSEC. | |||
| 5. Security considerations | 5. Security considerations | |||
| This document's main goal is to avoid validation failures when a | Turning off DNSSEC reduces the security of the domain and thus should | |||
| domain moves from one DNS operator to another. Turning off DNSSEC | only be done as a last resort in preventing DNSSEC validation errors | |||
| reduces the security of the domain and thus should only be done as a | due to mismatched DS and DNSKEY records. | |||
| last resort. | ||||
| In most cases it is preferable that operators collaborate on the | ||||
| rollover by doing a KSK+ZSK rollover as part of the hand-off, but | ||||
| that is not always possible. This document addresses the case where | ||||
| unsigned state is needed to complete a rollover. | ||||
| Users SHOULD keep in mind that re-establishing trust in delegation | Users should keep in mind that re-establishing trust in delegation | |||
| can be hard and takes a long time. Before deciding to complete the | can be hard and takes time. Before deciding to complete the rollover | |||
| rollover via an unsigned state, all options SHOULD be considered. | via an unsigned state, all other options should be considered first. | |||
| A parent SHOULD ensure that when it is allowing a child to become | A parent SHOULD ensure that when it is allowing a child to become | |||
| securely delegated, that it has a reasonable assurance that the CDS/ | securely delegated, that it has a reasonable assurance that the CDS/ | |||
| CDNSKEY RRset that is used to bootstrap the security is visible from | CDNSKEY RRset that is used to bootstrap the security is visible from | |||
| a geographically and topologically diverse view. It SHOULD also | a geographically and topologically diverse view. It SHOULD also | |||
| ensure that the zone validates correctly if the parent publishes the | ensure that the zone validates correctly if the parent publishes the | |||
| DS record. A parent zone might also consider sending an email to its | DS record. A parent zone might also consider sending an email to its | |||
| contact addresses to give the child zone a warning that security will | contact addresses to give the child zone a warning that security will | |||
| be enabled after a certain amount of wait time - thus allowing a | be enabled after a certain amount of wait time - thus allowing a | |||
| child administrator to cancel the request. | child administrator to cancel the request. | |||
| This document describes a few possible acceptance criteria for the | ||||
| Initial Trust establishment. Due to a large variety of legal | ||||
| frameworks surrounding parent domains (TLDs in particular) this | ||||
| document cannot give a definitive list of valid acceptance criteria. | ||||
| Parental zones should look at the listed methods and pick the most | ||||
| secure method possible within their legal and technical scenario, | ||||
| possibly further securing the acceptance criteria, as long as the | ||||
| deployed method still enables a fully automated method for non-direct | ||||
| parties such as third party DNS hosters. | ||||
| 6. IANA considerations | 6. IANA considerations | |||
| This document updates the following IANA registries: "DNS Security | This document updates entry number 0 of the "DNS Security Algorithm | |||
| Algorithm Numbers" | Numbers" IANA Registry as follows: | |||
| Algorithm 0 adds a reference to this document. | +------+---------+-------+-------+-------+--------------------------+ | |||
| | Numb | Descrip | Mnemo | Zone | Trans | Reference | | ||||
| | er | tion | nic | Signi | . | | | ||||
| | | | | ng | Sec. | | | ||||
| +------+---------+-------+-------+-------+--------------------------+ | ||||
| | 0 | Delete | DELET | N | N | [RFC4034][RFC4398]RFC- | | ||||
| | | DS | E | | | THIS-DOCUMENT] | | ||||
| +------+---------+-------+-------+-------+--------------------------+ | ||||
| 6.1. Promoting RFC7344 to standards track | 6.1. Promoting RFC7344 to standards track | |||
| Experience has shown that CDS/CDNSKEY are useful in the deployment of | Experience has shown that CDS/CDNSKEY are useful in the deployment of | |||
| DNSSEC. [RFC7344] was published as Informational, this document | DNSSEC. [RFC7344] was published as Informational, this document | |||
| elevates RFC7344 to standards track. | elevates RFC7344 to standards track. | |||
| 7. References | 7. References | |||
| 7.1. Normative References | 7.1. Normative References | |||
| [RFC4034] Arends, R., Austein, R., Larson, M., Massey, D., and S. | [RFC4034] Arends, R., Austein, R., Larson, M., Massey, D., and S. | |||
| Rose, "Resource Records for the DNS Security Extensions", | Rose, "Resource Records for the DNS Security Extensions", | |||
| RFC 4034, DOI 10.17487/RFC4034, March 2005, | RFC 4034, DOI 10.17487/RFC4034, March 2005, | |||
| <http://www.rfc-editor.org/info/rfc4034>. | <http://www.rfc-editor.org/info/rfc4034>. | |||
| [RFC7344] Kumari, W., Gudmundsson, O., and G. Barwood, "Automating | [RFC7344] Kumari, W., Gudmundsson, O., and G. Barwood, "Automating | |||
| DNSSEC Delegation Trust Maintenance", RFC 7344, DOI | DNSSEC Delegation Trust Maintenance", RFC 7344, | |||
| 10.17487/RFC7344, September 2014, | DOI 10.17487/RFC7344, September 2014, | |||
| <http://www.rfc-editor.org/info/rfc7344>. | <http://www.rfc-editor.org/info/rfc7344>. | |||
| 7.2. Informative References | 7.2. Informative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/ | Requirement Levels", BCP 14, RFC 2119, | |||
| RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <http://www.rfc-editor.org/info/rfc2119>. | <http://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC4398] Josefsson, S., "Storing Certificates in the Domain Name | [RFC4398] Josefsson, S., "Storing Certificates in the Domain Name | |||
| System (DNS)", RFC 4398, DOI 10.17487/RFC4398, March 2006, | System (DNS)", RFC 4398, DOI 10.17487/RFC4398, March 2006, | |||
| <http://www.rfc-editor.org/info/rfc4398>. | <http://www.rfc-editor.org/info/rfc4398>. | |||
| Appendix A. Acknowledgements | Appendix A. Acknowledgments | |||
| This document is generated using the mmark tool that Miek Gieben has | This document is generated using the mmark tool that Miek Gieben has | |||
| developed. We thank number of people that have provided feedback and | developed. We thank number of people that have provided feedback and | |||
| useful comments including Bob Harold, John Levine, Matthijs Mekking, | useful comments including Bob Harold, John Levine, Matthijs Mekking, | |||
| Dan York, Shane Kerr, Jacques Latour. | Dan York, Shane Kerr, Jacques Latour. | |||
| Authors' Addresses | Authors' Addresses | |||
| Olafur Gudmundsson | Olafur Gudmundsson | |||
| CloudFlare | CloudFlare | |||
| End of changes. 47 change blocks. | ||||
| 124 lines changed or deleted | 167 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/ | ||||