<?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.6.17 (Ruby 2.6.10) -->


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

]>


<rfc ipr="trust200902" docName="draft-berra-dnsop-keystate-01" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="KeyState Signalling Via EDNS(0)">Signalling Key State Via DNS EDNS(0) OPT</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>


<t>This document introduces the KeyState EDNS(0) option code, to enable
the exchange of SIG(0) key state information between DNS entities via
the DNS protocol. The KeyState option allows DNS clients and servers to
include key state data in both queries and responses, facilitating mutual
awareness of SIG(0) key status between child and parent zones.
This mechanism addresses the challenges of maintaining synchronization
of SIG(0) keys used for securing DNS UPDATE messages, thereby enhancing
the efficiency and reliability of DNS operations that require coordinated
key management.</t>

<t>This document proposes such a mechanism.</t>

<t>TO BE REMOVED: This document is being collaborated on in Github at:
<eref target="https://github.com/johanix/draft-berra-dnsop-transaction-state-00">https://github.com/johanix/draft-berra-dnsop-opt-transaction-state</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>


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

<t>In <xref target="I-D.johani-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 both child and parent to inform
the other party about their policy requirements for bootstrapping
SIG(0) keys.</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 OPT KeyState the child gains the ability to 
inform the parent about its own state and in return become aware of 
the parent's state independently of a new DNS UPDATE (i.e. the OPT 
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.johani-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>An assymmetric signing algorithm that allows the recipient to only 
need to know the public key to verify a signature created by the 
senders private key.</t>
  </dd>
</dl>

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

<t>EDE (Extended DNS Errors) specify a mechanism by which a receiver of a 
DNS message gains the ability to provide more information about the 
reason for a negative response. EDE data travels in an OPT record in 
the response and consist of an EDE code and, optionally, an EDE "Extra 
Text". It is possible to return EDE data with all types of DNS 
messages, including QUERY, NOTIFY and UPDATE.</t>

<t>However, there are three limitations to EDE that make it insufficent 
for communicating state between two parties:</t>

<t><list style="numbers">
  <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 limitations are not a problem, as EDE serves a different
purpose. But it is clear that for use cases like the above examples,
EDE is not the right mechanism and another mechanism is needed. Hence
the present proposal.</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                          |
     +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
 8:  |           KEY-STATE           |  EXTRA-TEXT                   /
     +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 
 10: / 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 3 plus the length of the EXTRA-TEXT field (which may be zero 
    octets long).</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 Section 6 below.
    Additional values may be defined in future documents.</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>The KeyState option may be included in outgoing message of type QUERY
or UPDATE from the child to the UPDATE Receiver. The KeyState option
MUST be present in such messages if the child supports the KeyState
option.</t>

<t>The UPDATE Receiver MUST only include a KeyState option when
responding to a DNS message that contained a KeyState option. I.e. the
UPDATE Receiver must never assume 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 an KeyState Option.</t>

<t>The KeyState option may always be ignored by the recipient. However, if 
the recipient does understand the KeyState option and responding with its 
own corresponding KeyState for the specified key make sense, then it
is expected to do so.</t>

<t>This document includes a set of initial "key state" codepoints but is
extensible via the IANA registry defined and created in Section 8.2.</t>

</section>
<section anchor="defined-and-reserved-values-for-sig0-key-states"><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 Section 8.2). The KEY-STATE code from the "KeyState" EDNS(0)
option is used to serve as an index into the "KeyState Option
Codes" registry with the initial values defined below.</t>

<t>For KeyState signalling to be used the child is set by the child to 
   indicate ability to interpret a KeyState OPT in the response.</t>

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

<t>0: Automatic bootstrap requested. This assumes that the child SIG(0)
   public key is already published as a KEY record that the child
   apex.</t>

<t>1: Manual bootstrap requested. Child requests that manual bootstrap
   should be used (child does not want automatic bootstrap of the
   SIG(0) public key).</t>

<t>2: Key inquiry. Child requests information about current KeyState for
   specified key.</t>

<t>3: Policy inquiry. Child requests information about current bootstrap
   policy for parent (or its agent).</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: SIG(0) key is known and trusted.</t>

<t>5: SIG(0) key is unknown.</t>

<t>6: SIG(0) key is invalid (eg. key data doesn't match algorithm).</t>

<t>7: SIG(0) key is refused (eg. algorithm not accepted by policy).</t>

<t>8: SIG(0) key is known but validation has failed.</t>

<t>9: SIG(0) key is known but not trusted, automatic bootstrapping
   ongoing.</t>

<t>10: SIG(0) key is known but not trusted, manual bootstrapping required.</t>

<t>11: Manual bootstrapping required for all SIG(0) keys to become
    trusted. This is a policy indication in response to a KeyState=3
    inquiry from Sender.</t>

<t>12: Automatic bootstrapping will be attempted for all SIG(0) keys to
    become trusted. This is a policy indication in response to a
    KeyState=3 inquiry from Sender.</t>

<t>128-255: Reserved for private use.</t>

<t>To ensure that automatic delegation is correctly prepared and
bootstrapped, the child (or an agent for the child) sends a DNS QUERY
to the parent UPDATE Receiver with QNAME="child.parent." and
QTYPE=ANY containing a KeyState OPT with KeyState-Code=2 and the KeyId of
the SIG(0) key to inquire state for in the KEY-ID field.</t>

<t>The response should be signed by the SIG(0) key for the UPDATE
Receiver and contain both the KeyId and the Key State encoded as
described above.</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="RFC2845"/>, <xref target="RFC2931"/>, <xref target="RFC8094"/> or <xref target="RFC8484"/>. 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 refuses 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="RFC8094"/> and <xref target="RFC8484"/>.</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 "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="a-new-registry-for-edns-option-keystate-state-codes"><name>A New Registry for EDNS Option KeyState State Codes</name>

<t>The KeyState option also defines a 8-bit state field, for which IANA is
requested to create and mainain 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 13-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'>Reference</ttcol>
      <c>0</c>
      <c>REQUEST_AUTO_BOOTSTRAP</c>
      <c>(This document)</c>
      <c>1</c>
      <c>REQUEST_MANUAL_BOOTSTRAP</c>
      <c>(This document)</c>
      <c>2</c>
      <c>INQUIRY_KEY</c>
      <c>(This document)</c>
      <c>3</c>
      <c>INQUIRY_POLICY</c>
      <c>(This document)</c>
      <c>4</c>
      <c>KEY_TRUSTED</c>
      <c>(This document)</c>
      <c>5</c>
      <c>KEY_UNKNOWN</c>
      <c>(This document)</c>
      <c>6</c>
      <c>KEY_INVALID</c>
      <c>(This document)</c>
      <c>7</c>
      <c>KEY_REFUSED</c>
      <c>(This document)</c>
      <c>8</c>
      <c>KEY_VALIDATION_FAIL</c>
      <c>(This document)</c>
      <c>9</c>
      <c>BOOTSTRAP_AUTO_ONGOING</c>
      <c>(This document)</c>
      <c>10</c>
      <c>BOOTSTRAP_MANUAL_REQUIRED</c>
      <c>(This document)</c>
      <c>11</c>
      <c>POLICY_MANUAL_BOOTSTRAP_REQUIRED</c>
      <c>(This document)</c>
      <c>12</c>
      <c>POLICY_AUTO_BOOTSTRAP</c>
      <c>(This document)</c>
      <c>13-127</c>
      <c>Unassigned</c>
      <c>(This document)</c>
      <c>128-255</c>
      <c>Private use</c>
      <c>(This document)</c>
</texttable>

<t><vspace blankLines='999' /></t>

</section>
</section>


  </middle>

  <back>


    <references title='Normative References'>



<reference anchor='RFC8914' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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='RFC2845' target='https://www.rfc-editor.org/info/rfc2845'>
  <front>
    <title>Secret Key Transaction Authentication for DNS (TSIG)</title>
    <author fullname='P. Vixie' initials='P.' surname='Vixie'/>
    <author fullname='O. Gudmundsson' initials='O.' surname='Gudmundsson'/>
    <author fullname='D. Eastlake 3rd' initials='D.' surname='Eastlake 3rd'/>
    <author fullname='B. Wellington' initials='B.' surname='Wellington'/>
    <date month='May' year='2000'/>
    <abstract>
      <t>This protocol allows for transaction level authentication using shared secrets and one way hashing. It can be used to authenticate dynamic updates as coming from an approved client, or to authenticate responses as coming from an approved recursive name server. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='2845'/>
  <seriesInfo name='DOI' value='10.17487/RFC2845'/>
</reference>

<reference anchor='RFC8094' target='https://www.rfc-editor.org/info/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>

<reference anchor='RFC8484' target='https://www.rfc-editor.org/info/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>




    </references>

    <references title='Informative References'>




<reference anchor='I-D.johani-dnsop-delegation-mgmt-via-ddns' target='https://datatracker.ietf.org/doc/html/draft-johani-dnsop-delegation-mgmt-via-ddns-04'>
   <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='21' month='October' year='2024'/>
      <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 catastropic 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.

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

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-johani-dnsop-delegation-mgmt-via-ddns-04'/>
   
</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>


<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-opt-keystate-00</t>
</list></t>

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

</section>


  </back>

<!-- ##markdown-source:
H4sIAO39pWcAA8Vc63LbRrL+P08xR/kRyUvSkuzYsrZy9tASbWujiyNRybq2
tlwgMCSxBgEGF8mM5TzWeYHzYvt19wwwAClnc9ZOVEWLBIGenr5+3T1yv99X
ZVwm5lBvXcWzNEiSOJ3p78xKX5VBafQPcaCPz6/0CP9s7+7oi9fjLRVMJrm5
wSO4T27znqUn7N1bKsrCNFiAepQH07I/MXke9KO0yJb9d2ZV0LP93T0V4feh
/nA8HI8+qhAfZlm+OtRFGSkVL/NDXeZVUe7v7j7b3VdBboJDfZKWJk9NqW6z
/N0sz6rlITF68Vr/iAvEyEu6qLAM7oiaB/rHxIpSWDyN3gZJlmLplSnUMj7U
fy+zsKeLLC9zMy3wbrWgN/9QKqjKeZYfKt1XGj9xWhzq0UA/N/msKPP/+98F
X5bNjvL4XfebLJ8FafxzUMZZeqjHc8js1kRxMa8Z0y+yKo34Bn4ixMeSxEA3
GrlmFkGcHGqDBQYTWSBb/E9sKRRlPC1NUph0UJgWp6cD/QK3YMfmZ4/RU5Ol
nS8+K58J6A+mjv6/wedfB7A7k0I3vjz/ms2DtP3FZ2Xzn0R/UFj697Cp0ixf
gNyNOYRRplPvU7/f18EEughCGNZ4Hhcahl8tTFpiW1BRVIWm0CW4rD3GOVS2
JA7BXWR6usy0SYNJYhTda96H4GtmdDbVVycv6W5Ys2av0TUHeHhiyltjUnZU
rBmXMVa7iQOmQheXeQbDzpIBS6rmwa4Nx81uC74xTGIQKDT0pQuT35gcbGfY
bphUkfGWh2AD8KAnWTnXP1UwSCNP5aZYZmlh4DzTIIyTGLeTNy6qsgoSFdzC
fVNTFBs2VRX1TsJ5nERMb0n3l/pnuGkxENkuDMklLhY6iCKsV1jZ4mqSGAiM
iUO1aYkXLV6s0nCeZ85gVGvtQleFiTTEiS2HVU4PkCyuX1M8wmpFEcxoP1gj
N5MVRIzlQ9wmWppO4xBSC1d2/0kcTGjfK+KCCGVLk/O6xGZQ4pafqjgHvxkC
U5xCnBGFKXCcYiGymkHXiqDAZUb7LKpwroNGBHTnhX4+0pejs4sfRsfkCy3z
I5nSjqD9JJhkOa2moXTo7mVczquJDspD9fd5WS6Lw4cPZ3xtEGaLh+wV8fuH
66EbdtOHsacF7B3b6rNJ/GP7N9FYe76/u7tDCjZ6kRUkpJD4v7XBnCyRbBUi
JaG7/fVIuNhMUVSkIVNS9J5nFRlPkmDrKriBi5NLifoGml1Aonmht2ckkGmV
JKsdHYShWULW+MQ6MkUJk2PvXsRRBK9UX1F4YX9mO1Inqf7w4S8n/eOB7NRu
LjKJmbHK+4vZouzDF/sRvvr40dcdmRzllYzcOOwaKW21oSMO59wjsA5CXkFW
pwLfT0jp1mCigSZTgtE1q5KFkoukLEn73E2QxJF4Kvt+NSlIAmmZrBQnX/pG
nIwWtt6zrCYJOGcHzsS4m3vAhcg90wXggfJ8ykmXvvOYqIp6lSyXQBLRFVlN
LfP4hmIPlhvoH7GG1Smv1BarxKVqmWRB5PaUZwJQiL6ynHsRqCaFvcIAAp3H
xTtnb7IjcWRQJ3JCRhgnY0UqyPXMlCyprCrpUVKpaAB0b2O2SJ1m0DaccLLy
hTXVgR91cD+AR8UaPCFNxYUqYoRQNgZPZvb+S8dBlEG38+CGZQOOl8AyVUrR
iO3ERibIHRZyE0fkbdh2ZBAqk8Jtl5cOEsoheAy5agRKlKLUhw//dfni6ODZ
3uOPHwf6VXZrsGhPs+LxzzKLKehw3CmzTCekLywWLxbIzviQrEhGahKE7ygE
kYB0MEOYZpkGpEgovkrEkFKDVB15bqC6TiI2l8ezGbQnSvGk6EQOAsEKXwMB
xIlqpD7HghJ1I+JyKzf9SZaVlMmXW2AlNbe+idwisNESVu0DPbQB2X9uydku
WNVhHgsg82mJdZJGFKUp0HLRjNhDqKOwBetA6LoNVhS4oSSILSzJjzgnmNqx
mbc1NHFhM7qXFyUYgMACFqc417d92cuyhD8c6PABBhJHxRpRyI985xbH7C3a
QeCJaCDpR0BM4S0CyhODjGAEAfBz6UoCdy1XX9Z2IdiL5C/O0XGqgugGyRdY
yfpgvVmHPrLE2r7dNbQURTFtA3tf9dRGFGbl5vjm6LFJOiIUppFRwKCvyLWc
fGJcyRBYau0vGE5JRPIMRHnwA4r96is9dkHWfkMVFXZMxnxmEQhKCgn/RzVn
r4UzpdV1HTtrC0Gt1uy0UQV5m6jGiwYW0fqRRTYVg/3sNrWwj9aEr+amrPLU
alTXGlXN018XNU6NDFJ0JLpkcyHL9Zx0Ox4gLdOjxLCqDZB8CC5QcHqiQKQZ
gSf87PfXo8s3+k813NyhMHtSuuRPrkOhiLBOZWMTKaFjkHWC4hTHBu4I6ikq
K08cPRsY7bcLup+4EzVJ5gpsIglKL8Yw6YJjBV1sp6lPZX/Vzf5BvOCMSZho
Xa63c8MWSYvE6Q25QaQYNmtSD4R2NTrqW36xNAJNT8KDNdWiSeCt3KLq3NLJ
6G2JiAicuTiA4KVspV4BJbdydhEvAM5yjvO1froZjQJzE5XVNmI2THDLIhbT
Qh4Co9luWO4m2lpDLcpDLWTPa3bhrbaRoTUyUla1NRtl4o/YJ+FxU4R5PJEQ
9uHDbwCMZNffpdltYiKpBMn6zy/GJy/eaEnGe8+ePSFgmUq0OF6haAZf10uS
TmEz9v7eI3eTXHi0u/sUF0gNiMELwhn0tNWbh84VqRrFWW4NyUFv3osltv/s
0R5Y5UB26Qe+86yUvM25i3Moap5Cbz14cHZ9NX7wYKvn3tOm3OfL0ffXJ5ej
Y/f56tXw9JQ+KPfBv/vq1cX16XH7U5va0cXZ2ej8WAgSDXyrO5eZj+Ebfkti
wkfEo5OL8yGtTHst/cqK2lA2iHC/AJmaRBK0da2fH73We4+dmPb2nkHmFkPt
PQWGUnDbVBbMUjiyfITVwTaXSwPfiLlA12GwRCmdAD9gCUQ5+BjXM1STjE2+
iNMsyWYrWItVoTrUw5SUuwL2AkIK2Wc5TCWzLEfKXYjf2PJfnDmMl7HNdcyP
0uKc+PwOVijRofEfXIZHxNMVO7O1Ex3mhstMi3BBo6BIlReteKCJ9aNsgWAT
c20HYqP3Jd0pljzKc6rRfMiJZwiMbm+4b0cXS7DPrDSuOCGRxlwz1yCdkxCX
I7a235wSWwB5IxrSyBZBgSscyiGoGXeE6pg4YOTMsRsOdWMSjlwA1JTowA5c
gS6oVhwlUwjxLi5KQUlMhMA3fdWzTRvGMu7LLYgjx5bG5n25hXqB4TcwQBHb
aG3zdc0NAy6yqnK1lG4JSUM1rQ5p+JCxcKLtuYhDzEk4JPXV8F9COnvEPDdG
J4jrpWt5ZLwum9oieGe4OkiLitomjF1IeMARC1QpoVSgghxcsVveZgyzULQe
YtG9Adk1keQczFYqSLmQfpuUECzMHsPpWDIVbH5G3RbG57JT2sT+ZnqMN8F7
UM24kQJRG7IzT7kN3KBVqKE44dQpeqPKIMQy0yrxnlHqUXs9qLqU8oevkZ2J
srf3nugJ0ukOC52SmrvVqRsLWo1bRUiEMvxtiV9kBhSc2FNIzPMKxQhbV7Vg
M+oxFa45BIkYRruUypHUMk8v5n6tMA0fSbjOE1WABYWeUopgaKhlGmQwvLbD
6hzcSAzceySEEMXTqSEwgnSbE6wd6OeVqzDDhAJkDe6gMoRJqnqS+J2x7pzd
UCM1WCyB63scPPAgLcpOF8/mfmuEa9BUkH1zlR7gQhSCJgQjMNfam6DtIOFA
fF9d8YJjh+529aqCm6ZN1DtrQQjyyW2iBEISBJ8gCiJn2L4t1yPSmG0GNn6g
iqUl7NxaYIp9GHwo6KYKKWJz3ppmnAjIx3755Rfuj/+Gn72NL0dl117Zx+sR
Xo/x+gavJ3g9xesAr2f33idU/tTv9/+jl9K7h1rffWoXkvH7Rxewk3t+7j4b
N/u/wo1l5nR0/nL86otz8/jXZIOf70Zv+ifH93//+bg56HBDK1+NCYZ7q2k9
+tv4ctgf49cGbh5+Jm5gf3uwnIefXu1Xfz4XO+yd6kVsEuqMTeM0lhJRWnjk
vp4VH4rz7OssLA0A+UNt04re5md9FC/RZcflGQFEKLMqo8fPj5kOhSUX5Ab1
QmKh//FSTVOMCUkhuqIWrt6m9LZCjiH4OgXcbjvHDlG2y3L7WtIyk0FOfqSX
SdVdgz55Cp2yPLcFLNoS8meTZ0LE0k6ydMadBnGEQ/7O7rKercFBLPlWd9lW
qHWKiFPKldQCYyq5QZ7j2VOZDahuMvLMLfe5iWzUJMxZFaBAKy0wnximgDz9
UwXIY7uvTUVLZGYmpd617cmxzQSJz+AyiHMmwzkQ0LAZAdTfFzYBrq3xtdsD
w5y4wdDEbMXtkqSMkYJl3lb3+4pgYfc2EJmyi4tYD6xUj+pGoLMiNkkRRhIX
thC9MlytIqNMDNLYgGk0nT/3kNWsZ5DTimsWl5SpHdeYhbAS4Ok8ptZH39qP
SCbkgtzahgW4Kz3PqDnXrGyn23Vatj3SVqL+NZzGNLaB1gHFgPwZ4nLlQYVH
s5TEgJ1eG9Hxww2q+5QXcCHO8kGhRszYJhiTaOcjdhght+ZGvv9Y8cSyB1mZ
wdJ1YRwHtVMIXpJuQXdMbYlayMO6Qx02yzw8z/RQ0kjVoiAc27upm3l1k2dD
Y2fjdFw5kXgFBvf8Haqi0U1Duah44tIe9lvAZjv43XYSL8Blh0NzwdreqS2g
vIkYFSY+thPrs9GU4FyXAqoV22VV3fW5DEm5fpBW0CcGeXWrQ3XoU4Nzjeuz
4ZuuxqjpzxrKpk2rdftqdPnDi+HJKerMvx1fnA1Pznv6cvTi+mp03NPgLEX9
Obq8vLjkEe9gR/ZPxw5Wipm1SzCa7hjT4H5rauYs8SzN8qZjUfdBvBFXPHWF
uuuR8Kit4sZG6SaCa2cr6iMRrDeOfJQSFTVw2lPO+lHXkJR+Rgy2pK35jpvh
VNXy3CMuFVd7uKuURBCh3MrWzg40ssHjXJu68L9Vn+fY4pqTW+aQBxVYhTJU
lUgLgdrvxNHJ8HyI7cwQdfMmHnPHwrZ8vEh8MNhnPz/2brs0XNlF+gcJx7RV
m4TqEqbobkDWIf7TajGRBo7bQoMLaQOShFWrdKsDqzTrvF1xpmuCZ4eUCgOa
cNjt8nTRNhKaY29HdONWLRG1XRjj73/HhpQW5SYY1YS2XMGomurMNSBYYDwZ
Tbnp/552lHUYsXGzw0+TaJ24bBZ0mrOpUr3wYJ308eyoPGtaIX44IDtqja9L
wUngT3oFXhutDhl+UKIGWNweIEj32N1RQIylfr6So13cPUT+w3uefe0oBUA+
rIcndcPenSwwkc2yEtGKbkizLXzKi00zk25PYMfRSq4Wc2NH0lCg69e1CRGF
YGneg/m9Q30mk96N3MjMrjn4IGihfT9RawZYLPZt4ZdDDSX12yAtvalRs5Rk
UqKwdjZjh8GQQrlJPmZx5xpH6x1ON+v1AxOz6Mcl7PzRoX4tQ8/fTru1dzs6
paBgJ1DbeEvhEikuLWkf99pIN6uxsdjxKIicgMiQiSiFStcDvtA6dbYlVNuh
ES30TfeuKuX7sOEn3a/ilKdRKFMAsOgad1lJaenXpOaSGtCu645tqKddCvaw
h1BoGvSM4/hYkiQnkRBRONi8CYrd7iwPhE0HHKaAhLQl9ez+R7ghJnvvbTIv
nllTHZQy3hKDoqL43yLYtXM+ImF7hcTY3gbfad0jDfYkaZ3aa44UcLVoNWfB
NXnt0hklByXbEKtBB0MIZ0rfPrIoXWoyjtASdYi9/Y2xZikJXU6YBGVpFqyl
zazaUpTn5f8vVplAw+5mVlkr+wf9/W9gvXWuZX+yg5eKA+2YzpkWVW6hXqNw
b+RM/VXCJyGVXojf5JGcxFUjAVJuE1S3+WSU+Gp7qrrDA6DCYlYB5+2jX133
5cz1/fnwbPTtFpMY2DM3W8zC9+M3r0ffDs/fOMwr4/dWfmES7kqfUuO3+9rD
aScRgdBunZ5Zybp+N+3DZirb/ZLCR1BlraImbNsJu02PHun2fLuZqtuBD7f2
+eBJw5/HrW3voujMIk5LqpkzcpebsdYVH2BF4j2iOjxy504VwXW7IUnvPIki
Kflnd4O0uKUpHVXWVUpnJOk0ccjArkoTOmRDOcYbDuswyPOVO3niLyAwIeTm
MsHHGpO5M6z1ZPrg8TcfP/Zak2T36WD3GQ39IDj7+fEBnzu7bjOn/PziZsne
GQBK4l3+OCkllTuRQIap3DFpaurT6Ibr5RdsAITw5dQRuXoQvqPCiacHYUAN
DkR7kwJh9bNpn9wuDo2asM5nYpq1pYRJEC9EYhZJ4OYyXnxddLJJfeBYzYOk
Pn/peWj3yAhzHVU8FD5DOZNJ3VJ6Q/4uDqL8UFBMWhjolECEdxDUVbiqcxRG
R3JI2geWS1AyXKb6SFG+jH+2bSeLurjqaPM+0Be02du46Mg4ZLdC+LnhIZwl
TAypmnptfh15QP6QeTaVTGKPpWt7BHtauWPjYEetV7ylNevMniIVQ7APU+vF
SbYpwCwNdyiUZLsBT7bG5+1lqeIgY5JIgRKsnnmdlFYSMNzMjXZXGuAqYMIy
fpNTTIBXZIUTnhY7X5MDVMv5qqAOElRrSs7j6jQoSholrx/80J2DHzdVQj3E
eqS8pEOLoqiiJ1N25ZhEWdFSIxWncZFXy3KTpgYSt4ysTv0TBYunPxuhcTqJ
mIbhdfPYRoXmLIsNC3w8myrUdvCTwuK8e1zS6zXdU2ziifZfafTkryuAprzS
rafgWxLzA9sthxuNnx/rLfeHU7tuDsj1md5G3N3xqkZFeftOSmL8PqemaPvn
jqN/VfDbS8MT0dC7iecud335cb9bP3cb33oXhQdim37XkurwkEYBaqA7vd0S
2o7wwHIesqQvXQVKpuxJuyHsFdCbGzRs6Y02DvoT+JvNyZSBe0xb+vWsdfhL
XW+RwUlLwk7P45SH7KzUujxe16at6HtcfCmbw9dbae1q2iX2+/sC5D6zmPpY
XHH/2TWdxXLkqJQFGXuP+nv7T3XORyCbM0aLIKK5c55Vs7m+kgLMIsVLB5IR
JGNs78OHvzw/er3/hD3ijmtXaT7c6bPULOB14SemVOv2dad8i9loPZ+wttq+
7ni4Wy8yAgq8Gr8dXo8v3j6/uBhfjS+HrzucdK3ss3Gyt4GTs+H59fB0Iy9f
kJN9b5GTczr19uYtaexe7XwxTh5t4OT1xenJ0WZmviAnj71FIIu340tAutG9
Y+cvyMk3HU6uz787v/jx/A/g5EmHk5PzH4an94/ivyAnTzuc2D79H8DJQYcT
lsiQZlRvaZjwO3LyzFukDiAS2y7OX16cnL/8vTjZ293EiY1t7ljt78PJXrOI
xJG1EOsz9CU52V/j5BNp54tyIsmdF0EN63DjH+A7tkskMml6Q7+FE/7LSPqR
P5GkP+niE73y1xuvgHwyYKxtwS85gMcNTxymdJxWaiDGLztKPdjw3wPQ35g2
/0XArlL/XcMuW0DxMwP1L8cnkf3DQAAA

-->

</rfc>

