<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.1.7) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-berra-dnsop-keystate-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="KeyState Signaling Via EDNS(0)">Signaling Key State Via a DNS EDNS(0) Option</title>

    <author initials="E." surname="Bergström" fullname="Erik Bergström">
      <organization>The Swedish Internet Foundation</organization>
      <address>
        <postal>
          <country>Sweden</country>
        </postal>
        <email>erik.bergstrom@internetstiftelsen.se</email>
      </address>
    </author>
    <author initials="L." surname="Fernandez" fullname="Leon Fernandez">
      <organization>The Swedish Internet Foundation</organization>
      <address>
        <postal>
          <country>Sweden</country>
        </postal>
        <email>leon.fernandez@internetstiftelsen.se</email>
      </address>
    </author>
    <author initials="J." surname="Stenstam" fullname="Johan Stenstam">
      <organization>The Swedish Internet Foundation</organization>
      <address>
        <postal>
          <country>Sweden</country>
        </postal>
        <email>johan.stenstam@internetstiftelsen.se</email>
      </address>
    </author>

    <date />

    <area>Internet</area>
    <workgroup>DNSOP Working Group</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<?line 41?>

<t>This document introduces the KeyState EDNS(0) option, to enable
a child operator to query a parent UPDATE Receiver about the
state of a SIG(0) key used to secure cross-zone-cut DNS UPDATE
messages. The KeyState option allows the child to include a key
state inquiry in its DNS query, and the parent to include the
corresponding key state in its response. This addresses the
challenge of maintaining synchronization of SIG(0) keys
between the child and the parent UPDATE Receiver: the child can
become aware of any issue with its SIG(0) key in advance, before
attempting the next operational DNS UPDATE.</t>

<t>TO BE REMOVED: This document is being collaborated on in Github at:
<eref target="https://github.com/johanix/draft-berra-dnsop-keystate">https://github.com/johanix/draft-berra-dnsop-keystate</eref>.
The most recent working version of the document, open issues, etc, should all be
available there.  The authors (gratefully) accept pull requests.</t>



    </abstract>



  </front>

  <middle>


<?line 59?>

<section anchor="introduction"><name>Introduction</name>

<t>In <xref target="I-D.ietf-dnsop-delegation-mgmt-via-ddns"/> a mechanism for
automatic synchronization of delegation data between a child zone and
a parent zone is proposed.</t>

<t>That mechanism relies on the parent validating and subsequently
trusting the child SIG(0) public key so that the child is able to sign
DNS UPDATE requests to the parent using the corresponding SIG(0)
private key. While there is a mechanism for both uploading and rolling the 
public SIG(0) key there is still a risk of the child operator and the 
parent receiver getting out of sync.</t>

<t>This will be noticed by the child if a DNS UPDATE is refused. In this
situation the parent UPDATE Receiver does have the opportunity and
ability to provide more details of the refusal via an EDE opcode
<xref target="RFC8914"/>. However, at that point it is too late to immediately get
back in sync again and as a result the needed delegation
synchronization that triggered the DNS UPDATE will be delayed until
the child has managed to "re-bootstrap" a new SIG(0) key with the
parent. As such re-bootstrapping may require manual actions, the
length of the delay would not always be predictable.</t>

<t>The proposed new KeyState EDNS(0) Option addresses this problem by
allowing the child and parent to exchange information about the
current "state" of a SIG(0) key. This enables the child to become
aware of any issue with the SIG(0) key currently being used in
advance, and then address and resolve the problem. Additionally,
the KeyState EDNS(0) Option enables the child to detect and resolve
key synchronization issues before they cause operational failures.</t>

<section anchor="trusting-sig0-signed-dns-messages-between-child-and-parent"><name>Trusting SIG(0) Signed DNS Messages Between Child and Parent</name>

<t>Using the proposed KeyState option the child gains the ability to
inquire about the state of its SIG(0) key at the parent UPDATE
Receiver, and the parent gains the ability to respond with the
current state, independently of a new DNS UPDATE (i.e. the
exchange may be sent via a normal DNS QUERY + response).</t>

<t>It should be pointed out that for the child to be able to trust the
response from the parent, the response must be signed using a key that
the child trusts. As the mechanism for automatic synchronization of
delegation data aims to work independently of whether the involved
zones are DNSSEC-signed or not, this requires that the parent UPDATE
Receiver is able to sign the response using its own SIG(0) private key.</t>

<t>Hence there is a similar need for the UPDATE Receiver to "bootstrap"
(as in "validate so that the key may be trusted") the child SIG(0)
public key and for the child to "bootstrap" the UPDATE Receiver SIG(0)
public key. The mechanism for doing this is described in
<xref target="I-D.ietf-dnsop-delegation-mgmt-via-ddns"/>.</t>

<t>Knowledge of DNS NOTIFY <xref target="RFC1996"/> and DNS Dynamic Updates
<xref target="RFC2136"/> and <xref target="RFC3007"/> is assumed. DNS SIG(0) transaction
signatures are documented in <xref target="RFC2931"/>.</t>

</section>
<section anchor="requirements-notation"><name>Requirements Notation</name>

<t>The key words "<strong>MUST</strong>", "<strong>MUST NOT</strong>", "<strong>REQUIRED</strong>", "<strong>SHALL</strong>",
"<strong>SHALL NOT</strong>", "<strong>SHOULD</strong>", "<strong>SHOULD NOT</strong>", "<strong>RECOMMENDED</strong>",
"<strong>NOT RECOMMENDED</strong>", "<strong>MAY</strong>", and "<strong>OPTIONAL</strong>" 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>

</section>
</section>
<section anchor="terminology"><name>Terminology</name>

<dl>
  <dt>SIG(0)</dt>
  <dd>
    <t>A DNS transaction signature mechanism (<xref target="RFC2931"/>) that uses
asymmetric cryptography, allowing the recipient to verify a
signature using only the sender's public key.</t>
  </dd>
  <dt>Child, Parent</dt>
  <dd>
    <t>The child and parent zones on either side of a delegation, as in
<xref target="I-D.ietf-dnsop-delegation-mgmt-via-ddns"/>.</t>
  </dd>
  <dt>UPDATE Receiver</dt>
  <dd>
    <t>The entity (operated by the parent, or a registrar/agent acting on
its behalf) that receives and processes DNS UPDATE messages for the
delegation, as defined in <xref target="I-D.ietf-dnsop-delegation-mgmt-via-ddns"/>.</t>
  </dd>
  <dt>Key state</dt>
  <dd>
    <t>The condition of a particular SIG(0) key as known to the UPDATE
Receiver (for example, unknown, known, or trusted), signaled by the
KeyState option defined in this document. The defined values are
listed in <xref target="keystate-values"/>.</t>
  </dd>
</dl>

</section>
<section anchor="comparison-to-extended-dns-errors-rfc8914"><name>Comparison to Extended DNS Errors <xref target="RFC8914"/></name>

<t>EDE (Extended DNS Errors) lets the receiver of a DNS message provide
more information about the reason for a negative response, carried in
an OPT record as an EDE code and an optional human-readable "Extra
Text". Three limitations make EDE insufficient for communicating key
state between two parties:</t>

<t><list style="numbers" type="1">
  <t>An EDE must only be present in a response, not in the originating message.</t>
  <t>An EDE must only be used to augment an error response. It should not 
be part of a successful response.</t>
  <t>An EDE must contain an EDE info code (16 bits) and may contain "Extra 
Text". However this extra text is intended for human consumption, 
not automated parsing. To communicate state between two parties 
this requirement is too strict.</t>
</list></t>

<t>These are not flaws in EDE, which serves a different purpose; they
simply mean that signaling key state between child and parent needs a
dedicated mechanism, which this document provides.</t>

</section>
<section anchor="keystate-edns0-option-format"><name>KeyState EDNS(0) Option Format</name>

<t>This document uses an Extended Mechanism for DNS (EDNS0) <xref target="RFC6891"/>
option to include Key State information in DNS messages. The option is 
structured as follows:</t>

<figure><artwork><![CDATA[
                                               1   1   1   1   1   1
       0   1   2   3   4   5   6   7   8   9   0   1   2   3   4   5
     +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
 0:  |                            OPTION-CODE                        |
     +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
 2:  |                           OPTION-LENGTH                       |
     +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
 4:  |                              KEY-ID                           |
     +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
 6:  |           KEY-STATE           |           KEY-DATA            |
     +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
 8:  / EXTRA-TEXT                                                    /
     +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
]]></artwork></figure>

<t>Field definition details:</t>

<t>OPTION-CODE: 
    2 octets / 16 bits (defined in <xref target="RFC6891"/>) contains the value TBD
    for KeyState.</t>

<t>OPTION-LENGTH: 
    2 octets / 16 bits (defined in <xref target="RFC6891"/>) contains the length of 
    the payload (everything after OPTION-LENGTH) in octets and should 
    be 4 plus the length of the EXTRA-TEXT field (which may be zero 
    octets long). For example, for an option with no extra text
    OPTION-LENGTH is 4 (KEY-ID + KEY-STATE + KEY-DATA = 2 + 1 + 1
    octets); for an option carrying 12 octets of extra text
    OPTION-LENGTH is 16.</t>

<t>KEY-ID:
    16 bits. The KeyID of the SIG(0) key that the KeyState inquiry is
    referring to. Note that while KeyIds are not guaranteed to be
    unique, it is the child that generates the initial SIG(0) key pair
    and all subsequent key pairs. Hence, it is the child's
    responsibility to not use multiple keys with the same KeyId.</t>

<t>KEY-STATE:
    8 bits. Currently defined values are listed in <xref target="keystate-values"/>.
    Additional values may be defined in future documents.</t>

<t>KEY-DATA:
    8 bits. Interpretation specific to each KEY-STATE.</t>

<t>EXTRA-TEXT:
    a variable-length sequence of octets that may hold additional 
    information. This information is intended for human consumption
    (typically a reason or additional detail), not automated
    parsing. The length of the EXTRA-TEXT MUST be derived from the
    OPTION-LENGTH field. The EXTRA-TEXT field may be zero octets in
    length.</t>

</section>
<section anchor="use-of-the-keystate-option"><name>Use of the KeyState Option</name>

<t>A child that wishes to receive KeyState information about its own
SIG(0) key MUST include a KeyState option in its query or UPDATE
message to the UPDATE Receiver. Including the option signals the
child's capability and intent to receive a KeyState response; a child
that does not need key-state information for a given message need not
include it.</t>

<t>The UPDATE Receiver MUST only include a KeyState option when
responding to a DNS message that contained a KeyState option; that is,
the UPDATE Receiver never assumes that the child is able to interpret
KeyState options. A KeyState option MAY be included in any type of
response (SERVFAIL, NXDOMAIN, REFUSED, even NOERROR, etc.) to a query
that includes a KeyState option.</t>

<t>A recipient that does not understand the KeyState option ignores it.
A recipient that does understand it SHOULD respond with the KeyState
for the specified key (identified by the KEY-ID field), unless local
policy or operational constraints (for example, rate limiting) prevent
it. When such a response is sent, it MUST meet the requirements in
<xref target="keystate-values"/> (signed by the UPDATE Receiver's SIG(0) key and
carrying a KeyState option).</t>

<t>This document includes a set of initial "key state" codepoints but is
extensible via the IANA registry defined and created in <xref target="keystate-registry"/>.</t>

</section>
<section anchor="keystate-values"><name>Defined and Reserved Values for SIG(0) Key States</name>

<t>This document defines a number of initial KEY-STATE codes. The
mechanism is intended to be extensible and additional KEY-STATE codes
can be registered in the "KeyState Codes" registry
(see <xref target="keystate-registry"/>). The KEY-STATE code from the "KeyState" EDNS(0)
option is used to serve as an index into the "KeyState Codes"
registry with the initial values defined below.</t>

<t>For KeyState signaling to be used the child includes a KeyState
option in its query to indicate the ability to interpret a
KeyState option in the response.</t>

<t>The KEY-STATE code space is divided into three ranges by who sets the
value and what it conveys: protocol-level responses (0-1, set by the
UPDATE Receiver), inquiries set by the sender (2-3), and key-state
reports set by the UPDATE Receiver (4-127). Private Use occupies
128-255.</t>

<section anchor="protocol-level-responses-set-by-the-update-receiver"><name>Protocol-Level Responses (Set By The UPDATE Receiver)</name>

<t>These codes report on the KeyState exchange itself rather than on the
state of any particular key. They are the KeyState equivalents of the
DNS FORMERR and SERVFAIL conditions.</t>

<t>0 (KEY_REQUEST_MALFORMED): The KeyState request could not be
understood; for example, it carried an unrecognized or unassigned
KEY-STATE value (see below), an invalid KEY-DATA value, or a KeyState
option that could not be parsed. The KEY-ID field MUST echo the KEY-ID
from the request if it could be parsed, and MUST be 0 otherwise.
KEY-DATA MUST be 0.</t>

<t>1 (KEY_TEMPORARY_FAILURE): The UPDATE Receiver understood the request
but is temporarily unable to determine the state of the key. The child
MAY retry the inquiry later. KEY-DATA MUST be 0.</t>

<t>An UPDATE Receiver that receives a KeyState option whose KEY-STATE
value it does not recognize, including the unassigned values 3 and
11-127, MUST treat the request as malformed and respond with code 0
(KEY_REQUEST_MALFORMED).</t>

</section>
<section anchor="keystates-set-by-the-sender-the-child"><name>KeyStates Set By The Sender (the Child)</name>

<t>2: Key inquiry. Child requests information about the current
   KeyState for the specified key. KEY-DATA MUST be 0.</t>

<t>Code 3 is unassigned. Together with codes 0 and 1, codes 2 and 3
were used differently in earlier revisions; see <xref target="keystate-registry"/>
for the historical context.</t>

</section>
<section anchor="keystates-set-by-the-update-receiver-the-parent-or-its-agent"><name>KeyStates Set By The UPDATE Receiver (the Parent or Its Agent)</name>

<t>4 (KEY_TRUSTED): The SIG(0) key is known and trusted.
KEY-DATA MUST be 0.</t>

<t>5 (KEY_UNKNOWN): The SIG(0) key is unknown. KEY-DATA MUST be 0.</t>

<t>6 (KEY_INVALID): The SIG(0) key is invalid (e.g. the key data does
not match the declared algorithm). KEY-DATA MAY carry a
receiver-defined sub-reason code; if no sub-reason is offered,
KEY-DATA MUST be 0.</t>

<t>7 (KEY_REFUSED): The SIG(0) key is refused (e.g. the algorithm is
not accepted by policy). KEY-DATA MAY carry a receiver-defined
sub-reason code; if no sub-reason is offered, KEY-DATA MUST be 0.</t>

<t>8 (KEY_VALIDATION_FAILED): The SIG(0) key is known but validation
has failed. This corresponds to the bootstrap state described in
<xref target="I-D.ietf-dnsop-delegation-mgmt-via-ddns"/> Section "Communication in
Case of Errors" as <em>"SIG(0) key is known, but validation
failed"</em>. KEY-DATA MUST be 0.</t>

<t>9 (KEY_BOOTSTRAP_AUTO): The SIG(0) key is known but not yet
trusted; automatic bootstrap is in progress. This corresponds to
the bootstrap state described in
<xref target="I-D.ietf-dnsop-delegation-mgmt-via-ddns"/> Section "Communication in
Case of Errors" as <em>"SIG(0) key is known, but not yet trusted"</em>.
KEY-DATA MUST be 0.</t>

<t>10 (KEY_BOOTSTRAP_MANUAL): The SIG(0) key is known but not
trusted; manual bootstrap is required. This corresponds to the
bootstrap state described in
<xref target="I-D.ietf-dnsop-delegation-mgmt-via-ddns"/> Section "Communication in
Case of Errors" as <em>"Automatic bootstrap of SIG(0) keys not
supported; manual bootstrap required"</em>. KEY-DATA MUST be 0.</t>

<t>128-255: Reserved for Private Use.</t>

<t>To ensure that the SIG(0) bootstrap is correctly prepared,
the child (or an agent for the child) sends a DNS QUERY to the
parent UPDATE Receiver with QNAME="child.parent." and QTYPE=KEY
containing a KeyState option with KEY-STATE=2 (INTENT_INQUIRE_KEY)
and the KeyId of the SIG(0) key to inquire about in the KEY-ID
field. See <xref target="I-D.ietf-dnsop-delegation-mgmt-via-ddns"/>
Section "Communication To Inquire State" for the canonical use case.</t>

<t>The response MUST be signed by the SIG(0) key for the UPDATE
Receiver and MUST contain a KeyState option carrying the KeyId
and the corresponding KEY-STATE as defined above. The mechanism
by which the child obtains and validates the UPDATE Receiver's
SIG(0) public key is specified in
<xref target="I-D.ietf-dnsop-delegation-mgmt-via-ddns"/> Section "Bootstrapping the
UPDATE Receiver's Key Into the Child".</t>

</section>
</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>Key state signals in OPT queries and answers are unauthenticated unless the
transaction carrying the state signal is secured via mechanisms such as
<xref target="RFC8945"/>, <xref target="RFC2931"/>, <xref target="RFC7858"/>, <xref target="RFC9250"/>, <xref target="RFC8484"/> or
<xref target="RFC8094"/>. Unauthenticated
information MUST NOT be trusted as the state signals influence the DNS
protocol processing. For instance, an attacker might cause a denial-of-service
by forging a response claiming that the victim's key is invalid, thereby
halting the delegation synchronization procedure.</t>

<t>Moreover, it is assumed that the child has some means of validating messages
from the parent during the initial phase when the child initializes the SIG(0)
key synchronization. Otherwise, an attacker could prevent a child from
initializing the synchronization by spoofing responses that refuse the key
that the child is trying to upload. For that reason, it is expected that the
parent has already published a public key that the child can use for this
purpose. It could also possibly establish this trust out-of-band, such as
via a physical meeting.</t>

<t>Lastly, SIG(0) transaction signatures are vulnerable to replay attacks, which
could allow an attacker to disrupt the synchronization. Secure transport
alternatives exist in <xref target="RFC7858"/>, <xref target="RFC9250"/>, <xref target="RFC8484"/> and
<xref target="RFC8094"/>.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<section anchor="new-keystate-edns-option"><name>New KeyState EDNS Option</name>

<t>This document defines a new EDNS(0) option, entitled "KeyState",
assigned a value of TBD in the "DNS EDNS0 Option Codes (OPT)" registry</t>

<texttable>
      <ttcol align='left'>Value</ttcol>
      <ttcol align='left'>Name</ttcol>
      <ttcol align='left'>Status</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>TBD</c>
      <c>KeyState</c>
      <c>Standard</c>
      <c>(This document)</c>
</texttable>

</section>
<section anchor="keystate-registry"><name>A New Registry for KeyState Codes</name>

<t>The KeyState option defines an 8-bit state field, for which IANA is
requested to create and maintain a new registry entitled "KeyState
Codes", used by the KeyState option. Initial values for the
"KeyState Codes" registry are given below; future assignments in
the 11-127 range are to be made through Specification Required
review <xref target="BCP26"/>.</t>

<texttable>
      <ttcol align='left'>KEY STATE</ttcol>
      <ttcol align='left'>Mnemonic</ttcol>
      <ttcol align='left'>Set by</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>0</c>
      <c>KEY_REQUEST_MALFORMED</c>
      <c>Receiver</c>
      <c>(This document)</c>
      <c>1</c>
      <c>KEY_TEMPORARY_FAILURE</c>
      <c>Receiver</c>
      <c>(This document)</c>
      <c>2</c>
      <c>INTENT_INQUIRE_KEY</c>
      <c>Sender</c>
      <c>(This document)</c>
      <c>3</c>
      <c>Unassigned</c>
      <c>--</c>
      <c>(This document)</c>
      <c>4</c>
      <c>KEY_TRUSTED</c>
      <c>Receiver</c>
      <c>(This document)</c>
      <c>5</c>
      <c>KEY_UNKNOWN</c>
      <c>Receiver</c>
      <c>(This document)</c>
      <c>6</c>
      <c>KEY_INVALID</c>
      <c>Receiver</c>
      <c>(This document)</c>
      <c>7</c>
      <c>KEY_REFUSED</c>
      <c>Receiver</c>
      <c>(This document)</c>
      <c>8</c>
      <c>KEY_VALIDATION_FAILED</c>
      <c>Receiver</c>
      <c>(This document)</c>
      <c>9</c>
      <c>KEY_BOOTSTRAP_AUTO</c>
      <c>Receiver</c>
      <c>(This document)</c>
      <c>10</c>
      <c>KEY_BOOTSTRAP_MANUAL</c>
      <c>Receiver</c>
      <c>(This document)</c>
      <c>11-127</c>
      <c>Unassigned</c>
      <c>--</c>
      <c>(This document)</c>
      <c>128-255</c>
      <c>Private Use</c>
      <c>--</c>
      <c>(This document)</c>
</texttable>

<t>The code space is grouped as follows: codes 0-1 are protocol-level
responses set by the UPDATE Receiver (the KeyState equivalents of
FORMERR and SERVFAIL); codes 2-3 are set by the sender (the child),
of which only 2 is currently defined; and codes 4-127 are key-state
reports set by the UPDATE Receiver.</t>

<t>Codes 0 and 1 were used in draft-berra-dnsop-keystate-02 as the
sender codes REQUEST_AUTO_BOOTSTRAP and REQUEST_MANUAL_BOOTSTRAP.
Those uses were removed in -03 (bootstrap initiation and
bootstrap-method discovery are handled by the self-signed DNS UPDATE
and the SVCB <spanx style="verb">bootstrap</spanx> SvcParamKey specified in
<xref target="I-D.ietf-dnsop-delegation-mgmt-via-ddns"/>), and the codepoints are
reassigned here as the protocol-level responses described above.</t>

</section>
</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC8914">
  <front>
    <title>Extended DNS Errors</title>
    <author fullname="W. Kumari" initials="W." surname="Kumari"/>
    <author fullname="E. Hunt" initials="E." surname="Hunt"/>
    <author fullname="R. Arends" initials="R." surname="Arends"/>
    <author fullname="W. Hardaker" initials="W." surname="Hardaker"/>
    <author fullname="D. Lawrence" initials="D." surname="Lawrence"/>
    <date month="October" year="2020"/>
    <abstract>
      <t>This document defines an extensible method to return additional information about the cause of DNS errors. Though created primarily to extend SERVFAIL to provide additional information about the cause of DNS and DNSSEC failures, the Extended DNS Errors option defined in this document allows all response types to contain extended error information. Extended DNS Error information does not change the processing of RCODEs.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8914"/>
  <seriesInfo name="DOI" value="10.17487/RFC8914"/>
</reference>
<reference anchor="RFC1996">
  <front>
    <title>A Mechanism for Prompt Notification of Zone Changes (DNS NOTIFY)</title>
    <author fullname="P. Vixie" initials="P." surname="Vixie"/>
    <date month="August" year="1996"/>
    <abstract>
      <t>This memo describes the NOTIFY opcode for DNS, by which a master server advises a set of slave servers that the master's data has been changed and that a query should be initiated to discover the new data. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="1996"/>
  <seriesInfo name="DOI" value="10.17487/RFC1996"/>
</reference>
<reference anchor="RFC2136">
  <front>
    <title>Dynamic Updates in the Domain Name System (DNS UPDATE)</title>
    <author fullname="P. Vixie" initials="P." role="editor" surname="Vixie"/>
    <author fullname="S. Thomson" initials="S." surname="Thomson"/>
    <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
    <author fullname="J. Bound" initials="J." surname="Bound"/>
    <date month="April" year="1997"/>
    <abstract>
      <t>Using this specification of the UPDATE opcode, it is possible to add or delete RRs or RRsets from a specified zone. Prerequisites are specified separately from update operations, and can specify a dependency upon either the previous existence or nonexistence of an RRset, or the existence of a single RR. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="2136"/>
  <seriesInfo name="DOI" value="10.17487/RFC2136"/>
</reference>
<reference anchor="RFC3007">
  <front>
    <title>Secure Domain Name System (DNS) Dynamic Update</title>
    <author fullname="B. Wellington" initials="B." surname="Wellington"/>
    <date month="November" year="2000"/>
    <abstract>
      <t>This document proposes a method for performing secure Domain Name System (DNS) dynamic updates. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="3007"/>
  <seriesInfo name="DOI" value="10.17487/RFC3007"/>
</reference>
<reference anchor="RFC2931">
  <front>
    <title>DNS Request and Transaction Signatures ( SIG(0)s )</title>
    <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
    <date month="September" year="2000"/>
    <abstract>
      <t>This document describes the minor but non-interoperable changes in Request and Transaction signature resource records ( SIG(0)s ) that implementation experience has deemed necessary. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="2931"/>
  <seriesInfo name="DOI" value="10.17487/RFC2931"/>
</reference>
<reference anchor="RFC2119">
  <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">
  <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>
<reference anchor="RFC6891">
  <front>
    <title>Extension Mechanisms for DNS (EDNS(0))</title>
    <author fullname="J. Damas" initials="J." surname="Damas"/>
    <author fullname="M. Graff" initials="M." surname="Graff"/>
    <author fullname="P. Vixie" initials="P." surname="Vixie"/>
    <date month="April" year="2013"/>
    <abstract>
      <t>The Domain Name System's wire protocol includes a number of fixed fields whose range has been or soon will be exhausted and does not allow requestors to advertise their capabilities to responders. This document describes backward-compatible mechanisms for allowing the protocol to grow.</t>
      <t>This document updates the Extension Mechanisms for DNS (EDNS(0)) specification (and obsoletes RFC 2671) based on feedback from deployment experience in several implementations. It also obsoletes RFC 2673 ("Binary Labels in the Domain Name System") and adds considerations on the use of extended labels in the DNS.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="75"/>
  <seriesInfo name="RFC" value="6891"/>
  <seriesInfo name="DOI" value="10.17487/RFC6891"/>
</reference>
<reference anchor="RFC8945">
  <front>
    <title>Secret Key Transaction Authentication for DNS (TSIG)</title>
    <author fullname="F. Dupont" initials="F." surname="Dupont"/>
    <author fullname="S. Morris" initials="S." surname="Morris"/>
    <author fullname="P. Vixie" initials="P." surname="Vixie"/>
    <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
    <author fullname="O. Gudmundsson" initials="O." surname="Gudmundsson"/>
    <author fullname="B. Wellington" initials="B." surname="Wellington"/>
    <date month="November" year="2020"/>
    <abstract>
      <t>This document describes a protocol for transaction-level authentication using shared secrets and one-way hashing. It can be used to authenticate dynamic updates to a DNS zone as coming from an approved client or to authenticate responses as coming from an approved name server.</t>
      <t>No recommendation is made here for distributing the shared secrets; it is expected that a network administrator will statically configure name servers and clients using some out-of-band mechanism.</t>
      <t>This document obsoletes RFCs 2845 and 4635.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="93"/>
  <seriesInfo name="RFC" value="8945"/>
  <seriesInfo name="DOI" value="10.17487/RFC8945"/>
</reference>
<reference anchor="RFC7858">
  <front>
    <title>Specification for DNS over Transport Layer Security (TLS)</title>
    <author fullname="Z. Hu" initials="Z." surname="Hu"/>
    <author fullname="L. Zhu" initials="L." surname="Zhu"/>
    <author fullname="J. Heidemann" initials="J." surname="Heidemann"/>
    <author fullname="A. Mankin" initials="A." surname="Mankin"/>
    <author fullname="D. Wessels" initials="D." surname="Wessels"/>
    <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
    <date month="May" year="2016"/>
    <abstract>
      <t>This document describes the use of Transport Layer Security (TLS) to provide privacy for DNS. Encryption provided by TLS eliminates opportunities for eavesdropping and on-path tampering with DNS queries in the network, such as discussed in RFC 7626. In addition, this document specifies two usage profiles for DNS over TLS and provides advice on performance considerations to minimize overhead from using TCP and TLS with DNS.</t>
      <t>This document focuses on securing stub-to-recursive traffic, as per the charter of the DPRIVE Working Group. It does not prevent future applications of the protocol to recursive-to-authoritative traffic.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7858"/>
  <seriesInfo name="DOI" value="10.17487/RFC7858"/>
</reference>
<reference anchor="RFC9250">
  <front>
    <title>DNS over Dedicated QUIC Connections</title>
    <author fullname="C. Huitema" initials="C." surname="Huitema"/>
    <author fullname="S. Dickinson" initials="S." surname="Dickinson"/>
    <author fullname="A. Mankin" initials="A." surname="Mankin"/>
    <date month="May" year="2022"/>
    <abstract>
      <t>This document describes the use of QUIC to provide transport confidentiality for DNS. The encryption provided by QUIC has similar properties to those provided by TLS, while QUIC transport eliminates the head-of-line blocking issues inherent with TCP and provides more efficient packet-loss recovery than UDP. DNS over QUIC (DoQ) has privacy properties similar to DNS over TLS (DoT) specified in RFC 7858, and latency characteristics similar to classic DNS over UDP. This specification describes the use of DoQ as a general-purpose transport for DNS and includes the use of DoQ for stub to recursive, recursive to authoritative, and zone transfer scenarios.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9250"/>
  <seriesInfo name="DOI" value="10.17487/RFC9250"/>
</reference>
<reference anchor="RFC8484">
  <front>
    <title>DNS Queries over HTTPS (DoH)</title>
    <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
    <author fullname="P. McManus" initials="P." surname="McManus"/>
    <date month="October" year="2018"/>
    <abstract>
      <t>This document defines a protocol for sending DNS queries and getting DNS responses over HTTPS. Each DNS query-response pair is mapped into an HTTP exchange.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8484"/>
  <seriesInfo name="DOI" value="10.17487/RFC8484"/>
</reference>
<reference anchor="RFC8094">
  <front>
    <title>DNS over Datagram Transport Layer Security (DTLS)</title>
    <author fullname="T. Reddy" initials="T." surname="Reddy"/>
    <author fullname="D. Wing" initials="D." surname="Wing"/>
    <author fullname="P. Patil" initials="P." surname="Patil"/>
    <date month="February" year="2017"/>
    <abstract>
      <t>DNS queries and responses are visible to network elements on the path between the DNS client and its server. These queries and responses can contain privacy-sensitive information, which is valuable to protect.</t>
      <t>This document proposes the use of Datagram Transport Layer Security (DTLS) for DNS, to protect against passive listeners and certain active attacks. As latency is critical for DNS, this proposal also discusses mechanisms to reduce DTLS round trips and reduce the DTLS handshake size. The proposed mechanism runs over port 853.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8094"/>
  <seriesInfo name="DOI" value="10.17487/RFC8094"/>
</reference>



    </references>

    <references title='Informative References' anchor="sec-informative-references">




<reference anchor="I-D.ietf-dnsop-delegation-mgmt-via-ddns">
   <front>
      <title>Automating DNS Delegation Management via DDNS</title>
      <author fullname="Johan Stenstam" initials="J." surname="Stenstam">
         <organization>The Swedish Internet Foundation</organization>
      </author>
      <author fullname="Erik Bergström" initials="E." surname="Bergström">
         <organization>The Swedish Internet Foundation</organization>
      </author>
      <author fullname="Leon Fernandez" initials="L." surname="Fernandez">
         <organization>The Swedish Internet Foundation</organization>
      </author>
      <date day="2" month="March" year="2026"/>
      <abstract>
	 <t>   Delegation information (i.e. the NS RRset, possible glue, possible DS
   records) should always be kept in sync between child zone and parent
   zone.  However, in practice that is not always the case.

   When the delegation information is not in sync the child zone is
   usually working fine, but without the amount of redundancy that the
   zone owner likely expects to have.  Hence, should any further
   problems ensue it could have catastrophic consequences.

   The DNS name space has lived with this problem for decades and it
   never goes away.  Or, rather, it will never go away until a fully
   automated mechanism for how to keep the information in sync
   automatically is deployed.

   This document proposes such a mechanism based on DNS Dynamic Updates
   (DDNS) secured with SIG(0) signatures, sent from the child to the
   parent across the zone cut.  The target of the update is discovered
   via the DSYNC record defined in [RFC9859].

   TO BE REMOVED: This document is being collaborated on in Github at:
   https://github.com/johanix/draft-ietf-dnsop-delegation-mgmt-via-ddns
   (https://github.com/johanix/draft-ietf-dnsop-delegation-mgmt-via-
   ddns).  The most recent working version of the document, open issues,
   etc, should all be available there.  The authors (gratefully) accept
   pull requests.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-dnsop-delegation-mgmt-via-ddns-01"/>
   
</reference>
<referencegroup anchor="BCP26" target="https://www.rfc-editor.org/info/bcp26">
  <reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8126">
    <front>
      <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
      <author fullname="M. Cotton" initials="M." surname="Cotton"/>
      <author fullname="B. Leiba" initials="B." surname="Leiba"/>
      <author fullname="T. Narten" initials="T." surname="Narten"/>
      <date month="June" year="2017"/>
      <abstract>
        <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
        <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
        <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
      </abstract>
    </front>
    <seriesInfo name="BCP" value="26"/>
    <seriesInfo name="RFC" value="8126"/>
    <seriesInfo name="DOI" value="10.17487/RFC8126"/>
  </reference>
</referencegroup>



    </references>

</references>


<?line 436?>

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

<t><list style="symbols">
  <t>draft-berra-dnsop-keystate-03</t>
</list></t>

<ul empty="true"><li>
  <t>Aligned the draft with <xref target="I-D.ietf-dnsop-delegation-mgmt-via-ddns"/>:
mapped each KeyState code to the corresponding named bootstrap state
in that document, and added cross-references to the specific
sections where the KeyState mechanism is used (state inquiry,
re-bootstrapping, mutual authentication).</t>
</li></ul>

<ul empty="true"><li>
  <t>Removed the former sender codes 0 and 1 ("Automatic bootstrap
requested" and "Manual bootstrap requested"). Bootstrap initiation
and bootstrap-method discovery are handled by other mechanisms (the
self-signed DNS UPDATE and the SVCB "bootstrap" SvcParamKey in
<xref target="I-D.ietf-dnsop-delegation-mgmt-via-ddns"/>); KeyState is now used
purely for key-state inquiry and reporting.</t>
</li></ul>

<ul empty="true"><li>
  <t>Added two protocol-level response codes for reporting on the
KeyState exchange itself rather than on a key: KEY_REQUEST_MALFORMED
(the equivalent of DNS FORMERR) and KEY_TEMPORARY_FAILURE (SERVFAIL),
filling the previous gap where a receiver could not say "I could not
understand your request" or "I cannot answer right now". Rather than
leave a hole where the removed sender codes 0 and 1 had been, those
two now-free codepoints are reused for these responses, giving a
clean grouping: 0-1 protocol-level (receiver-set), 2-3 sender-set
(only 2 defined), 4-127 key-state reports (receiver-set). This is an
incompatible change to codepoints 0 and 1 relative to
draft-berra-dnsop-keystate-02. A receiver MUST answer an unrecognized
or unassigned KEY-STATE with KEY_REQUEST_MALFORMED.</t>
</li></ul>

<ul empty="true"><li>
  <t>Specified the contents of the KEY-DATA field per KeyState code.</t>
</li></ul>

<ul empty="true"><li>
  <t>Reworded the abstract (removed the "mutual awareness" overreach; the
mechanism is child-inquires / parent-responds) and the "Use of the
KeyState Option" text (removed the contradictory "may be included" /
"MUST be present" wording). Added a cross-reference from Security
Considerations to the receiver-key bootstrap mechanism in
<xref target="I-D.ietf-dnsop-delegation-mgmt-via-ddns"/>.</t>
</li></ul>

<ul empty="true"><li>
  <t>Editorial: fixed the GitHub URL in the abstract; settled on US
"signaling" spelling; cleaned up the IANA registry table and
unified the KeyState mnemonics (added a "Set by" column).</t>
</li></ul>

<t><list style="symbols">
  <t>draft-berra-dnsop-opt-keystate-02</t>
</list></t>

<ul empty="true"><li>
  <t>Removed policy inquiry KeyState code 3 (INQUIRY_POLICY) and policy
response codes 11 (POLICY_MANUAL_BOOTSTRAP_REQUIRED) and 12
(POLICY_AUTO_BOOTSTRAP). Bootstrap policy discovery is now handled
entirely via the SVCB "bootstrap" SvcParamKey mechanism described in
<xref target="I-D.ietf-dnsop-delegation-mgmt-via-ddns"/>.</t>
</li></ul>

<ul empty="true"><li>
  <t>Fixed wire format diagram: KEY-ID is 16 bits (a standard DNSSEC Key
Tag), corrected byte offsets from 4/8/10 to 4/6/8.</t>
</li></ul>

<ul empty="true"><li>
  <t>Replaced hardcoded section number references with kramdown anchors
for stable cross-references.</t>
</li></ul>

<t><list style="symbols">
  <t>draft-berra-dnsop-opt-keystate-01</t>
</list></t>

<ul empty="true"><li>
  <t>Fixed minor typos.</t>
</li></ul>

<t><list style="symbols">
  <t>draft-berra-dnsop-opt-keystate-00</t>
</list></t>

<ul empty="true"><li>
  <t>Initial public draft.</t>
</li></ul>

</section>


  </back>

<!-- ##markdown-source:
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
W7T0dRtPKk+49hmXJqEIBreAcDemMzeqKJFNxTnLwZQZd+sQtBt5tbsLS2r7
6A5Wsnws90+r7vPWAYgdyfHXlgLQE1eloAC0R3WiSzxoiLWAI2zxJFKus8Ec
mq9bpzzkhCWFVKbjotxCmMhNGwgzawCeVzIiIiVBRCeccWyxJVyAy3oxDV5g
EcyTXU56RNYfgXn46Lffhq3hVvfp2yePnjSfnh482ms+PXn4BAfHitLB2XtK
R2mu24irMB53o6/BxDJKSRd3CuKz2s1Po9VQrpThRgipwYLVnRQPr8pBCh1V
VRS/BYlepYtlJecWcFwyT6NsVMxHaALT2KDsAVoLthtegSA+TFdMTTGDcHOV
roDj7YhzyHPdsw0ENJk/UhaMsHcH3AnrpKYZ1tOiNAUdNuAOocwkd8vwGCpZ
PGOJY0ZUVAjOtrl5G9UZ3NewhkPHlcbWS/Q92FJoFbvoImSANrASuw6EjPW5
S7DbNOa0XOrL/igfIqQ8dC+aHXoA/YHmxRyvN2UpyWsxCnbRvNpuTlQi8YWc
i2M5kGcxkHWENe/AGlQBZZ27QdJGGc4Mbth+2CU1UQJb0lkWq6aIFVtQCMZl
IIym72I5pWkLiMktVmE3GnLRiADzLBcfuQDvgUI4A2UfejXkwx7r5caSccfq
Owq3Ui8jC752uGNMXXfG1G/qDDvXUowA34zHsJhPVkbKlEMyK25bXMTqRWrL
el3tYtSYTZrh1TEKUSDweLK9otqDeZfaqhm7+AyDgcWElsWgo6hYnu/aTMhn
z7pnw3zb8s5aOjzRPWNOQ804gtvUo4fKlzkiqXyBgl09P/bVcPdSiD03YEcl
aN0Hoz0IauNK0ZwQ9QLg/zNs1rd/PpAjry39eWEo94+Dm2iI6MOIf9z/rZ8P
O/8MvmQcEHv83xOsg0OeRGUCf/ZbtBswDkTuQyL4hSuyh8M4sv2greHLElLI
3jnVTFX9J6NZKoejuPrHQy3s/In1oFBSwOGeADdlZOI0dTEJ8tZ3ALaZqrhJ
MOQyi+usddqD4LZbDQM3c35n94MUjHu9VBZ95gYhWIB8cwwX4yIZF+p1c2Zi
FdFB/7KoF0t9KeMQbAflAEmisPwD24OQ5fnRq4PHpBcfMJjSHEx90Ke5WWEA
uD349YGqPbDhXRL2QYUys1N+PkfMAAyNTroVd5by5JqPK7dlDcHsd8BsFWY/
D8xBAGY7rg9pQzVEfQeYBwGY66b4uUXi0cj/uQvMw+6muIS2BeYTm3rUASPl
sy8F87gDRopoXwrm2y2GU/HqS8E86YDZqh99HpinHTDtIstnY7O/dxcYrjd8
LhjWdf0vyo2k53Q97Ip9ERgywO3+Ib0aqDN0LQXq0T7ZpnZzUDVR2McaeB/p
ealdva7BM1cHHz2gVXc0E5s6wVDR0U50CzQgc0BVh+5s2zPu2xNYaigS4C9p
REpB3xfrdVOdB0fzsRc5HUi+ogR5xsIZQpTDRp54WsDbSJSt5iK+H6Sgg6Tw
PC1fgnm/YQxGew90Pyi9kMvijgZET/7CaGWqZYEdBRtjQsG+CtK8pDlvpLHH
6Q7CBm+8ccn75S9Hz/VfPci/6sub+FVURivKWP/ZbHrQHKQOxjPw7BJG6IIN
nYyV9O/OTnVTi+MaAr/EBF+7QKecuJP7I7VDNiBKBc82MCXlCDtH9YTnQKl7
n3hRl/peH2aMIOV0eDNXkr6EABMAs8JDjYnMPDqdIS2VwkG7cILvfEq69VsA
k+ZuAMm9KEYmPEwibzQqncv3JXQ3cwmPW65rWEwAu03r1kQJtx5abzIawvPd
V0IM9QriH3wPRJPmy/TO96BgTHlchZqBpW4pitO3/q7SJy0mQSDX+Xqnu8qd
fMNgrJ/v0BAAgk9+vo5Q9zgsj6A9Irrt0hvd0pvw6HSoNymi8UX68iwYtMSi
7y2xA6BAnonvGsEwNRxG5LYxN1rR2nHG+D0O8iL5b4u7NEoYMacTZPKkG3v4
/rOHJOjs/2R3EAhgyKQ33sGd5BYHwSfJdkd+fjRwgLI3T5s33WCdIS0gjVoA
v1mWmyZXMHRgIfXtnTRfAJhgam9T1KUToh52P/HWKKfWGlXfdEmVI+BAb6wv
ml0DmMxENEK6LDITaJOzNjsFfRmhGeJjzmDuAQryBqCP5jjS0zaOAIqUUHIS
25R2IYuHFISqVQAizvDgGXl4+GpCHr3D7r5v/4EXBGuM7pcRxC+QReJgxafC
LexKGyFzbrQNyo1UY2JHxinGg6YVTZ6JyFRFuC9HCRBjPvJZFfDcR30szpaW
rXFZ4U1nlAXgtIZZgtqzK/1viyepyaV3bGyHaVDYvzXI91F4VGVtyrb9FlOH
p/sFgnsLHhKrsYA9ZynxTTGQC0NWiSaoRI/wTDSuZYIpChpJtwEPuHC9auQa
VgNvfnrNSHeotvL2Sj512cIF91hG+A4edJQ9GRt3o7o9fR/A9FwDQQ6x9ugF
BikdSWHDEnU9Ds/6ubI3wGgXcZw/8iKEpbXGmgeb/1KLSTyYJimOQUTZBFj1
Tnb6Q1r9WM/09cVLV8tx3MHJiopqBmDCri9xx34ksIc+k6zNM9YvrLmvd8yO
0juMKA5Dw9IIUeNUJU8HzYmEaD3Oz3FWNatX5Ct3hSHFugrVIHSoMgTsDH87
nHiAjS3MfF+/eXX+8uToNcsJP0NetWX798H/8n1bUekb9zIKhrB/gJZC7m0H
ty33K9g1PlZ8mLhZAIKBAjkyN5D7Uf/ZyEWrFYsS8mUC8oKk4ha7adyFAByj
BawycdNodFhJTpFF2roqGb9ABukMUK6ixWDoup8UNdB415xGMEkBHt5/ch/y
SpD2h/cf338iBmKdRfh+tCUARMonLhZzA79B3Eb26i0glvB0TYzv9EMPCAbO
ssh1Y73PEqL9hgr41owSh/GLz3t0Dx911TKpjNMzY/W/BqXO6ldXAAA=

-->

</rfc>

