| rfc9615.original | rfc9615.txt | |||
|---|---|---|---|---|
| DNSOP Working Group P. Thomassen | Internet Engineering Task Force (IETF) P. Thomassen | |||
| Internet-Draft deSEC, Secure Systems Engineering | Request for Comments: 9615 deSEC, Secure Systems Engineering (SSE) | |||
| Updates: 7344, 8078 (if approved) N. Wisiol | Updates: 7344, 8078 N. Wisiol | |||
| Intended status: Standards Track deSEC, Technische Universität Berlin | Category: Standards Track deSEC, Technische Universität Berlin | |||
| Expires: 29 November 2024 28 May 2024 | ISSN: 2070-1721 July 2024 | |||
| Automatic DNSSEC Bootstrapping using Authenticated Signals from the | Automatic DNSSEC Bootstrapping Using Authenticated Signals from the | |||
| Zone's Operator | Zone's Operator | |||
| draft-ietf-dnsop-dnssec-bootstrapping-11 | ||||
| Abstract | Abstract | |||
| This document introduces an in-band method for DNS operators to | This document introduces an in-band method for DNS operators to | |||
| publish arbitrary information about the zones they are authoritative | publish arbitrary information about the zones for which they are | |||
| for, in an authenticated fashion and on a per-zone basis. The | authoritative, in an authenticated fashion and on a per-zone basis. | |||
| mechanism allows managed DNS operators to securely announce DNSSEC | The mechanism allows managed DNS operators to securely announce | |||
| key parameters for zones under their management, including for zones | DNSSEC key parameters for zones under their management, including for | |||
| that are not currently securely delegated. | zones that are not currently securely delegated. | |||
| Whenever DS records are absent for a zone's delegation, this signal | Whenever DS records are absent for a zone's delegation, this signal | |||
| enables the parent's registry or registrar to cryptographically | enables the parent's registry or registrar to cryptographically | |||
| validate the CDS/CDNSKEY records found at the child's apex. The | validate the CDS/CDNSKEY records found at the child's apex. The | |||
| parent can then provision DS records for the delegation without | parent can then provision DS records for the delegation without | |||
| resorting to out-of-band validation or weaker types of cross-checks | resorting to out-of-band validation or weaker types of cross-checks | |||
| such as "Accept after Delay". | such as "Accept after Delay". | |||
| This document establishes the DS enrollment method described in | This document establishes the DS enrollment method described in | |||
| Section 4 of this document as the preferred method over those from | Section 4 of this document as the preferred method over those from | |||
| Section 3 of RFC 8078. It also updates RFC 7344. | Section 3 of RFC 8078. It also updates RFC 7344. | |||
| [ Ed note: This document is being collaborated on at | ||||
| https://github.com/desec-io/draft-ietf-dnsop-dnssec-bootstrapping/ | ||||
| (https://github.com/desec-io/draft-ietf-dnsop-dnssec-bootstrapping/). | ||||
| The authors gratefully accept pull requests. ] | ||||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
| provisions of BCP 78 and BCP 79. | ||||
| Internet-Drafts are working documents of the Internet Engineering | ||||
| Task Force (IETF). Note that other groups may also distribute | ||||
| working documents as Internet-Drafts. The list of current Internet- | ||||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
| Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
| and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
| time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
| material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | ||||
| This Internet-Draft will expire on 29 November 2024. | Information about the current status of this document, any errata, | |||
| and how to provide feedback on it may be obtained at | ||||
| https://www.rfc-editor.org/info/rfc9615. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2024 IETF Trust and the persons identified as the | Copyright (c) 2024 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 (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
| license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
| and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
| extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
| described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
| provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
| in the Revised BSD License. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
| 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 | 1.1. Terminology | |||
| 1.2. Requirements Notation . . . . . . . . . . . . . . . . . . 5 | 1.2. Requirements Notation | |||
| 2. Updates to RFCs . . . . . . . . . . . . . . . . . . . . . . . 5 | 2. Updates to RFCs | |||
| 3. Signaling . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 3. Signaling | |||
| 3.1. Chain of Trust . . . . . . . . . . . . . . . . . . . . . 5 | 3.1. Chain of Trust | |||
| 3.2. Signaling Names . . . . . . . . . . . . . . . . . . . . . 5 | 3.2. Signaling Names | |||
| 4. Bootstrapping a DNSSEC Delegation . . . . . . . . . . . . . . 6 | 4. Bootstrapping a DNSSEC Delegation | |||
| 4.1. Signaling Consent to Act as the Child's Signer . . . . . 6 | 4.1. Signaling Consent to Act as the Child's Signer | |||
| 4.1.1. Example . . . . . . . . . . . . . . . . . . . . . . . 7 | 4.1.1. Example | |||
| 4.2. Validating CDS/CDNSKEY Records for DNSSEC | 4.2. Validating CDS/CDNSKEY Records for DNSSEC Bootstrapping | |||
| Bootstrapping . . . . . . . . . . . . . . . . . . . . . . 7 | 4.2.1. Example | |||
| 4.2.1. Example . . . . . . . . . . . . . . . . . . . . . . . 8 | 4.3. Triggers | |||
| 4.3. Triggers . . . . . . . . . . . . . . . . . . . . . . . . 9 | 4.4. Limitations | |||
| 4.4. Limitations . . . . . . . . . . . . . . . . . . . . . . . 10 | 5. Operational Recommendations | |||
| 5. Operational Recommendations . . . . . . . . . . . . . . . . . 10 | 5.1. Child DNS Operator | |||
| 5.1. Child DNS Operator . . . . . . . . . . . . . . . . . . . 10 | 5.2. Parental Agent | |||
| 5.2. Parental Agent . . . . . . . . . . . . . . . . . . . . . 11 | 6. Security Considerations | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 11 | 7. IANA Considerations | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | 8. References | |||
| 8. Implementation Status . . . . . . . . . . . . . . . . . . . . 12 | 8.1. Normative References | |||
| 8.1. Child DNS Operator-side . . . . . . . . . . . . . . . . . 12 | 8.2. Informative References | |||
| 8.2. Parental Agent-side . . . . . . . . . . . . . . . . . . . 12 | Acknowledgements | |||
| 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 13 | Authors' Addresses | |||
| 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 | ||||
| 10.1. Normative References . . . . . . . . . . . . . . . . . . 13 | ||||
| 10.2. Informative References . . . . . . . . . . . . . . . . . 14 | ||||
| Appendix A. Change History (to be removed before publication) . 15 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 18 | ||||
| 1. Introduction | 1. Introduction | |||
| Securing a DNS delegation for the first time requires that the | Securing a DNS delegation for the first time requires that the | |||
| child's DNSSEC parameters be conveyed to the parent through some | child's DNSSEC parameters be conveyed to the parent through some | |||
| trusted channel. While the communication conceptually has to occur | trusted channel. While the communication conceptually has to occur | |||
| between the parent registry and the DNSSEC key holder, what exactly | between the parent registry and the DNSSEC key holder, what that | |||
| that means and how the communication is coordinated traditionally | means exactly and how communication is coordinated traditionally | |||
| depends on the relationship the child has with the parent. | depends on the relationship the child has with the parent. | |||
| A typical situation is that the key is held by the child DNS | A typical situation is that the key is held by the child DNS | |||
| operator; the communication thus often involves this entity. In | operator; thus, the communication often involves this entity. In | |||
| addition, depending on the circumstances, it may also involve the | addition, depending on the circumstances, it may also involve the | |||
| registrar, possibly via the registrant (for details, see [RFC7344], | registrar, possibly via the registrant (for details, see Appendix A | |||
| Appendix A). | of [RFC7344]. | |||
| As observed in [RFC7344], these dependencies often result in a manual | As observed in [RFC7344], these dependencies often result in a manual | |||
| process that is susceptible to mistakes and/or errors. In addition, | process that is susceptible to mistakes and/or errors. In addition, | |||
| due to the annoyance factor of the process, involved parties may | due to the annoyance factor of the process, involved parties may | |||
| avoid the process of getting a DS record set (RRset) published in the | avoid the process of getting a DS resource record set (RRset) | |||
| first place. | published in the first place. | |||
| To alleviate these problems, automated provisioning of DS records has | To alleviate these problems, automated provisioning of DS records has | |||
| been specified in ([RFC8078]). It is based on the parental agent | been specified in [RFC8078]. It is based on the parental agent | |||
| (registry or registrar) fetching DNSSEC key parameters from the CDS | (registry or registrar) fetching DNSSEC key parameters from the CDS | |||
| and CDNSKEY records ([RFC7344]) located at the child zone's apex, and | and CDNSKEY records ([RFC7344]) located at the child zone's apex, and | |||
| validating them somehow. This validation can be done using the | validating them somehow. This validation can be done using the | |||
| child's existing DNSSEC chain of trust if the objective is to update | child's existing DNSSEC chain of trust if the objective is to update | |||
| an existing DS RRset (such as during key rollover). However, when | an existing DS RRset (such as during key rollover). However, when | |||
| bootstrapping a DNSSEC delegation, the child zone has no existing | bootstrapping a DNSSEC delegation, the child zone has no existing | |||
| DNSSEC validation path, and other means to ensure the CDS/CDNSKEY | DNSSEC validation path, so other means to ensure the CDS/CDNSKEY | |||
| records' legitimacy must be found. | records' legitimacy must be found. | |||
| Due to the lack of a comprehensive DNS-innate solution, either out- | Due to the lack of a comprehensive DNS-innate solution, either out- | |||
| of-band methods have been used so far to complete the chain of trust, | of-band methods have been used so far to complete the chain of trust, | |||
| or cryptographic validation has been entirely dispensed with, in | or cryptographic validation has been entirely dispensed with, in | |||
| exchange for weaker types of cross-checks such as "Accept after | exchange for weaker types of cross-checks such as "Accept after | |||
| Delay" ([RFC8078] Section 3.3). [RFC8078] does not define an in-band | Delay" (Section 3.3 of [RFC8078]). [RFC8078] does not define an in- | |||
| validation method for enabling DNSSEC. | band validation method for enabling DNSSEC. | |||
| This document aims to close this gap by introducing an in-band method | This document aims to close this gap by introducing an in-band method | |||
| for DNS operators to publish arbitrary information about the zones | for DNS operators to publish arbitrary information about the zones | |||
| they are authoritative for, in an authenticated manner and on a per- | for which they are authoritative, in an authenticated manner and on a | |||
| zone basis. The mechanism allows managed DNS operators to securely | per-zone basis. The mechanism allows managed DNS operators to | |||
| announce DNSSEC key parameters for zones under their management. The | securely announce DNSSEC key parameters for zones under their | |||
| parent can then use this signal to cryptographically validate the | management. The parent can then use this signal to cryptographically | |||
| CDS/CDNSKEY RRsets found at an insecure child zone's apex and, upon | validate the CDS/CDNSKEY RRsets found at an insecure child zone's | |||
| success, secure the delegation. | apex and, upon success, secure the delegation. | |||
| While applicable to the vast majority of domains, the protocol does | While applicable to the vast majority of domains, the protocol does | |||
| not support certain edge cases, such as excessively long child zone | not support certain edge cases, such as excessively long child zone | |||
| names, or DNSSEC bootstrapping for domains with in-domain nameservers | names, or DNSSEC bootstrapping for domains with in-domain nameservers | |||
| only (see Section 4.4). | only (see Section 4.4). | |||
| DNSSEC bootstrapping is just one application of the generic signaling | DNSSEC bootstrapping is just one application of the generic signaling | |||
| mechanism specified in this document. Other applications might arise | mechanism specified in this document. Other applications might arise | |||
| in the future, such as publishing operational metadata or auxiliary | in the future, such as publishing operational metadata or auxiliary | |||
| information which the DNS operator likes to make known (e.g., API | information that the DNS operator likes to make known (e.g., API | |||
| endpoints for third-party interaction). | endpoints for third-party interaction). | |||
| Readers are expected to be familiar with DNSSEC [BCP237]. | Readers are expected to be familiar with DNSSEC [BCP237]. | |||
| 1.1. Terminology | 1.1. Terminology | |||
| This section defines the terminology used in this document. | This section defines the terminology used in this document. | |||
| CDS/CDNSKEY This notation refers to CDS and/or CDNSKEY, i.e., one or | CDS/CDNSKEY: This notation refers to CDS and/or CDNSKEY, i.e., one | |||
| both. | or both. | |||
| Child see [RFC9499] Section 7 | ||||
| Child DNS operator The entity that maintains and publishes the zone | Child: See Section 7 of [RFC9499]. | |||
| Child DNS operator: The entity that maintains and publishes the zone | ||||
| information for the child DNS. | information for the child DNS. | |||
| Parent see [RFC9499] Section 7 | ||||
| Parental agent The entity that has the authority to insert DS | Parent: See Section 7 of [RFC9499]. | |||
| Parental agent: The entity that has the authority to insert DS | ||||
| records into the parent zone on behalf of the child. (It could be | records into the parent zone on behalf of the child. (It could be | |||
| the registry, registrar, a reseller, or some other authorized | the registry, registrar, a reseller, or some other authorized | |||
| entity.) | entity.) | |||
| Signaling domain A domain name constructed by prepending the label | ||||
| _signal to a hostname taken from the child's NS RRSet. There are | Signaling domain: A domain name constructed by prepending the label | |||
| as many signaling domains as there are distinct NS targets. | _signal to a hostname taken from a delegation's NS RRset. There | |||
| Signaling name The labels that are prefixed to a signaling domain in | are as many signaling domains as there are distinct NS targets. | |||
| order to identify a signaling type and a child zone's name (see | ||||
| Signaling name: The labels that are prefixed to a signaling domain | ||||
| in order to identify a signaling type and a child zone's name (see | ||||
| Section 3.2). | Section 3.2). | |||
| Signaling record A DNS record located at a signaling name under a | ||||
| Signaling record: A DNS record located at a signaling name under a | ||||
| signaling domain. Signaling records are used by the child DNS | signaling domain. Signaling records are used by the child DNS | |||
| operator to publish information about the child. | operator to publish information about the child. | |||
| Signaling type A signal type identifier, such as _dsboot for DNSSEC | ||||
| Signaling type: A signal type identifier, such as _dsboot for DNSSEC | ||||
| bootstrapping. | bootstrapping. | |||
| Signaling zone The zone which is authoritative for a given signaling | ||||
| Signaling zone: The zone that is authoritative for a given signaling | ||||
| record. | record. | |||
| 1.2. Requirements Notation | 1.2. Requirements Notation | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 2. Updates to RFCs | 2. Updates to RFCs | |||
| The DS enrollment methods described in Section 3 of [RFC8078] are | The DS enrollment methods described in Section 3 of [RFC8078] are | |||
| less secure than the method described in Section 4 of this document. | less secure than the method described in Section 4 of this document. | |||
| Child DNS operators and parental agents wishing to use CDS/CDNSKEY | Therefore, child DNS operators and parental agents wishing to use | |||
| records for initial DS enrollment SHOULD therefore support the | CDS/CDNSKEY records for initial DS enrollment SHOULD support the | |||
| authentication protocol described here. | authentication protocol described here. | |||
| In order to facilitate publication of signaling records for the | In order to facilitate publication of signaling records for the | |||
| purpose of DNSSEC bootstrapping (see Section 4.1), the first bullet | purpose of DNSSEC bootstrapping (see Section 4.1), the first bullet | |||
| ("Location") of [RFC7344] Section 4.1 is removed. | ("Location") of Section 4.1 of [RFC7344] is removed. | |||
| 3. Signaling | 3. Signaling | |||
| This section describes the general mechanism by which a child DNS | This section describes the general mechanism by which a child DNS | |||
| operator can publish an authenticated signal about a child zone. | operator can publish an authenticated signal about a child zone. | |||
| Parental agents (or any other party) can then discover and process | Parental agents (or any other party) can then discover and process | |||
| the signal. Authenticity is ensured through standard DNSSEC | the signal. Authenticity is ensured through standard DNSSEC | |||
| validation. | validation. | |||
| 3.1. Chain of Trust | 3.1. Chain of Trust | |||
| skipping to change at page 6, line 17 ¶ | skipping to change at line 245 ¶ | |||
| these signaling records depend on the type of signal. | these signaling records depend on the type of signal. | |||
| The signaling name identifies the child and the signaling type. It | The signaling name identifies the child and the signaling type. It | |||
| is identical to the child name (with the final root label removed), | is identical to the child name (with the final root label removed), | |||
| prefixed with a label containing the signaling type. | prefixed with a label containing the signaling type. | |||
| 4. Bootstrapping a DNSSEC Delegation | 4. Bootstrapping a DNSSEC Delegation | |||
| When the child zone's CDS/CDNSKEY RRsets are used for setting up | When the child zone's CDS/CDNSKEY RRsets are used for setting up | |||
| initial trust, they need to be authenticated. This is achieved by | initial trust, they need to be authenticated. This is achieved by | |||
| co-publishing the child's CDS/CDNSKEY RRsets as an authenticated | copublishing the child's CDS/CDNSKEY RRsets as an authenticated | |||
| signal as described in Section 3. The parent can discover and | signal as described in Section 3. The parent can discover and | |||
| validate it, thus transferring trust from the child DNS operator | validate it, thus transferring trust from the child DNS operator | |||
| nameservers' chain of trust to the child zone. | nameservers' chain of trust to the child zone. | |||
| This protocol is not intended for updating an existing DS RRset. For | This protocol is not intended for updating an existing DS RRset. For | |||
| this purpose, the parental agent can validate the child's CDS/CDNSKEY | this purpose, the parental agent can validate the child's CDS/CDNSKEY | |||
| RRsets directly, using the chain of trust established by the existing | RRsets directly, using the chain of trust established by the existing | |||
| DS RRset ([RFC7344] Section 4). | DS RRset (Section 4 of [RFC7344]). | |||
| 4.1. Signaling Consent to Act as the Child's Signer | 4.1. Signaling Consent to Act as the Child's Signer | |||
| To confirm its willingness to act as the child's delegated signer and | To confirm its willingness to act as the child's delegated signer and | |||
| authenticate the child's CDS/CDNSKEY RRsets, the child DNS operator | authenticate the child's CDS/CDNSKEY RRsets, the child DNS operator | |||
| MUST co-publish them at the corresponding signaling name under each | MUST copublish them at the corresponding signaling name under each | |||
| signaling domain, excluding those that would fall within the child | signaling domain, excluding those that would fall within the child | |||
| domain (Section 3.2). For simplicity, the child DNS operator MAY | domain (Section 3.2). For simplicity, the child DNS operator MAY | |||
| also co-publish the child's CDS/CDNSKEY RRsets under signaling | also copublish the child's CDS/CDNSKEY RRsets under signaling domains | |||
| domains within the child domain, although those signaling domains are | within the child domain, although those signaling domains are not | |||
| not used for validation (Section 4.2). | used for validation (Section 4.2). | |||
| Unlike the CDS/CDNSKEY RRsets at the child's apex, a signaling record | Unlike the CDS/CDNSKEY RRsets at the child's apex, a signaling RRset | |||
| set MUST be signed with the corresponding signaling zone's key(s). | MUST be signed with the corresponding signaling zone's key(s). Its | |||
| Its contents MUST be identical to the corresponding RRset published | contents MUST be identical to the corresponding RRset published at | |||
| at the child's apex. | the child's apex. | |||
| Existing use of CDS/CDNSKEY records was specified at the child apex | Existing use of CDS/CDNSKEY records was specified at the child apex | |||
| only ([RFC7344], Section 4.1). This protocol extends the use of | only (Section 4.1 of [RFC7344]). This protocol extends the use of | |||
| these record types to non-apex owner names for the purpose of DNSSEC | these record types to non-apex owner names for the purpose of DNSSEC | |||
| bootstrapping. To exclude the possibility of semantic collision, | bootstrapping. To exclude the possibility of semantic collision, | |||
| there MUST NOT be a zone cut at a signaling name. | there MUST NOT be a zone cut at a signaling name. | |||
| 4.1.1. Example | 4.1.1. Example | |||
| For the purposes of bootstrapping the child zone example.co.uk with | For the purposes of bootstrapping the child zone example.co.uk with | |||
| NS records ns1.example.net, ns2.example.org, and ns3.example.co.uk, | NS records ns1.example.net, ns2.example.org, and ns3.example.co.uk, | |||
| the required signaling domains are _signal.ns1.example.net and | the required signaling domains are _signal.ns1.example.net and | |||
| _signal.ns2.example.org. | _signal.ns2.example.org. | |||
| In the zones containing these domains, the child DNS operator | In the zones containing these domains, the child DNS operator | |||
| authenticates the CDS/CDNSKEY RRsets found at the child's apex by co- | authenticates the CDS/CDNSKEY RRsets found at the child's apex by | |||
| publishing them as CDS/CDNSKEY RRsets at the names: | copublishing them as CDS/CDNSKEY RRsets at the names: | |||
| _dsboot.example.co.uk._signal.ns1.example.net | _dsboot.example.co.uk._signal.ns1.example.net | |||
| _dsboot.example.co.uk._signal.ns2.example.org | _dsboot.example.co.uk._signal.ns2.example.org | |||
| These RRsets are signed with DNSSEC just like any other zone data. | These RRsets are signed with DNSSEC just like any other zone data. | |||
| Publication of signaling records under the in-domain name | Publication of signaling records under the in-domain name | |||
| _signal.ns3.example.co.uk is not required. | _signal.ns3.example.co.uk is not required. | |||
| 4.2. Validating CDS/CDNSKEY Records for DNSSEC Bootstrapping | 4.2. Validating CDS/CDNSKEY Records for DNSSEC Bootstrapping | |||
| To validate a child's CDS/CDNSKEY RRset for DNSSEC bootstrapping, the | To validate a child's CDS/CDNSKEY RRset for DNSSEC bootstrapping, the | |||
| parental agent, knowing both the child zone name and its NS | parental agent, knowing both the child zone name and its NS | |||
| hostnames, MUST execute the following steps: | hostnames, MUST execute the following steps: | |||
| 1. verify that the child has no DS records published at the parent | Step 1: verify that the child has no DS records published at the | |||
| and that at least one of its nameservers is outside the child | parent and that at least one of its nameservers is outside | |||
| domain; | the child domain; | |||
| 2. query the CDS/CDNSKEY RRset at the child zone apex directly from | Step 2: query the CDS/CDNSKEY RRset at the child zone apex directly | |||
| each of the authoritative servers as determined by the | from each of the authoritative servers as determined by the | |||
| delegation's (parent-side) NS RRset, without caching; | delegation's (parent-side) NS RRset, without caching; | |||
| 3. query the CDS/CDNSKEY RRset located at the signaling name under | Step 3: query the CDS/CDNSKEY RRset located at the signaling name | |||
| each signaling domain (except those falling within the child | under each signaling domain (except those falling within the | |||
| domain) using a trusted DNS resolver and enforce DNSSEC | child domain) using a trusted DNS resolver and enforce | |||
| validation; | DNSSEC validation; | |||
| 4. check (separately by record type) that all RRsets retrieved in | Step 4: check (separately by record type) that all RRsets retrieved | |||
| Steps 2 and 3 have equal contents; | in Steps 2 and 3 have equal contents; | |||
| If the above steps succeed without error, the CDS/CDNSKEY RRsets are | If the above steps succeed without error, the CDS/CDNSKEY RRsets are | |||
| successfully verified, and the parental agent can proceed with the | successfully verified, and the parental agent can proceed with the | |||
| publication of the DS RRset under the precautions described in | publication of the DS RRset under the precautions described in | |||
| [RFC8078], Section 5. | Section 5 of [RFC8078]. | |||
| The parental agent MUST abort the procedure if an error condition | The parental agent MUST abort the procedure if an error condition | |||
| occurs, in particular: | occurs, in particular: | |||
| * in Step 1: the child is already securely delegated or has in- | * in Step 1: the child is already securely delegated or has in- | |||
| domain nameservers only; | domain nameservers only; | |||
| * in Step 2: any failure during the retrieval of the CDS/CDNSKEY | * in Step 2: any failure during the retrieval of the CDS/CDNSKEY | |||
| RRset located at the child apex from any of the authoritative | RRset located at the child apex from any of the authoritative | |||
| nameservers; | nameservers; | |||
| skipping to change at page 8, line 37 ¶ | skipping to change at line 358 ¶ | |||
| 1. checks that the child domain is not yet securely delegated; | 1. checks that the child domain is not yet securely delegated; | |||
| 2. queries the CDS/CDNSKEY RRsets for example.co.uk directly from | 2. queries the CDS/CDNSKEY RRsets for example.co.uk directly from | |||
| ns1.example.net, ns2.example.org, and ns3.example.co.uk (without | ns1.example.net, ns2.example.org, and ns3.example.co.uk (without | |||
| caching); | caching); | |||
| 3. queries and validates the CDS/CDNSKEY RRsets located at (see | 3. queries and validates the CDS/CDNSKEY RRsets located at (see | |||
| Section 3.2; ns3.example.co.uk is ignored because it is in- | Section 3.2; ns3.example.co.uk is ignored because it is in- | |||
| domain) | domain) | |||
| _dsboot.example.co.uk._signal.ns1.example.net | _dsboot.example.co.uk._signal.ns1.example.net | |||
| _dsboot.example.co.uk._signal.ns2.example.org | _dsboot.example.co.uk._signal.ns2.example.org | |||
| 4. checks that the CDS/CDNSKEY RRsets retrieved in Steps 2 and 3 | 4. checks that the CDS/CDNSKEY RRsets retrieved in Steps 2 and 3 | |||
| agree across responses. | agree across responses. | |||
| If all these steps succeed, the parental agent can proceed to publish | If all of these steps succeed, the parental agent can proceed to | |||
| a DS RRset as indicated by the validated CDS/CDNSKEY RRset. | publish a DS RRset as indicated by the validated CDS/CDNSKEY RRset. | |||
| As in-domain signaling names do not have a chain of trust at | As in-domain signaling names do not have a chain of trust at | |||
| bootstrapping time, the parental agent does not consider them during | bootstrapping time, the parental agent does not consider them during | |||
| validation. Consequently, if all NS hostnames are in-domain, | validation. Consequently, if all NS hostnames are in-domain, | |||
| validation cannot be completed, and DS records are not published. | validation cannot be completed and DS records are not published. | |||
| 4.3. Triggers | 4.3. Triggers | |||
| Parental agents SHOULD trigger the procedure described in Section 4.2 | Parental agents SHOULD trigger the procedure described in Section 4.2 | |||
| once one of the following conditions is fulfilled: | once one of the following conditions is fulfilled: | |||
| * The parental agent receives a new or updated NS RRset for a child; | * The parental agent receives a new or updated NS RRset for a child; | |||
| * The parental agent receives a notification indicating that the | * The parental agent receives a notification indicating that the | |||
| child wishes to have its CDS/CDNSKEY RRset processed; | child wishes to have its CDS/CDNSKEY RRset processed; | |||
| * The parental agent encounters a signaling record during a | * The parental agent encounters a signaling record during a | |||
| proactive, opportunistic scan (e.g., daily queries of signaling | proactive, opportunistic scan (e.g., daily queries of signaling | |||
| records for some or all of its delegations); | records for some or all of its delegations); | |||
| * The parental agent encounters a signaling record during an NSEC | * The parental agent encounters a signaling record during an NSEC | |||
| walk or when parsing a signaling zone (e.g., when made available | walk or when parsing a signaling zone (e.g., when made available | |||
| via AXFR by the child DNS operator); | via AXFR by the child DNS operator); | |||
| * Any other condition as deemed appropriate by local policy. | * Any other condition deemed appropriate by local policy. | |||
| Timer-based trigger mechanisms (such as scans) exhibit undesirable | Timer-based trigger mechanisms (such as scans) exhibit undesirable | |||
| properties with respect to processing delay and scaling; on-demand | properties with respect to processing delay and scaling; on-demand | |||
| triggers (like notifications) are preferable. Whenever possible, | triggers (like notifications) are preferable. Whenever possible, | |||
| child DNS operators and parental agents are thus encouraged to use | child DNS operators and parental agents are thus encouraged to use | |||
| them, reducing both delays and the amount of scanning traffic. | them, reducing both delays and the amount of scanning traffic. | |||
| Most types of discovery (such as daily scans of delegations) are | Most types of discovery (such as daily scans of delegations) are | |||
| based directly on the delegation's NS RRset. In this case, these NS | based directly on the delegation's NS RRset. In this case, these NS | |||
| names can be used as is by the bootstrapping algorithm (Section 4.2) | names can be used as is by the bootstrapping algorithm (Section 4.2) | |||
| for querying signaling records. | for querying signaling records. | |||
| Some discovery methods, however, do not imply reliable knowledge of | Some discovery methods, however, do not imply reliable knowledge of | |||
| the delegation's NS RRset. For example, when discovering signaling | the delegation's NS RRset. For example, when discovering signaling | |||
| names by performing an NSEC walk or zone transfer of a signaling | names by performing an NSEC walk or zone transfer of a signaling | |||
| zone, the parental agent MUST NOT assume that a nameserver under | zone, the parental agent MUST NOT assume that a nameserver under | |||
| whose signaling domain a signaling record appears is actually | whose signaling domain a signaling record appears is actually | |||
| authoritative for the corresponding child. | authoritative for the corresponding child. | |||
| Instead, whenever a list of "bootstrappable domains" is obtained | Instead, whenever a list of "bootstrappable domains" is obtained by | |||
| other than directly from the parent, the parental agent MUST | means other than directly from the parent, the parental agent MUST | |||
| ascertain that the delegation actually contains the nameserver | ascertain that the delegation actually contains the nameserver | |||
| hostname seen during discovery, and ensure that signaling record | hostname seen during discovery, and ensure that signaling-record | |||
| queries are only made against the proper set of nameservers as listed | queries are only made against the proper set of nameservers as listed | |||
| in the child's delegation from the parent. | in the child's delegation from the parent. | |||
| 4.4. Limitations | 4.4. Limitations | |||
| As a consequence of Step 3 in Section 4.2, DS bootstrapping does not | As a consequence of Step 3 in Section 4.2, DS bootstrapping does not | |||
| work for fully in-domain delegations, as no pre-existing chain of | work for fully in-domain delegations, as no preexisting chain of | |||
| trust to the child domain is available during bootstrapping. (As a | trust to the child domain is available during bootstrapping. (As a | |||
| workaround, one can add an out-of-domain nameserver to the initial NS | workaround, one can add an out-of-domain nameserver to the initial NS | |||
| RRset and remove it once bootstrapping is completed. Automation for | RRset and remove it once bootstrapping is completed. Automation for | |||
| this is available via CSYNC records, see [RFC7477].) | this is available via CSYNC records, see [RFC7477].) | |||
| Fully qualified signaling names must by valid DNS names. Label count | Fully qualified signaling names must by valid DNS names. Label count | |||
| and length requirements for DNS names ([RFC1035] Section 3.1) imply | and length requirements for DNS names (Section 3.1 of [RFC1035]) | |||
| that the protocol does not work for unusually long child domain names | imply that the protocol does not work for unusually long child domain | |||
| or NS hostnames. | names or NS hostnames. | |||
| 5. Operational Recommendations | 5. Operational Recommendations | |||
| 5.1. Child DNS Operator | 5.1. Child DNS Operator | |||
| It is possible to add CDS/CDNSKEY records and corresponding signaling | It is possible to add CDS/CDNSKEY records and corresponding signaling | |||
| records to a zone without the domain owner's explicit knowledge. To | records to a zone without the domain owner's explicit knowledge. To | |||
| spare domain owners from being caught off guard by the ensuing DS | spare domain owners from being caught off guard by the ensuing DS | |||
| changes, child DNS operators following this practice are advised to | changes, child DNS operators following this practice are advised to | |||
| make that transparent, such as by informing the domain owner during | make that transparent, such as by informing the domain owner during | |||
| zone creation (e.g., in a GUI), or by notifying them via email. | zone creation (e.g., in a GUI) or by notifying them via email. | |||
| When transferring a zone to another DNS operator, the old and new | When transferring a zone to another DNS operator, the old and new | |||
| child DNS operators need to cooperate to achieve a smooth transition, | child DNS operators need to cooperate to achieve a smooth transition, | |||
| e.g., by using the multi-signer protocols described in [RFC8901]. If | e.g., by using the multi-signer protocols described in [RFC8901]. If | |||
| all else fails, the domain owner might have to request the removal of | all else fails, the domain owner might have to request the removal of | |||
| all DS records and have the transfer performed insecurely (see | all DS records and have the transfer performed insecurely (see | |||
| [I-D.hardaker-dnsop-intentionally-temporary-insec]). | [INSEC]). | |||
| Signaling domains SHOULD be delegated as standalone zones, so that | Signaling domains SHOULD be delegated as standalone zones, so that | |||
| the signaling zone's apex coincides with the signaling domain (such | the signaling zone's apex coincides with the signaling domain (such | |||
| as _signal.ns1.example.net). While it is permissible for the | as _signal.ns1.example.net). While it is permissible for the | |||
| signaling domain to be contained in a signaling zone of fewer labels | signaling domain to be contained in a signaling zone of fewer labels | |||
| (such as example.net), a zone cut ensures that bootstrapping | (such as example.net), a zone cut ensures that bootstrapping | |||
| activities do not require modifications of the zone containing the | activities do not require modifications of the zone containing the | |||
| nameserver hostname. | nameserver hostname. | |||
| Once a Child DNS Operator determines that specific signaling record | Once a child DNS operator determines that specific signaling record | |||
| sets have been processed (e.g., by seeing the result in the parent | sets have been processed (e.g., by seeing the result in the parent | |||
| zone), they are advised to remove them. This will reduce the size of | zone), they are advised to remove them. This will reduce the size of | |||
| the signaling zone, and facilitate more efficient bulk processing | the signaling zone and facilitate more efficient bulk processing | |||
| (such as via zone transfers). | (such as via zone transfers). | |||
| 5.2. Parental Agent | 5.2. Parental Agent | |||
| In order to ensure timely DNSSEC bootstrapping of insecure domains, | In order to ensure timely DNSSEC bootstrapping of insecure domains, | |||
| stalemate situations due to mismatch of stale cached records (Step 4 | stalemate situations due to mismatch of stale cached records (Step 4 | |||
| of Section 4.2) need to be avoided. It is thus RECOMMENDED to | of Section 4.2) need to be avoided. It is thus RECOMMENDED that | |||
| perform queries into signaling domains with an (initially) empty | queries into signaling domains be performed with an (initially) empty | |||
| resolver cache, or using some other method for retrieving fresh data | resolver cache, or that some other method for retrieving fresh data | |||
| from authoritative servers. | from authoritative servers be used. | |||
| It is also RECOMMENDED to use QNAME minimization [RFC9156] when | It is also RECOMMENDED that QNAME minimization [RFC9156] be used when | |||
| resolving queries for signaling records, to guard against certain | resolving queries for signaling records to guard against certain | |||
| attacks (see Section 6). | attacks (see Section 6). | |||
| 6. Security Considerations | 6. Security Considerations | |||
| The DNSSEC bootstrapping method introduced in this document is based | The DNSSEC bootstrapping method introduced in this document is based | |||
| on the approaches described in [RFC8078] Section 3, but adds | on the approaches described in Section 3 of [RFC8078], but adds | |||
| authentication to the CDS/CDNSKEY concept. Its security level is | authentication to the CDS/CDNSKEY concept. Its security level is | |||
| therefore strictly higher than that of existing approaches described | therefore strictly higher than that of existing approaches described | |||
| in that document (e.g., "Accept after Delay"). Apart from this | in that document (e.g., "Accept after Delay"). Apart from this | |||
| general improvement, the same Security Considerations apply as in | general improvement, the same Security Considerations apply as in | |||
| [RFC8078]. | [RFC8078]. | |||
| The level of rigor in Section 4.2 is needed to prevent publication of | The level of rigor in Section 4.2 is needed to prevent publication of | |||
| a ill-conceived DS RRset (authorized only under a subset of NS | an ill-conceived DS RRset (authorized only under a subset of NS | |||
| hostnames). This ensures, for example, that an operator in a multi- | hostnames). This ensures, for example, that an operator in a multi- | |||
| homed setup cannot enable DNSSEC unless all other operators agree. | homed setup cannot enable DNSSEC unless all other operators agree. | |||
| In any case, as the child DNS operator has authoritative knowledge of | In any case, as the child DNS operator has authoritative knowledge of | |||
| the child's CDS/CDNSKEY records, it can readily detect fraudulent | the child's CDS/CDNSKEY records, it can readily detect fraudulent | |||
| provisioning of DS records. | provisioning of DS records. | |||
| In order to prevent the parents of nameserver hostnames from becoming | In order to prevent the parents of nameserver hostnames from becoming | |||
| a single point of failure for a delegation (both in terms of | a single point of failure for a delegation (both in terms of | |||
| resolution availability and for the trust model of this protocol), it | resolution availability and for the trust model of this protocol), | |||
| is advisable to diversify the path from the root to the child's | diversifying the path from the root to the child's nameserver | |||
| nameserver hostnames, such as by using different and independently | hostnames is advisable. For example, different and independently | |||
| operated TLDs for each one. | operated TLDs may be used for each one. | |||
| If QNAME minimization [RFC9156] is not used when querying for | If QNAME minimization [RFC9156] is not used when querying for | |||
| signaling records, an upstream parent of a signaling domain will see | signaling records, an upstream parent of a signaling domain will see | |||
| those CDS/CDNSKEY queries and could respond with an authoritative | those CDS/CDNSKEY queries and could respond with an authoritative | |||
| answer signed with its own key, instead of sending the referral. | answer signed with its own key, instead of sending the referral. | |||
| Enabling QNAME minimization reduces the attack surface for such | Enabling QNAME minimization reduces the attack surface for such | |||
| forgery. | forgery. | |||
| 7. IANA Considerations | 7. IANA Considerations | |||
| Per [RFC8552], IANA is requested to add the following entries to the | IANA has added the following entries to the "Underscored and Globally | |||
| "Underscored and Globally Scoped DNS Node Names" registry: | Scoped DNS Node Names" registry [RFC8552]: | |||
| +---------+------------+------------+ | ||||
| | RR Type | _NODE NAME | Reference | | ||||
| +---------+------------+------------+ | ||||
| | CDS | _signal | [This RFC] | | ||||
| | CDNSKEY | _signal | [This RFC] | | ||||
| +---------+------------+------------+ | ||||
| *Note to the RFC Editor*: please replace "This RFC" in the above | ||||
| table with a proper reference. | ||||
| 8. Implementation Status | ||||
| *Note to the RFC Editor*: please remove this entire section before | ||||
| publication. | ||||
| In addition to the information in this section, deployment is tracked | ||||
| by the community at https://github.com/oskar456/cds-updates | ||||
| (https://github.com/oskar456/cds-updates). | ||||
| 8.1. Child DNS Operator-side | ||||
| * Operator support: | ||||
| - Cloudflare has implemented bootstrapping record synthesis for | ||||
| all signed customer zones. | ||||
| - Glauca HexDNS publishes bootstrapping records for its customer | ||||
| zones. | ||||
| - deSEC performs bootstrapping record synthesis for its zones | ||||
| using names _signal.ns1.desec.io and _signal.ns2.desec.org. | ||||
| * Authoritative nameserver support: | ||||
| - Knot DNS supports signaling record synthesis since version | ||||
| 3.3.5. | ||||
| - An implementation of bootstrapping record synthesis in PowerDNS | ||||
| is available at https://github.com/desec-io/desec-ns/pull/46 | ||||
| (https://github.com/desec-io/desec-ns/pull/46). | ||||
| 8.2. Parental Agent-side | ||||
| * ccTLD: | ||||
| - SWITCH (.ch, .li) has implemented authentication of consumed | ||||
| CDS records based on this draft. | ||||
| - .cl is working on an implementation. | ||||
| * gTLD: | ||||
| - Knipp has implemented consumption of DNSSEC bootstrapping | ||||
| records in its TANGO and CORE registry systems. | ||||
| - A deployment of this is running at .swiss. | ||||
| * Registrars: | ||||
| - Glauca has implemented authenticated CDS processing. | ||||
| - GoDaddy is working on an implementation. | ||||
| * A tool to retrieve and process signaling records for bootstrapping | ||||
| purposes, either directly or via zone walking, is available at | ||||
| https://github.com/desec-io/dsbootstrap (https://github.com/desec- | ||||
| io/dsbootstrap). The tool outputs the validated DS records which | ||||
| then can be added to the parent zone. | ||||
| 9. Acknowledgements | ||||
| Thanks to Brian Dickson, Ondřej Caletka, John R. Levine, Christian | +=========+============+===========+ | |||
| Elmerot, Oli Schacher, Donald Eastlake, Libor Peltan, Warren Kumari, | | RR Type | _NODE NAME | Reference | | |||
| Scott Rose, Linda Dunbar, Tim Wicinski, Paul Wouters, Paul Hoffman, | +=========+============+===========+ | |||
| Peter Yee, Benson Muite, Roman Danyliw, Éric Vyncke, and Joe Abley | | CDS | _signal | RFC 9615 | | |||
| for reviewing draft proposals and offering comments and suggestions. | +---------+------------+-----------+ | |||
| | CDNSKEY | _signal | RFC 9615 | | ||||
| +---------+------------+-----------+ | ||||
| Thanks also to Steve Crocker, Hugo Salgado, and Ulrich Wisser for | Table 1 | |||
| early-stage brainstorming. | ||||
| 10. References | 8. References | |||
| 10.1. Normative References | 8.1. Normative References | |||
| [RFC1035] Mockapetris, P., "Domain names - implementation and | [RFC1035] Mockapetris, P., "Domain names - implementation and | |||
| specification", STD 13, RFC 1035, DOI 10.17487/RFC1035, | specification", STD 13, RFC 1035, DOI 10.17487/RFC1035, | |||
| November 1987, <https://www.rfc-editor.org/info/rfc1035>. | November 1987, <https://www.rfc-editor.org/info/rfc1035>. | |||
| [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, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| skipping to change at page 14, line 37 ¶ | skipping to change at line 569 ¶ | |||
| [RFC9156] Bortzmeyer, S., Dolmans, R., and P. Hoffman, "DNS Query | [RFC9156] Bortzmeyer, S., Dolmans, R., and P. Hoffman, "DNS Query | |||
| Name Minimisation to Improve Privacy", RFC 9156, | Name Minimisation to Improve Privacy", RFC 9156, | |||
| DOI 10.17487/RFC9156, November 2021, | DOI 10.17487/RFC9156, November 2021, | |||
| <https://www.rfc-editor.org/info/rfc9156>. | <https://www.rfc-editor.org/info/rfc9156>. | |||
| [RFC9499] Hoffman, P. and K. Fujiwara, "DNS Terminology", BCP 219, | [RFC9499] Hoffman, P. and K. Fujiwara, "DNS Terminology", BCP 219, | |||
| RFC 9499, DOI 10.17487/RFC9499, March 2024, | RFC 9499, DOI 10.17487/RFC9499, March 2024, | |||
| <https://www.rfc-editor.org/info/rfc9499>. | <https://www.rfc-editor.org/info/rfc9499>. | |||
| 10.2. Informative References | 8.2. Informative References | |||
| [BCP237] Best Current Practice 237, | [BCP237] Best Current Practice 237, | |||
| <https://www.rfc-editor.org/info/bcp237>. | <https://www.rfc-editor.org/info/bcp237>. | |||
| At the time of writing, this BCP comprises the following: | At the time of writing, this BCP comprises the following: | |||
| Hoffman, P., "DNS Security Extensions (DNSSEC)", BCP 237, | Hoffman, P., "DNS Security Extensions (DNSSEC)", BCP 237, | |||
| RFC 9364, DOI 10.17487/RFC9364, February 2023, | RFC 9364, DOI 10.17487/RFC9364, February 2023, | |||
| <https://www.rfc-editor.org/info/rfc9364>. | <https://www.rfc-editor.org/info/rfc9364>. | |||
| [I-D.hardaker-dnsop-intentionally-temporary-insec] | [INSEC] Hardaker, W., "Intentionally Temporarily Degraded or | |||
| Hardaker, W., "Intentionally Temporarily Degraded or | ||||
| Insecure", Work in Progress, Internet-Draft, draft- | Insecure", Work in Progress, Internet-Draft, draft- | |||
| hardaker-dnsop-intentionally-temporary-insec-01, 21 | hardaker-dnsop-intentionally-temporary-insec-01, 21 | |||
| October 2021, <https://datatracker.ietf.org/doc/html/ | October 2021, <https://datatracker.ietf.org/doc/html/ | |||
| draft-hardaker-dnsop-intentionally-temporary-insec-01>. | draft-hardaker-dnsop-intentionally-temporary-insec-01>. | |||
| [RFC8901] Huque, S., Aras, P., Dickinson, J., Vcelak, J., and D. | [RFC8901] Huque, S., Aras, P., Dickinson, J., Vcelak, J., and D. | |||
| Blacka, "Multi-Signer DNSSEC Models", RFC 8901, | Blacka, "Multi-Signer DNSSEC Models", RFC 8901, | |||
| DOI 10.17487/RFC8901, September 2020, | DOI 10.17487/RFC8901, September 2020, | |||
| <https://www.rfc-editor.org/info/rfc8901>. | <https://www.rfc-editor.org/info/rfc8901>. | |||
| Appendix A. Change History (to be removed before publication) | Acknowledgements | |||
| * draft-ietf-dnsop-dnssec-bootstrapping-11 | ||||
| | Addressed comment by Paul Wouters | ||||
| * draft-ietf-dnsop-dnssec-bootstrapping-10 | ||||
| | Editorial nit | ||||
| | | ||||
| | Addressed comments by Paul Wouters | ||||
| | | ||||
| | Make capitalization of registrar/registrant consistent | ||||
| | | ||||
| | Editorial nit by Joe Abley | ||||
| | | ||||
| | Addressed comments by Éric Vyncke | ||||
| * draft-ietf-dnsop-dnssec-bootstrapping-09 | ||||
| | Addressed comments by Paul Wouters | ||||
| | | ||||
| | Editorial nits by Roman Danyliw | ||||
| | | ||||
| | Editorial nits by Benson Muite | ||||
| | | ||||
| | Editorial nits by Peter Yee | ||||
| | | ||||
| | Editorial nit by Scott Rose | ||||
| | | ||||
| | Editorial suggestion from John Levine | ||||
| * draft-ietf-dnsop-dnssec-bootstrapping-08 | ||||
| | Editorial changes from AD Review | ||||
| | | ||||
| | Updated implementation section | ||||
| | | ||||
| | Change capitalization of terms from terminology section | ||||
| * draft-ietf-dnsop-dnssec-bootstrapping-07 | ||||
| | Add Glauca registrar implementation | ||||
| | | ||||
| | Editorial changes to Security Considerations | ||||
| | | ||||
| | Add/discuss on-demand triggers (notifications) | ||||
| * draft-ietf-dnsop-dnssec-bootstrapping-06 | ||||
| | Add section "Updates to RFCs" | ||||
| | | ||||
| | Editorial nits | ||||
| | | ||||
| | Editorial changes from Secdir early review | ||||
| * draft-ietf-dnsop-dnssec-bootstrapping-05 | ||||
| | Editorial changes | ||||
| * draft-ietf-dnsop-dnssec-bootstrapping-04 | ||||
| | Added consent considerations. | ||||
| | | ||||
| | Editorial changes. | ||||
| * draft-ietf-dnsop-dnssec-bootstrapping-03 | ||||
| | Updated Implementation section. | ||||
| | | ||||
| | Typo fix. | ||||
| * draft-ietf-dnsop-dnssec-bootstrapping-02 | ||||
| | Clarified that RFC 8078 Section 3 is not replaced, but its methods | ||||
| | are deprecated. | ||||
| | | ||||
| | Added new deployments to Implementation section. | ||||
| | | ||||
| | Included NSEC walk / AXFR as possible triggers for DS | ||||
| | bootstrapping. | ||||
| | | ||||
| | Editorial changes. | ||||
| * draft-ietf-dnsop-dnssec-bootstrapping-01 | ||||
| | Allow bootstrapping when some (not all) NS hostnames are in | ||||
| | bailiwick. | ||||
| | | ||||
| | Clarified Operational Recommendations according to operator | ||||
| | feedback. | ||||
| | | ||||
| | Turn loose Security Considerations points into coherent text. | ||||
| | | ||||
| | Do no longer suggest NSEC-walking Signaling Domains. (It does not | ||||
| | work well due to the Signaling Type prefix. What's more, it's | ||||
| | unclear who would do this: Parents know there delegations and can | ||||
| | do a targeted scan; others are not interested.) | ||||
| | | ||||
| | Editorial changes. | ||||
| | | ||||
| | Added IANA request. | ||||
| | | ||||
| | Introduced Signaling Type prefix (_dsboot), renamed Signaling Name | ||||
| | infix from _dsauth to _signal. | ||||
| * draft-ietf-dnsop-dnssec-bootstrapping-00 | ||||
| | Editorial changes. | ||||
| * draft-thomassen-dnsop-dnssec-bootstrapping-03 | ||||
| | Clarified importance of record cleanup by moving paragraph up. | ||||
| | | ||||
| | Pointed out limitations. | ||||
| | | ||||
| | Replace [RFC8078] Section 3 with our Section 4.2. | ||||
| | | ||||
| | Changed _boot label to _dsauth. | ||||
| | | ||||
| | Removed hashing of Child name components in Signaling Names. | ||||
| | | ||||
| | Editorial changes. | ||||
| * draft-thomassen-dnsop-dnssec-bootstrapping-02 | ||||
| | Reframed as an authentication mechanism for RFC 8078. | ||||
| | | ||||
| | Removed multi-signer use case (focus on RFC 8078 authentication). | ||||
| | | ||||
| | Triggers need to fetch NS records (if not implicit from context). | ||||
| | | ||||
| | Improved title. | ||||
| | | ||||
| | Recognized that hash collisions are dealt with by Child apex | ||||
| | check. | ||||
| * draft-thomassen-dnsop-dnssec-bootstrapping-01 | ||||
| | Add section on Triggers. | ||||
| | | ||||
| | Clarified title. | ||||
| | | ||||
| | Improved abstract. | ||||
| | | ||||
| | Require CDS/CDNSKEY records at the Child. | ||||
| | | ||||
| | Reworked Signaling Name scheme. | ||||
| | | ||||
| | Recommend using cold cache for consumption. | ||||
| | | ||||
| | Updated terminology (replace "Bootstrapping" by "Signaling"). | ||||
| | | ||||
| | Added NSEC recommendation for Bootstrapping Zones. | ||||
| | | ||||
| | Added multi-signer use case. | ||||
| | | ||||
| | Editorial changes. | ||||
| * draft-thomassen-dnsop-dnssec-bootstrapping-00 | Thanks to Brian Dickson, Ondřej Caletka, John R. Levine, Christian | |||
| Elmerot, Oli Schacher, Donald Eastlake, Libor Peltan, Warren Kumari, | ||||
| Scott Rose, Linda Dunbar, Tim Wicinski, Paul Wouters, Paul Hoffman, | ||||
| Peter Yee, Benson Muite, Roman Danyliw, Éric Vyncke, and Joe Abley | ||||
| for reviewing draft proposals and offering comments and suggestions. | ||||
| | Initial public draft. | Thanks also to Steve Crocker, Hugo Salgado, and Ulrich Wisser for | |||
| early-stage brainstorming. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Peter Thomassen | Peter Thomassen | |||
| deSEC, Secure Systems Engineering | deSEC, Secure Systems Engineering (SSE) | |||
| Berlin | Berlin | |||
| Germany | Germany | |||
| Email: peter@desec.io | Email: peter@desec.io | |||
| Nils Wisiol | Nils Wisiol | |||
| deSEC, Technische Universität Berlin | deSEC, Technische Universität Berlin | |||
| Berlin | Berlin | |||
| Germany | Germany | |||
| Email: nils@desec.io | Email: nils@desec.io | |||
| End of changes. 68 change blocks. | ||||
| 397 lines changed or deleted | 176 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||