<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 2.6.10) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-fobser-dnsop-dnssec-keyrestore-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.2 -->
  <front>
    <title>DNSSEC Key Restore</title>
    <seriesInfo name="Internet-Draft" value="draft-fobser-dnsop-dnssec-keyrestore-00"/>
    <author fullname="Florian Obser">
      <organization>RIPE NCC</organization>
      <address>
        <email>fobser@ripe.net</email>
      </address>
    </author>
    <author fullname="Martin Pels">
      <organization>RIPE NCC</organization>
      <address>
        <email>mpels@ripe.net</email>
      </address>
    </author>
    <date year="2025" month="October" day="12"/>
    <area>Operations and Management</area>
    <workgroup>Domain Name System Operations</workgroup>
    <keyword>DNSSEC</keyword>
    <keyword>disaster recovery</keyword>
    <keyword>backup and restore</keyword>
    <abstract>
      <?line 53?>

<t>This document describes the issues surrounding the handling of DNSSEC
private keys in a DNSSEC signer. It presents operational guidance in
case a DNSSEC private key becoming inoperable.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Domain Name System Operations Working Group mailing list (dnsop@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/dnsop/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/fobser/draft-fobser-dnsop-dnssec-keyrecovery"/>.</t>
    </note>
  </front>
  <middle>
    <?line 59?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>DNSSEC <xref target="RFC9364"/> uses public key cryptography to provide integrity
protection of DNS data. From an operational point of view, it is
critically important to keep the private key secret under all
circumstances.</t>
      <t>The private key is typically kept secret by using Hardware Security
Modules (HSMs). HSMs are designed to perform cryptographic operations
such as creating keys and signing messages without disclosing the
private key. Alternatively the DNSSEC signer is an appliance or
commodity server hardware and operational policy stipulates that the
private key must not leave the signer.</t>
      <t>Operationally this is a risk because only a single key exists. The
key could become inoperable at any point due to hardware failure,
natural disaster, operator error, or malicious action.</t>
      <t>It is difficult to create backups of the private key. After all, the
system is designed to prevent backups. A compromise is usually reached
by using a secret sharing scheme, e.g. <xref target="Shamir"/>. The private key is
split into <em>n</em> pieces inside of the HSM, which are then distributed to
key share holders. In case the private key becomes inoperable, <em>m</em> out
of the <em>n</em> key share holders need to come together to restore the secret
key.</t>
      <t>A key sharing scheme does not mitigate all risk. When
more than <em>n-m</em> key shares become unavailable a restore cannot be
performed, because not enough key shares are available. This is
particularly challenging in small to medium sized teams.</t>
      <t>Unlike the private key, a DNSSEC signed zone can be considered public
data with its integrity protected by signatures. Signed zones can be
added to the normal, established backup procedures.</t>
      <t>The rest of the document describes procedures on how to restore DNSSEC
signing functionality with only a backup of the signed zone available.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>This document uses DNS terminology from <xref target="RFC9499"/>.
DNSSEC key states and timeline related abbreviations are defined in
<xref target="RFC7583"/>.</t>
      <t>The following additional definitions are used within this document.</t>
      <dl>
        <dt>Inoperable (private key):</dt>
        <dd>
          <t>The private part of a DNSKEY appearing in the chain of trust of
the zone that can no longer be used for signing. Causes include
hardware failure, natural disaster, operator error, or malicious
action. A compromised key is not an inoperable private key since it
can still be used for signing.</t>
        </dd>
        <dt>Operable (private key):</dt>
        <dd>
          <t>The opposite of an inoperable private key. A key that can be used
for signing.</t>
        </dd>
      </dl>
    </section>
    <section anchor="scope">
      <name>Scope</name>
      <t>The procedures described in this document pertain to DNSSEC architectures
with pre-signed records. Online signing, such as described in <xref target="RFC9824"/>,
is out of scope since it requires that each server carrying the zone holds
a copy of the signing key(s). Thus, the operational challenges are different
than described in the introduction.</t>
      <t>The root zone is out of scope since the distribution of a new trust
anchor takes considerably longer than the RRSIG lifetime <xref target="RFC7958"/>.</t>
      <t>Algorithm Rollovers as described in <xref target="RFC6781"/>, section 4.1.4 are out of
scope as well. They are already complicated enough and trying to recover
from an inoperable DNSSEC private key while an algorithm rollover is being
performed is unlikely to be successful. If a new algorithm is required,
the procedures defined in this document <bcp14>SHOULD</bcp14> be followed to first restore
signing with the old algorithm. Once this has been completed a regular
algorithm rollover can be performed.</t>
      <t>Regular key rollovers are in scope, since they do not pose extra
challenges. The procedures described in this document effectively
cancel a potentially ongoing key rollover and perform a new one.</t>
    </section>
    <section anchor="dnssec-key-restore">
      <name>DNSSEC Key Restore</name>
      <t>In case of a catastrophe where the DNSSEC private key becomes
inoperable and no functioning backups of the private key are
available, it is desirable to recover from this situation with DNS
resolution continuing to work for the effected zone(s) while
performing DNSSEC key restore operations.</t>
      <t>This is possible because the moment the DNSSEC private key becomes
inoperable, the zone is still correctly signed and served by the
authoritative name servers. Signatures typically have a lifetime of
many days. That means that the operator has a lot of time to recover
from this situation without the zone becoming bogus and no longer
validating. Hasty and inappropriate action on the other hand could
lead to outages.</t>
      <t>While the DNSSEC private key cannot be restored because no functioning
backups exist, the function of the zone can be restored.</t>
      <t>The restore process uses slightly modified key rollover procedures
from <xref target="RFC7583"/>.</t>
      <t>During the restore process, the signing software operates on a
pre-signed zone. That is, the zone already contains a DNSKEY RRset and
RRSIG RRsets. The signing software might try to remove these records
because the accompanying private key is no longer present. The operator
<bcp14>MUST</bcp14> prevent this, otherwise the zone will become bogus.</t>
      <t>The signing software <bcp14>MUST NOT</bcp14> remove DNSKEYs until instructed to do so
and <bcp14>SHOULD NOT</bcp14> remove old RRSIGs. If a signer implementation does
not support keeping the old RRSIG records in place these records,
excluding the RRSIG for the old DNSKEY RRset, <bcp14>MUST</bcp14> be manually added back
to the zone before publication.</t>
      <t>The exact process depends on which key(s) are inoperable and if the
zone is signed with a split KSK / ZSK key pair or a Combined Signing
Key (CSK).</t>
      <section anchor="ksk-zsk-split-ksk-operable-zsk-inoperable">
        <name>KSK / ZSK split, KSK operable, ZSK inoperable</name>
        <t>Since the old ZSK is inoperable, it cannot be used to create new
RRSIGs. Therefore the zone cannot be changed and only the Pre-Publication
method can be used. See <xref target="RFC7583"/> section 2.1.</t>
        <t>Section 3.2.1 of <xref target="RFC7583"/> documents the timeline for this
method.</t>
        <t>The following diagram shows the timeline of the restoration.
Time increases along the horizontal scale from left to right and the vertical
lines indicate events in the process. Significant times and time intervals
are marked.</t>
        <artwork><![CDATA[
              |1|      |2|   |3|      |4|
               |        |     |        |
Key N         - - ----------->|<-Iret->|
               |        |     |        |
Key N+1        |<-Ipub->|<--->|<----- - -
               |        |     |        |
Key N                                 Trem
Key N+1        Tpub    Trdy  Tact

                  ---- Time ---->
]]></artwork>
        <t>Event 1: The new ZSK is added to the DNSKEY RRset at its publication time
(Tpub).</t>
        <t>The inoperable ZSK and all RRSIGs it created <bcp14>MUST</bcp14> remain in the zone.</t>
        <t>The new ZSK must be published long enough to guarantee that any cached
DNSKEY RRset contains the new ZSK. This interval is the publication
interval (Ipub), given by</t>
        <artwork><![CDATA[
Ipub = Dprp + TTLkey
]]></artwork>
        <t>Dprp is the propagation delay, the time it takes for changes to
propagate to all authoritative nameserver instances. TTLkey is the TTL
of the DNSKEY RRset.</t>
        <t>Event 2: The new ZSK can be used when it becomes ready at Trdy.</t>
        <artwork><![CDATA[
Trdy = Tpub + Ipub.
]]></artwork>
        <t>At this point the zone can be changed again.</t>
        <t>Event 3: At some later time, the zone is signed with the new ZSK. At this
point RRSIGs from the inoperable ZSK can be removed. The inoperable ZSK
<bcp14>MUST</bcp14> be retained in the DNSKEY RRset.</t>
        <t>Event 4: The inoperable ZSK can be removed after the retire interval (Iret).</t>
        <artwork><![CDATA[
Iret = Dsgn + Dprp + TTLsig
]]></artwork>
        <t>Dsgn is the delay needed to ensure that all existing RRsets are signed
with the new ZSK, Dprp is the propagation delay and TTLsig is the
maximum TTL of all RRSIG records.</t>
        <t>Theoretically the Double-Signature method could be used as well. In this case
records in the zone can only be changed after the retire interval, which is at
least as long as the publication interval of the Pre-Publication
method. The Double-Signature retire interval is given by:</t>
        <artwork><![CDATA[
Iret = Dsgn + Dprp + max(TTLkey, TTLsig)
]]></artwork>
      </section>
      <section anchor="ksk-zsk-split-ksk-inoperable">
        <name>KSK / ZSK split, KSK inoperable</name>
        <t>Since the old KSK is inoperable, the DNSKEY RRset cannot be
changed. Therefore, only the Double-DS method can be used. See
<xref target="RFC7583"/> section 2.2.</t>
        <t>If the ZSK is inoperable as well, it <bcp14>MUST NOT</bcp14> be restored yet.</t>
        <t>Section 3.3.2 of <xref target="RFC7583"/> documents the timeline for this
method.</t>
        <t>The following diagram shows the timeline of the restoration.
The diagram follows the convention described in Section 4.1.</t>
        <artwork><![CDATA[
            |1|      |2|       |3|  |4|      |5|
             |        |         |    |        |
Key N       - ---------------------->|<-Iret->|
             |        |         |    |        |
Key N+1      |<-Dreg->|<-IpubP->|<-->|<------- -
             |        |         |    |        |
Key N                                        Trem
Key N+1     Tsbm     Tpub      Trdy Tact

                 ---- Time ---->
]]></artwork>
        <t>Event 1: A new DS record is added to the DS RRset in the parent
zone, this is the submission time, Tsbm.</t>
        <t>Event 2: After the registration delay, Dreg, the DS record is
published in the parent zone. This is the publication time (Tpub).</t>
        <artwork><![CDATA[
Tpub = Tsbm + Dreg.
]]></artwork>
        <t>The DS record must be published long enough to guarantee that any
cached DS RRset contains the new DS record. This is the parent
publication interval (IpubP).</t>
        <artwork><![CDATA[
IpubP = DprpP + TTLds
]]></artwork>
        <t>DprpP is the propagation delay of the parent zone, i.e. the time it
takes for changes to propagate to all authoritative servers of the
parent zone. TTLds is the TTL of the DS RRset at the parent.</t>
        <t>Event 3: The new KSK can be used when it becomes ready at Trdy.</t>
        <artwork><![CDATA[
Trdy = Tpub + IpubP
]]></artwork>
        <t>Event 4: At this point, Tact, the new KSK is added to the DNSKEY
RRset and used to generate the DNSKEY RRsig. The old, inoperable
KSK can be removed. The ZSK <bcp14>MUST</bcp14> remain in the DNSKEY RRset.</t>
        <t>If the ZSK is inoperable, the ZSK signing function can be now be
restored using the procedure in the previous section.</t>
        <t>To ensure that no caches have DNSKEY RRset with the old KSK, the old
DS record <bcp14>MUST</bcp14> remain in the parent zone for the duration of the
retire interval (Iret), given by:</t>
        <artwork><![CDATA[
Iret = DprpC + TTLkey
]]></artwork>
        <t>DprpC is the child propagation delay, the time it takes for changes to
propagate to all authoritative nameserver instances of the child
zone. TTLkey is the TTL of the DNSKEY RRset.</t>
        <t>Event 5: The old DS record can be removed from the parent zone at Trem.</t>
        <artwork><![CDATA[
Trem = Tact + Iret
]]></artwork>
      </section>
      <section anchor="csk-inoperable">
        <name>CSK inoperable</name>
        <t>Since the old CSK is inoperable, the DNSKEY RRset cannot be
changed. Therefore, only the Double-DS method can be used. See
<xref target="RFC7583"/> section 2.2.</t>
        <t>Section 3.3.2 of <xref target="RFC7583"/> documents the timeline for this method.</t>
        <t>Since the CSK is also used to sign the zone, the timing of the
Double-DS method needs to be adjusted.</t>
        <t>The inoperable CSK and all RRSIGs it created <bcp14>MUST</bcp14> remain in the zone.</t>
        <t>The following diagram shows the timeline of the restoration.
The diagram follows the convention described in Section 4.1.</t>
        <artwork><![CDATA[
            |1|      |2|       |3|  |4|      |5|
             |        |         |    |        |
Key N       - ---------------------->|<-Iret->|
             |        |         |    |        |
Key N+1      |<-Dreg->|<-IpubP->|<-->|<------- -
             |        |         |    |        |
Key N                                        Trem
Key N+1     Tsbm     Tpub      Trdy Tact

                 ---- Time ---->
]]></artwork>
        <t>Event 1: A new DS record is added to the DS RRset in the parent zone,
this is the submission time, Tsbm.</t>
        <t>Event 2: After the registration delay, Dreg, the DS record is published
in the parent zone. This is the publication time (Tpub).</t>
        <artwork><![CDATA[
Tpub = Tsbm + Dreg.
]]></artwork>
        <t>The DS record must be published long enough to guarantee that any
cached DS RRset contains the new DS record. This is the parent
publication interval (IpubP) given by</t>
        <artwork><![CDATA[
IpubP = DprpP + TTLds
]]></artwork>
        <t>DprpP is the propagation delay of the parent zone, i.e. the time it
takes for changes to propagate to all authoritative servers of the
parent zone. TTLds is the TTL of the DS RRset at the parent.</t>
        <t>Event 3: The new CSK can be used when it becomes ready at Trdy.</t>
        <artwork><![CDATA[
Trdy = Tpub + IpubP
]]></artwork>
        <t>Event 4: At this point the new CSK is added to the DNSKEY RRset and
used to generate the DNSKEY RRsig. The old, inoperable CSK <bcp14>MUST</bcp14> remain
in the DNSKEY RRset. The new CSK can be used to generate the RRsigs for
the rest of the zone. The RRSIGs generated by the inoperable CSK <bcp14>MUST</bcp14>
remain in the zone.</t>
        <t>To ensure that no caches have DNSKEY RRset with the old CSK, the old
DS record <bcp14>MUST</bcp14> remain in the parent zone for the duration of the
retire interval (Iret), given by:</t>
        <artwork><![CDATA[
Iret = Dsgn + DprpC + max(TTLkey, TTLsig)
]]></artwork>
        <t>Dsgn is the delay needed to ensure that all existing RRsets are signed
with the new CSK. DprpC is the child propagation delay, the time it
takes for changes to propagate to all authoritative nameserver
instances of the child zone. TTLkey is the TTL of the DNSKEY RRset and
TTLsig is the maximum TTL of all RRSIG records.</t>
        <t>Event 5: The old DS record can be removed from the parent zone at Trem.</t>
        <artwork><![CDATA[
Trem = Tact + Iret
]]></artwork>
        <t>At the same time the old, inoperable CSK and all its signatures can be
removed as well.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>All security considerations of <xref target="RFC9364"/> apply to this document.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9364">
          <front>
            <title>DNS Security Extensions (DNSSEC)</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="February" year="2023"/>
            <abstract>
              <t>This document describes the DNS Security Extensions (commonly called "DNSSEC") that are specified in RFCs 4033, 4034, and 4035, as well as a handful of others. One purpose is to introduce all of the RFCs in one place so that the reader can understand the many aspects of DNSSEC. This document does not update any of those RFCs. A second purpose is to state that using DNSSEC for origin authentication of DNS data is the best current practice. A third purpose is to provide a single reference for other documents that want to refer to DNSSEC.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="237"/>
          <seriesInfo name="RFC" value="9364"/>
          <seriesInfo name="DOI" value="10.17487/RFC9364"/>
        </reference>
        <reference anchor="RFC2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC6781">
          <front>
            <title>DNSSEC Operational Practices, Version 2</title>
            <author fullname="O. Kolkman" initials="O." surname="Kolkman"/>
            <author fullname="W. Mekking" initials="W." surname="Mekking"/>
            <author fullname="R. Gieben" initials="R." surname="Gieben"/>
            <date month="December" year="2012"/>
            <abstract>
              <t>This document describes a set of practices for operating the DNS with security extensions (DNSSEC). The target audience is zone administrators deploying DNSSEC.</t>
              <t>The document discusses operational aspects of using keys and signatures in the DNS. It discusses issues of key generation, key storage, signature generation, key rollover, and related policies.</t>
              <t>This document obsoletes RFC 4641, as it covers more operational ground and gives more up-to-date requirements with respect to key sizes and the DNSSEC operations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6781"/>
          <seriesInfo name="DOI" value="10.17487/RFC6781"/>
        </reference>
        <reference anchor="RFC7583">
          <front>
            <title>DNSSEC Key Rollover Timing Considerations</title>
            <author fullname="S. Morris" initials="S." surname="Morris"/>
            <author fullname="J. Ihren" initials="J." surname="Ihren"/>
            <author fullname="J. Dickinson" initials="J." surname="Dickinson"/>
            <author fullname="W. Mekking" initials="W." surname="Mekking"/>
            <date month="October" year="2015"/>
            <abstract>
              <t>This document describes the issues surrounding the timing of events in the rolling of a key in a DNSSEC-secured zone. It presents timelines for the key rollover and explicitly identifies the relationships between the various parameters affecting the process.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7583"/>
          <seriesInfo name="DOI" value="10.17487/RFC7583"/>
        </reference>
        <reference anchor="RFC7958">
          <front>
            <title>DNSSEC Trust Anchor Publication for the Root Zone</title>
            <author fullname="J. Abley" initials="J." surname="Abley"/>
            <author fullname="J. Schlyter" initials="J." surname="Schlyter"/>
            <author fullname="G. Bailey" initials="G." surname="Bailey"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>The root zone of the Domain Name System (DNS) has been cryptographically signed using DNS Security Extensions (DNSSEC).</t>
              <t>In order to obtain secure answers from the root zone of the DNS using DNSSEC, a client must configure a suitable trust anchor. This document describes the format and publication mechanisms IANA has used to distribute the DNSSEC trust anchors.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7958"/>
          <seriesInfo name="DOI" value="10.17487/RFC7958"/>
        </reference>
        <reference anchor="RFC9499">
          <front>
            <title>DNS Terminology</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="K. Fujiwara" initials="K." surname="Fujiwara"/>
            <date month="March" year="2024"/>
            <abstract>
              <t>The Domain Name System (DNS) is defined in literally dozens of different RFCs. The terminology used by implementers and developers of DNS protocols, and by operators of DNS systems, has changed in the decades since the DNS was first defined. This document gives current definitions for many of the terms used in the DNS in a single document.</t>
              <t>This document updates RFC 2308 by clarifying the definitions of "forwarder" and "QNAME". It obsoletes RFC 8499 by adding multiple terms and clarifications. Comprehensive lists of changed and new definitions can be found in Appendices A and B.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="219"/>
          <seriesInfo name="RFC" value="9499"/>
          <seriesInfo name="DOI" value="10.17487/RFC9499"/>
        </reference>
        <reference anchor="RFC9824">
          <front>
            <title>Compact Denial of Existence in DNSSEC</title>
            <author fullname="S. Huque" initials="S." surname="Huque"/>
            <author fullname="C. Elmerot" initials="C." surname="Elmerot"/>
            <author fullname="O. Gudmundsson" initials="O." surname="Gudmundsson"/>
            <date month="September" year="2025"/>
            <abstract>
              <t>This document describes a technique to generate a signed DNS response on demand for a nonexistent name by claiming that the name exists but doesn't have any data for the queried record type. Such responses require only one minimally covering NSEC or NSEC3 record, allow online signing servers to minimize signing operations and response sizes, and prevent zone content disclosure.</t>
              <t>This document updates RFCs 4034 and 4035.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9824"/>
          <seriesInfo name="DOI" value="10.17487/RFC9824"/>
        </reference>
        <reference anchor="Shamir">
          <front>
            <title>How to Share a Secret</title>
            <author fullname="Adi Shamir">
              <organization/>
            </author>
            <date year="1979" month="November"/>
          </front>
          <seriesInfo name="ACM Press" value="Communications of the ACM, Vol. 22, No. 11, pp. 612-613"/>
          <seriesInfo name="DOI" value="10.1145/359168.359176"/>
        </reference>
      </references>
    </references>
    <?line 414?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The document draws heavily from the work in <xref target="RFC7583"/> and we thank
the authors for their work:</t>
      <ul spacing="normal">
        <li>
          <t>Stephen Morris</t>
        </li>
        <li>
          <t>Johan Ihren</t>
        </li>
        <li>
          <t>John Dickinson</t>
        </li>
        <li>
          <t>W. (Matthijs) Mekking</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
