<?xml version="1.0" encoding="utf-8"?>
<!-- name="GENERATOR" content="github.com/mmarkdown/mmark Mmark Markdown Processor - mmark.miek.nl" -->
<rfc version="3" ipr="trust200902" docName="draft-ietf-dnsop-dnssec-bootstrapping-01" submissionType="IETF" category="std" xml:lang="en" xmlns:xi="http://www.w3.org/2001/XInclude" updates="7344, 8078" consensus="true">

<front>
<title abbrev="dnssec-bootstrapping">Automatic DNSSEC Bootstrapping using Authenticated Signals from the Zone's Operator</title><seriesInfo value="draft-ietf-dnsop-dnssec-bootstrapping-01" stream="IETF" status="standard" name="Internet-Draft"></seriesInfo>
<author initials="P." surname="Thomassen" fullname="Peter Thomassen"><organization>deSEC, Secure Systems Engineering</organization><address><postal><street></street>
<city>Berlin</city>
<country>Germany</country>
</postal><email>peter@desec.io</email>
</address></author>
<author initials="N." surname="Wisiol" fullname="Nils Wisiol"><organization>deSEC, Technische Universität Berlin</organization><address><postal><street></street>
<city>Berlin</city>
<country>Germany</country>
</postal><email>nils@desec.io</email>
</address></author>
<date year="2022" month="June" day="17"></date>
<area>Internet</area>
<workgroup>DNSOP Working Group</workgroup>

<abstract>
<t>This document introduces an in-band method for DNS operators to
publish arbitrary information about the zones they are authoritative
for, in an authenticated fashion and on a per-zone basis.
The mechanism allows managed DNS operators to securely announce
DNSSEC key parameters for zones under their management, including for
zones that are not currently securely delegated.</t>
<t>Whenever DS records are absent for a zone's delegation, this signal
enables the parent's registry or registrar to cryptographically
validate the CDS/CDNSKEY records found at the child's apex.
The parent can then provision DS records for the delegation without
resorting to out-of-band validation or weaker types of cross-checks
such as &quot;Accept after Delay&quot; (<xref target="RFC8078"></xref>).</t>
<t>This document updates <xref target="RFC8078"></xref> and replaces its Section 3 with
<xref target="bootstrapping"></xref> of this document.</t>
<t>[ Ed note: This document is being collaborated on at
<eref target="https://github.com/desec-io/draft-ietf-dnsop-dnssec-bootstrapping/">https://github.com/desec-io/draft-ietf-dnsop-dnssec-bootstrapping/</eref>.
The authors gratefully accept pull requests. ]</t>
</abstract>

</front>

<middle>

<section anchor="introduction"><name>Introduction</name>
<t>Securing a DNS delegation for the first time requires that the
Child's DNSSEC parameters be conveyed to the Parent through some
trusted channel.
While the communication conceptually has to occur between the Parent
registry and the DNSSEC key holder, what exactly that means and how
the communication is coordinated traditionally depends on the
relationship the Child has with the Parent.</t>
<t>A typical situation is that the key is held by the Child DNS
Operator; the communication thus often involes this entity.
In addition, depending on the circumstances, it may also involve the
Registrar, possibly via the Registrant (for details, see <xref target="RFC7344"></xref>,
Appendix A).</t>
<t>As observed in <xref target="RFC7344"></xref>, these dependencies often result in a manual
process that is susceptible to mistakes and/or errors.
In addition, due to the annoyance factor of the process, involved
parties may avoid the process of getting a DS record set published in
the first place.</t>
<t>To alleviate these problems, automated provisioning of DS records has
been specified in (<xref target="RFC8078"></xref>).
It is based on the Parental Agent (registry or registrar) fetching
DNSSEC key parameters in the form of CDS and CDNSKEY records
(<xref target="RFC7344"></xref>) from the Child zone's apex, and validating them
somehow.
This validation can be done using DNSSEC itself if the objective is
to update an existing DS record set (such as during key rollover).
However, when bootstrapping a DNSSEC delegation, the Child zone has
no existing DNSSEC validation path, and other means to ensure the
CDS/CDNSKEY records' legitimacy must be found.</t>
<t>For lack of a comprehensive DNS-innate solution, either out-of-band
methods have been used so far to complete the chain of trust, or
cryptographic validation has been entirely dispensed with, in
exchange for weaker types of cross-checks such as &quot;Accept after
Delay&quot; (<xref target="RFC8078"></xref> Section 3.3).
<xref target="RFC8078"></xref> does not define an in-band validation method for enabling
DNSSEC.</t>
<t>This document aims to close this gap by introducing an in-band method
for DNS Operators to publish arbitrary information about the zones
they are authoritative for, in an authenticated manner and on a
per-zone basis.
The mechanism allows managed DNS Operators to securely announce
DNSSEC key parameters for zones under their management.
The Parent can then use this signal to cryptographically validate the
CDS/CDNSKEY records found at an insecure Child zone's apex, and upon
success secure the delegation.</t>
<t>While applicable to the vast majority of domains, the protocol does
not support certain edge cases, such as excessively long Child zone
names, or DNSSEC bootstrapping for domains with in-bailick nameservers
only (see <xref target="limitations"></xref>).</t>
<t>Readers are expected to be familiar with DNSSEC, including <xref target="RFC4033"></xref>,
<xref target="RFC4034"></xref>, <xref target="RFC4035"></xref>, <xref target="RFC6781"></xref>, <xref target="RFC7344"></xref>, and <xref target="RFC8078"></xref>.</t>

<section anchor="terminology"><name>Terminology</name>
<t>This section defines the terminology used in this document.</t>

<dl>
<dt>CDS/CDNSKEY</dt>
<dd>This notation refers to CDS and/or CDNSKEY, i.e., one or both.</dd>
<dt>Child</dt>
<dd>The entity on record that has the delegation of the domain from the
Parent.</dd>
<dt>Child DNS Operator</dt>
<dd>The entity that maintains and publishes the zone information for
the Child DNS.</dd>
<dt>Parent</dt>
<dd>The domain in which the Child is registered.</dd>
<dt>Parental Agent</dt>
<dd>The entity that has the authority to insert DS records into the
Parent zone on behalf of the Child.
(It could the the registry, registrar, a reseller, or some other
authorized entity.)</dd>
<dt>Signaling Domain</dt>
<dd>A hostname from the Child's NS record set, prefixed with the label
<tt>_signal</tt>.
There are as many Signaling Domains as there are distinct NS
targets.</dd>
<dt>Signaling Name</dt>
<dd>The labels that are prefixed to a Signaling Domain in order to
identify a Signaling Type and a Child zone's name (see
<xref target="signalingnames"></xref>).</dd>
<dt>Signaling Record</dt>
<dd>A DNS record located at a Signaling Name under a Signaling Domain.
Signaling Records are used by the Child DNS Operator to publish
information about the Child.</dd>
<dt>Signaling Type</dt>
<dd>A signal type identifier, such as <tt>_dsboot</tt> for DNSSEC bootstrapping.</dd>
<dt>Signaling Zone</dt>
<dd>The zone which is authoritative for a given Signaling Record.</dd>
</dl>
</section>

<section anchor="requirements-notation"><name>Requirements Notation</name>
<t>The key words &quot;<bcp14>MUST</bcp14>&quot;, &quot;<bcp14>MUST NOT</bcp14>&quot;, &quot;<bcp14>REQUIRED</bcp14>&quot;,
&quot;<bcp14>SHALL</bcp14>&quot;, &quot;<bcp14>SHALL NOT</bcp14>&quot;, &quot;<bcp14>SHOULD</bcp14>&quot;, &quot;<bcp14>SHOULD NOT</bcp14>&quot;,
&quot;<bcp14>RECOMMENDED</bcp14>&quot;, &quot;<bcp14>NOT RECOMMENDED</bcp14>&quot;, &quot;<bcp14>MAY</bcp14>&quot;, and
&quot;<bcp14>OPTIONAL</bcp14>&quot; in this document are to be interpreted as described in
BCP 14 <xref target="RFC2119"></xref> <xref target="RFC8174"></xref> when, and only when, they appear in all
capitals, as shown here.</t>
</section>
</section>

<section anchor="signaling"><name>Signaling</name>
<t>This section describes the general mechanism by which a Child DNS
Operator can publish an authenticated signal about a Child zone.
Parental Agents (or any other party) can then discover and process the
signal.
Authenticity is ensured through standard DNSSEC validation.</t>

<section anchor="chain-of-trust"><name>Chain of Trust</name>
<t>If a Child DNS Operator implements the protocol, each Signaling Zone
MUST be signed and securely delegated, i.e. have a valid DNSSEC chain
of trust.</t>
<t>For example, when publishing a signal that relates to a Child zone
with NS records <tt>ns1.example.net</tt> and <tt>ns2.example.org</tt>, the Child
DNS Operator needs to ensure that a valid DNSSEC chain of trust
exists for the zone(s) that are authoritative for the Signaling
Domains <tt>_signal.ns1.example.net</tt> and <tt>_signal.ns2.example.org</tt>.</t>
</section>

<section anchor="signalingnames"><name>Signaling Names</name>
<t>To publish a piece of information about the Child zone in an
authenticated fashion, the Child DNS Operator MUST publish one or
more Signaling Records at a Signaling Name under each Signaling Domain.</t>
<t>Signaling Records MUST be accompanied by RRSIG records created with
the corresponding Signaling Zone's key(s).
The type and contents of these Signaling Records depend on the type of
signal.</t>
<t>The Signaling Name identifies the Child and the Signaling Type.
It is identical to the Child name (but with the final root label removed),
prefixed with a label containing the Signaling Type.</t>
</section>
</section>

<section anchor="bootstrapping-a-dnssec-delegation"><name>Bootstrapping a DNSSEC Delegation</name>
<t>When the Child zone's CDS/CDNSKEY RRsets are used for setting up initial
trust, they need to be authenticated.
This is achieved by co-publishing the Child's CDS/CDNSKEY records as an
authenticated signal from the Child DNS Operator.
The Parent can discover and validate this signal, thus transferring
trust from the Child DNS Operator to the Child zone.</t>
<t>Child DNS Operators and Parental Agents who wish to use CDS/CDNSKEY
records for DNSSEC bootstrapping SHOULD support the authentication
protocol described in this section.</t>

<section anchor="signalingrecords"><name>Signaling Consent to Act as the Child's Signer</name>
<t>To confirm its willingness to act as the Child's delegated signer and
authenticate the Child's CDS/CDNSKEY RRsets, the Child DNS Operator
MUST co-publish them at the corresponding Signaling Name under each
out-of-bailiwick Signaling Domain (<xref target="signalingnames"></xref>).
For simplicity, the Child DNS Operator MAY also co-publish the Child's
CDS/CDNSKEY RRsets under Signaling Domains that are in bailiwick,
although those Signaling Domains are not used for validation
(<xref target="bootstrapping"></xref>).</t>
<t>Unlike the CDS/CDNSKEY records at the Child's apex, Signaling
Records MUST be signed with the corresponding Signaling Zone's
key(s).  Their contents MUST be identical to the corresponding
records published at the Child's apex.</t>
<t>Existing use of CDS/CDNSKEY records is specified at the Child apex
only (<xref target="RFC7344"></xref>, Section 4.1).  This protocol extends the use of
these record types to non-apex owner names for the purpose of DNSSEC
bootstrapping.  To exclude the possibility of semantic collision,
there MUST NOT be a zone cut at a Signaling Name.</t>

<section anchor="example"><name>Example</name>
<t>For the purposes of bootstrapping the Child zone <tt>example.co.uk</tt> with NS
records <tt>ns1.example.net</tt>, <tt>ns2.example.org</tt>, and <tt>ns3.example.co.uk</tt>,
the required Signaling Domains are <tt>_signal.ns1.example.net</tt> and
<tt>_signal.ns2.example.org</tt>.</t>
<t>In the zones containing these domains, the Child DNS Operator
authenticates the CDS/CDNSKEY records found at the Child's apex by
co-publishing them at the names:</t>

<artwork>_dsboot.example.co.uk._signal.ns1.example.net
_dsboot.example.co.uk._signal.ns2.example.org
</artwork>
<t>The records are accompanied by RRSIG records created using the key(s)
of the respective Signaling Zone.</t>
<t>Publication of Signaling Records under the in-bailiwick domain
<tt>_signal.ns3.example.co.uk</tt> is not required.</t>
</section>
</section>

<section anchor="bootstrapping"><name>Validating CDS/CDNSKEY Records for DNSSEC Bootstrapping</name>
<t>This section replaces Section 3 of <xref target="RFC8078"></xref>.</t>
<t>To validate a Child's CDS/CDNSKEY RRset for DNSSEC bootstrapping, the
Parental Agent, knowing both the Child zone name and its NS
hostnames, MUST execute the following steps:</t>

<ol>
<li><t>verify that the Child is not currently securely delegated and that at
least one of its nameservers is out of bailiwick;</t>
</li>
<li><t>query the CDS/CDNSKEY records at the Child zone apex directly from
each of the authoritative servers as determined by the delegation's
NS record set (without caching);</t>
</li>
<li><t>query the CDS/CDNSKEY records located at the Signaling Name under
each out-of-bailiwick Signaling Domain using a trusted DNS resolver
and enforce DNSSEC validation;</t>
</li>
<li><t>check (separately by record type) that all record sets retrieved
in Steps 2 and 3 have equal contents;</t>
</li>
</ol>
<t>If the above steps succeed without error, the CDS/CDNSKEY records are
successfully validated, and the Parental Agent can proceed with the
publication of the DS record set under the precautions described in
<xref target="RFC8078"></xref>, Section 5.</t>
<t>If, however, an error condition occurs, in particular:</t>

<ul>
<li><t>in Step 1: the Child is already securely delegated or has in-bailiwick
nameservers only;</t>
</li>
<li><t>in Step 2: any failure during the retrieval of the CDS/CDNSKEY
records located at the Child apex from any of the authoritative
nameservers;</t>
</li>
<li><t>in Step 3: any failure to retrieve the CDS/CDNSKEY RRsets located
at the Signaling Name under any Signaling Domain, including failure
of DNSSEC validation, or unauthenticated data (AD bit not set);</t>
</li>
<li><t>in Step 4: inconsistent responses (for at least one of the types),
including a record set that is empty in one of Steps 2 or 3, but
non-empty in the other;</t>
</li>
</ul>
<t>the Parental Agent MUST abort the procedure.</t>

<section anchor="example-1"><name>Example</name>
<t>To verify the CDS/CDNSKEY records for the Child <tt>example.co.uk</tt>, the
Parental Agent (assuming that the Child delegation's NS records are
<tt>ns1.example.net</tt>, <tt>ns2.example.org</tt>, and <tt>ns3.example.co.uk</tt>)</t>

<ol>
<li><t>checks that the Child domain is not yet securely delegated;</t>
</li>
<li><t>queries CDS/CDNSKEY records for <tt>example.co.uk</tt> directly from
<tt>ns1.example.net</tt>, <tt>ns2.example.org</tt>, and <tt>ns3.example.co.uk</tt>
(without caching);</t>
</li>
<li><t>queries and validates the CDS/CDNSKEY records located at (see
<xref target="signalingnames"></xref>; <tt>ns3.example.co.uk</tt> is ignored because it is in
bailiwick)</t>
</li>
</ol>

<artwork>_dsboot.example.co.uk._signal.ns1.example.net
_dsboot.example.co.uk._signal.ns2.example.org
</artwork>

<ol start="4">
<li>checks that the CDS/CDNSKEY record sets retrieved in Steps 2
and 3 agree across responses.</li>
</ol>
<t>If all these steps succeed, the Parental Agent can proceed to publish
a DS record set as indicated by the validated CDS/CDNSKEY records.</t>
<t>The Parental Agent does not use in-bailiwick Signaling Names during
validation because they cannot have a pre-established chain of trust at
bootstrapping time, so are not useful for bootstrapping.
Consequently, if all NS hostnames are in bailiwick, validation cannot be
completed, and DS records are not published.</t>
</section>
</section>

<section anchor="triggers"><name>Triggers</name>
<t>Parental Agents SHOULD trigger the procedure described in
<xref target="bootstrapping"></xref> once one of the following conditions is fulfilled:</t>

<ul>
<li><t>The Parental Agent receives a new or updated NS record set for a
Child;</t>
</li>
<li><t>The Parental Agent encounters Signaling Records during a
proactive, opportunistic scan (e.g. daily queries for the
Signaling Records of some or all of its delegations);</t>
</li>
<li><t>Any other condition as deemed appropriate by local policy.</t>
</li>
</ul>
<t>Most types of discovery (such as daily scans of delegations) are based
directly on the delegation's NS record set.
In this case, these NS names can be used as is by the bootstrapping
algorithm (<xref target="bootstrapping"></xref>) for querying Signaling Records.</t>
<t>Some discovery methods, however, do not imply reliable knowledge of the
Child's NS record set.
For example, when discovering Signaling Names by performing an NSEC
walk or zone transfer for a Signaling Domain, the Parental Agent MUST
NOT assume that the nameserver(s) under whose Signaling Domain(s) a
Signaling Name appears is in fact authoritative for the corresponding
Child.</t>
<t>In this case (and in other cases alike where some list of
&quot;bootstrappable domains&quot; is retrieved elsewhere), the Parental Agent
MUST ascertain that the Child's delegation actually contains the
nameserver hostname seen during discovery, and ensure that Signaling
Record queries are only made against the proper set of nameservers as
listed in the Child's delegation from the Parent.</t>
</section>

<section anchor="limitations"><name>Limitations</name>
<t>As a consequence of Step 3 in <xref target="bootstrapping"></xref>, DS bootstrapping does
not work for fully in-bailiwick delegations, as no pre-existing chain of
trust to the Child domain is available during bootstrapping.</t>
<t>The protocol is further restricted by the fact that the fully
qualified Signaling Names fit within the general limits that apply to
DNS names (such as their length and label count).</t>
</section>
</section>

<section anchor="operational-recommendations"><name>Operational Recommendations</name>

<section anchor="child-dns-operator"><name>Child DNS Operator</name>
<t>Signaling Domains SHOULD be delegated as zones of their own, so
that the Signaling Zone's apex coincides with the Signaling
Domain (such as <tt>_signal.ns1.example.net</tt>).
While it is permissible for the Signaling Domain to be contained
in a Signaling Zone of fewer labels (such as <tt>example.net</tt>), a
zone cut ensures that bootstrapping activities do not require
modifications of the zone containing the nameserver hostname.</t>
<t>To keep the size of the Signaling Zones minimal and bulk processing
efficient (such as via zone transfers), Child DNS Operators SHOULD
remove Signaling Records which are found to have been acted upon.</t>
</section>

<section anchor="parental-agent"><name>Parental Agent</name>
<t>It is RECOMMENDED to perform queries within Signaling Domains
(<xref target="bootstrapping"></xref>) with an (initially) cold resolver cache or to limit
the TTL of cached records to the interval between scans, as to retrieve
the most current information regardless of TTL.
(When a batch job is used to attempt bootstrapping for a large number
of delegations, the cache does not need to get cleared in between.)</t>
</section>
</section>

<section anchor="implementation-status"><name>Implementation Status</name>
<t><strong>Note to the RFC Editor</strong>: please remove this entire section before publication.</t>

<section anchor="child-dns-operator-side"><name>Child DNS Operator-side</name>

<ul>
<li><t>Knot DNS supports manual creation of non-apex CDS/CDNSKEY records.</t>
</li>
<li><t>PowerDNS supports manual creation of non-apex CDS/CDNSKEY records.</t>
</li>
<li><t>Proof-of-concept Signaling Domains with several thousand Signaling
Names exist at <tt>_signal.ns1.desec.io</tt> and <tt>_signal.ns2.desec.org</tt>.</t>
</li>
<li><t>Another DNS operator has implemented the protocol (synthesizing
Signaling Records for a significant number of domains).</t>
</li>
<li><t>The authors are planning to develop a tool for automatic generation
of signaling records.</t>
</li>
</ul>
</section>

<section anchor="parental-agent-side"><name>Parental Agent-side</name>

<ul>
<li><t>A tool to retrieve and process Signaling Records for bootstrapping
purposes, either directly or via zone walking, is available at
<eref target="https://github.com/desec-io/dsbootstrap">https://github.com/desec-io/dsbootstrap</eref>.
The tool outputs the validated DS records which then can be added
to the Parent zone.</t>
</li>
<li><t>Some registries/registrars (e.g. .cl, GoDaddy) are working on
implementations of the protocol.</t>
</li>
</ul>
</section>
</section>

<section anchor="security-considerations"><name>Security Considerations</name>
<t>The protocol adds authentication to the CDS/CDNSKEY-based
bootstrapping concept of <xref target="RFC8078"></xref>, while removing nothing.
Its security level is therefore strictly higher than that of existing
approaches described in that document (e.g. &quot;Accept after Delay&quot;).
Apart from this general improvement, the same Security Considerations
apply as in <xref target="RFC8078"></xref>.</t>
<t>The level of rigor in <xref target="bootstrapping"></xref> is needed to prevent
publication of a half-baked DS RRset (authorized only under a subset
of NS hostnames).
This ensures, for example, that an operator in a multi-homed setup
cannot enable DNSSEC unless all other operators agree.</t>
<t>Because the parents of a Signaling Domain (such as the corresponding TLD
registry) are in control of its chain of trust, they are also able to
undermine the signal's authenticity.
To mitigate this risk, it is RECOMMENDED to increase the effort required
to collude for taking control of all Signaling Domains, by diversifying
the path from the root to each nameserver.
This is best achieved by using different and independently operated TLDs
for each one.
(TLD-independent NS hostnames are advisable anyways in DNS operations,
in order to prevent the TLD from becoming a single point of failure.)
Furthermore, as the Child DNS Operator has authoritative knowledge of
the Child's CDS/CDNSKEY records, it can readily detect fraudulent
provisioning of DS records.</t>
</section>

<section anchor="iana-considerations"><name>IANA Considerations</name>
<t>Per <xref target="RFC8552"></xref>, IANA is requested to add the following entries to the
&quot;Underscored and Globally Scoped DNS Node Names&quot; registry:</t>

<artwork>+---------+------------+-----------------------------------------+
| RR Type | _NODE NAME | Reference                               |
+---------+------------+-----------------------------------------+
| CDS     | _signal    | [draft-ietf-dnsop-dnssec-bootstrapping] |
| CDNSKEY | _signal    | [draft-ietf-dnsop-dnssec-bootstrapping] |
+---------+------------+-----------------------------------------+
</artwork>
</section>

<section anchor="acknowledgements"><name>Acknowledgements</name>
<t>Thanks to Brian Dickson, Ondřej Caletka, John R. Levine, Christian
Elmerot, Oli Schacher, Donald Eastlake, and Libor Peltan for reviewing
draft proposals and offering comments and suggestions.</t>
<t>Thanks also to Steve Crocker, Hugo Salgado, and Ulrich Wisser for
early-stage brainstorming.</t>
</section>

</middle>

<back>
<references><name>Normative References</name>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4033.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4034.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4035.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6781.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7344.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8078.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8552.xml"/>
</references>

<section anchor="change-history-to-be-removed-before-publication"><name>Change History (to be removed before publication)</name>

<ul>
<li>draft-ietf-dnsop-dnssec-bootstrapping-01</li>
</ul>
<blockquote><t>Allow bootstrapping when some (not all) NS hostnames are in bailiwick.</t>
<t>Clarified Operational Recommendations according to operator feedback.</t>
<t>Turn loose Security Considerations points into coherent text.</t>
<t>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.)</t>
<t>Editorial changes.</t>
<t>Added IANA request.</t>
<t>Introduced Signaling Type prefix (<tt>_dsboot</tt>), renamed Signaling Name
  infix from <tt>_dsauth</tt> to <tt>_signal</tt>.</t>
</blockquote>
<ul>
<li>draft-ietf-dnsop-dnssec-bootstrapping-00</li>
</ul>
<blockquote><t>Editorial changes.</t>
</blockquote>
<ul>
<li>draft-thomassen-dnsop-dnssec-bootstrapping-03</li>
</ul>
<blockquote><t>Clarified importance of record cleanup by moving paragraph up.</t>
<t>Pointed out limitations.</t>
<t>Replace <xref target="RFC8078"></xref> Section 3 with our <xref target="bootstrapping"></xref>.</t>
<t>Changed <tt>_boot</tt> label to <tt>_dsauth</tt>.</t>
<t>Removed hashing of Child name components in Signaling Names.</t>
<t>Editorial changes.</t>
</blockquote>
<ul>
<li>draft-thomassen-dnsop-dnssec-bootstrapping-02</li>
</ul>
<blockquote><t>Reframed as an authentication mechanism for RFC 8078.</t>
<t>Removed multi-signer use case (focus on RFC 8078 authentication).</t>
<t>Triggers need to fetch NS records (if not implicit from context).</t>
<t>Improved title.</t>
<t>Recognized that hash collisions are dealt with by Child apex check.</t>
</blockquote>
<ul>
<li>draft-thomassen-dnsop-dnssec-bootstrapping-01</li>
</ul>
<blockquote><t>Add section on Triggers.</t>
<t>Clarified title.</t>
<t>Improved abstract.</t>
<t>Require CDS/CDNSKEY records at the Child.</t>
<t>Reworked Signaling Name scheme.</t>
<t>Recommend using cold cache for consumption.</t>
<t>Updated terminology (replace &quot;Bootstrapping&quot; by &quot;Signaling&quot;).</t>
<t>Added NSEC recommendation for Bootstrapping Zones.</t>
<t>Added multi-signer use case.</t>
<t>Editorial changes.</t>
</blockquote>
<ul>
<li>draft-thomassen-dnsop-dnssec-bootstrapping-00</li>
</ul>
<blockquote><t>Initial public draft.</t>
</blockquote></section>

</back>

</rfc>
