<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" ipr="trust200902" docName="draft-ietf-dnsop-rfc7958bis-06" number="9718" category="info" consensus="true" submissionType="IETF" updates="" obsoletes="7958" tocInclude="true" sortRefs="true" symRefs="true" xml:lang="en" prepTime="2025-01-24T14:21:46" indexInclude="true" scripts="Common,Latin" tocDepth="3">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-dnsop-rfc7958bis-06" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9718" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="Root Zone Trust Anchor Publication">DNSSEC Trust Anchor Publication for the Root Zone</title>
    <seriesInfo name="RFC" value="9718" stream="IETF"/>
    <author initials="J." surname="Abley" fullname="Joe Abley">
      <organization showOnFrontPage="true">Cloudflare</organization>
      <address>
        <postal>
          <city>Amsterdam</city>
          <country>Netherlands</country>
        </postal>
        <email>jabley@cloudflare.com</email>
      </address>
    </author>
    <author initials="J." surname="Schlyter" fullname="Jakob Schlyter">
      <organization showOnFrontPage="true">Kirei AB</organization>
      <address>
        <email>jakob@kirei.se</email>
      </address>
    </author>
    <author initials="G." surname="Bailey" fullname="Guillaume Bailey">
      <organization showOnFrontPage="true">Independent</organization>
      <address>
        <email>guillaumebailey@outlook.com</email>
      </address>
    </author>
    <author initials="P." surname="Hoffman" fullname="Paul Hoffman">
      <organization showOnFrontPage="true">ICANN</organization>
      <address>
        <email>paul.hoffman@icann.org</email>
      </address>
    </author>
    <date month="01" year="2025"/>
    <area>OPS</area>
    <workgroup>dnsop</workgroup>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">The root zone of the global Domain Name System (DNS) is
cryptographically signed using DNS Security Extensions (DNSSEC).</t>
      <t indent="0" pn="section-abstract-2">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 uses to distribute the DNSSEC trust anchors.</t>
      <t indent="0" pn="section-abstract-3">This document obsoletes RFC 7958.</t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This document is not an Internet Standards Track specification; it is
            published for informational purposes.  
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document is a product of the Internet Engineering Task Force
            (IETF).  It represents the consensus of the IETF community.  It has
            received public review and has been approved for publication by the
            Internet Engineering Steering Group (IESG).  Not all documents
            approved by the IESG are candidates for any level of Internet
            Standard; see Section 2 of RFC 7841. 
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc9718" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2025 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of
            publication of this document. Please review these documents
            carefully, as they describe your rights and restrictions with
            respect to this document. Code Components extracted from this
            document must include Revised BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Revised BSD License.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.1.2">
              <li pn="section-toc.1-1.1.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.1.1"><xref derivedContent="1.1" format="counter" sectionFormat="of" target="section-1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-definitions">Definitions</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-dnssec-root-zone-trust">IANA DNSSEC Root Zone Trust Anchor Format and Semantics</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2">
              <li pn="section-toc.1-1.2.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.2.1.1"><xref derivedContent="2.1" format="counter" sectionFormat="of" target="section-2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-xml-syntax">XML Syntax</xref></t>
              </li>
              <li pn="section-toc.1-1.2.2.2">
                <t indent="0" pn="section-toc.1-1.2.2.2.1"><xref derivedContent="2.2" format="counter" sectionFormat="of" target="section-2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-xml-semantics">XML Semantics</xref></t>
              </li>
              <li pn="section-toc.1-1.2.2.3">
                <t indent="0" pn="section-toc.1-1.2.2.3.1"><xref derivedContent="2.3" format="counter" sectionFormat="of" target="section-2.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-xml-example">XML Example</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-root-zone-trust-anchor-retr">Root Zone Trust Anchor Retrieval</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2">
              <li pn="section-toc.1-1.3.2.1">
                <t indent="0" pn="section-toc.1-1.3.2.1.1"><xref derivedContent="3.1" format="counter" sectionFormat="of" target="section-3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-retrieving-trust-anchors-wi">Retrieving Trust Anchors with HTTPS and HTTP</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.2">
                <t indent="0" pn="section-toc.1-1.3.2.2.1"><xref derivedContent="3.2" format="counter" sectionFormat="of" target="section-3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-accepting-dnssec-trust-anch">Accepting DNSSEC Trust Anchors</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.3">
                <t indent="0" pn="section-toc.1-1.3.2.3.1"><xref derivedContent="3.3" format="counter" sectionFormat="of" target="section-3.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-changes-in-the-trust-model-">Changes in the Trust Model for Distribution</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2">
              <li pn="section-toc.1-1.4.2.1">
                <t indent="0" pn="section-toc.1-1.4.2.1.1"><xref derivedContent="4.1" format="counter" sectionFormat="of" target="section-4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations-for">Security Considerations for Relying Parties</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2.1.2">
                  <li pn="section-toc.1-1.4.2.1.2.1">
                    <t indent="0" pn="section-toc.1-1.4.2.1.2.1.1"><xref derivedContent="4.1.1" format="counter" sectionFormat="of" target="section-4.1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-validuntil"><tt>validUntil</tt></xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.1.2.2">
                    <t indent="0" pn="section-toc.1-1.4.2.1.2.2.1"><xref derivedContent="4.1.2" format="counter" sectionFormat="of" target="section-4.1.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-comparison-of-digest-and-pu">Comparison of <tt>Digest</tt> and <tt>publickeyinfo</tt></xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.1.2.3">
                    <t indent="0" pn="section-toc.1-1.4.2.1.2.3.1"><xref derivedContent="4.1.3" format="counter" sectionFormat="of" target="section-4.1.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-different-outputs-from-proc">Different Outputs from Processing the Trust Anchor File</xref></t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2">
              <li pn="section-toc.1-1.6.2.1">
                <t indent="0" pn="section-toc.1-1.6.2.1.1"><xref derivedContent="6.1" format="counter" sectionFormat="of" target="section-6.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.2">
                <t indent="0" pn="section-toc.1-1.6.2.2.1"><xref derivedContent="6.2" format="counter" sectionFormat="of" target="section-6.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="Appendix A" format="default" sectionFormat="of" target="section-appendix.a"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-changes-from-rfc-7958">Changes from RFC 7958</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="Appendix B" format="default" sectionFormat="of" target="section-appendix.b"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-historical-note">Historical Note</xref></t>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.c"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgements</xref></t>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.d"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="introduction" numbered="true" removeInRFC="false" toc="include" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">The global Domain Name System (DNS) is described in <xref target="RFC1034" format="default" sectionFormat="of" derivedContent="RFC1034"/> and <xref target="RFC1035" format="default" sectionFormat="of" derivedContent="RFC1035"/>.
DNS Security Extensions (DNSSEC) are described in <xref target="RFC9364" format="default" sectionFormat="of" derivedContent="RFC9364"/>.</t>
      <t indent="0" pn="section-1-2">In the DNSSEC protocol, Resource Record Sets (RRsets) are signed
cryptographically.  This means that a response to a query contains
signatures that allow the integrity and authenticity of the RRset to
be verified.  DNSSEC signatures are validated by following a chain of
signatures to a "trust anchor".  The reason for trusting a trust
anchor is outside the DNSSEC protocol, but having one or more trust
anchors is required for the DNSSEC protocol to work.</t>
      <t indent="0" pn="section-1-3">The publication of trust anchors for the root zone of the DNS is an
IANA function performed by ICANN, through its affiliate Public Technical Identifiers (PTI). A detailed description of
corresponding key management practices can be found in <xref target="DPS" format="default" sectionFormat="of" derivedContent="DPS"/>.</t>
      <t indent="0" pn="section-1-4">This document describes the formats and distribution methods of
DNSSEC trust anchors that are used by IANA for the root zone of
the DNS.  Other organizations might have different formats
and mechanisms for distributing DNSSEC trust anchors for the root
zone; however, most operators and software vendors have chosen to
rely on the IANA trust anchors.</t>
      <t indent="0" pn="section-1-5">The formats and distribution methods described in this document are a
complement to, not a substitute for, the automated DNSSEC trust
anchor update protocol described in <xref target="RFC5011" format="default" sectionFormat="of" derivedContent="RFC5011"/>.  That protocol allows
for secure in-band succession of trust anchors when trust has already
been established.  This document describes one way to establish an
initial trust anchor that can be used by the mechanism defined in <xref target="RFC5011" format="default" sectionFormat="of" derivedContent="RFC5011"/>.</t>
      <t indent="0" pn="section-1-6">This document obsoletes <xref target="RFC7958" format="default" sectionFormat="of" derivedContent="RFC7958"/>.</t>
      <section anchor="definitions" numbered="true" removeInRFC="false" toc="include" pn="section-1.1">
        <name slugifiedName="name-definitions">Definitions</name>
        <t indent="0" pn="section-1.1-1">The term "trust anchor" is used in many different contexts in the
security community.  Many of the common definitions conflict because
they are specific to a specific system, such as just for DNSSEC or
just for S/MIME messages.</t>
        <t indent="0" pn="section-1.1-2">In cryptographic systems with hierarchical structure, a trust anchor is an
authoritative entity for which trust is assumed and not derived.  The format
of the entity differs in different systems, but all common uses of the term
"trust anchor" share the basic idea that the decision to trust this entity is
made outside of the system that relies on it.
</t>
        <t indent="0" pn="section-1.1-3">The root zone trust anchor formats published by IANA are defined in
        <xref target="ta_formats" format="default" sectionFormat="of" derivedContent="Section 2"/>.  <xref target="RFC4033" format="default" sectionFormat="of" derivedContent="RFC4033"/> defines a trust
        anchor as a "configured DNSKEY RR or DS RR hash of a DNSKEY RR".  Note
        that the formats defined here do not match the definition of "trust
        anchor" from <xref target="RFC4033" format="default" sectionFormat="of" derivedContent="RFC4033"/>; however, a system that wants to
        convert the trusted material from IANA into a Delegation Signer (DS)
        RR can do so.</t>
        <t indent="0" pn="section-1.1-4">
    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" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> when, and only when, they appear in all capitals, as
    shown here.
        </t>
      </section>
    </section>
    <section anchor="ta_formats" numbered="true" removeInRFC="false" toc="include" pn="section-2">
      <name slugifiedName="name-iana-dnssec-root-zone-trust">IANA DNSSEC Root Zone Trust Anchor Format and Semantics</name>
      <t indent="0" pn="section-2-1">IANA publishes trust anchors for the root zone as an XML <xref target="W3C.REC-xml11-20060816" format="default" sectionFormat="of" derivedContent="W3C.REC-xml11-20060816"/> document that contains the hashes of the DNSKEY records
and optionally the keys from the DNSKEY records.</t>
      <t indent="0" pn="section-2-2">This format and the associated semantics are described in
the rest of this section.</t>
      <t indent="0" pn="section-2-3">Note that the XML document can have XML comments.
For example, IANA might use these comments to add pointers to important information on the IANA website.
XML comments are only used as human-readable commentary, not extensions to the grammar.</t>
      <t indent="0" pn="section-2-4">The XML document contains a set of hashes for the DNSKEY records that
can be used to validate the root zone.  The hashes are consistent
with the defined presentation format of a DS resource.</t>
      <t indent="0" pn="section-2-5">The XML document can also contain the keys and flags from the DNSKEY records.
The keys and flags are consistent with the defined presentation format of a DNSKEY resource.</t>
      <t indent="0" pn="section-2-6">Note that the hashes are mandatory in the syntax, but the keys are optional.</t>
      <section anchor="xml_syntax" numbered="true" removeInRFC="false" toc="include" pn="section-2.1">
        <name slugifiedName="name-xml-syntax">XML Syntax</name>
        <t indent="0" pn="section-2.1-1">Below is the RELAX NG Compact Schema <xref target="RELAX-NG" format="default" sectionFormat="of" derivedContent="RELAX-NG"/> for
        the documents used to publish trust anchors:</t>
        <sourcecode type="rnc" markers="false" pn="section-2.1-2">
datatypes xsd = "http://www.w3.org/2001/XMLSchema-datatypes"

start = element TrustAnchor {
  attribute id { xsd:string },
  attribute source { xsd:string },
  element Zone { xsd:string },
  keydigest+
}

keydigest = element KeyDigest {
  attribute id { xsd:string },
  attribute validFrom { xsd:dateTime },
  attribute validUntil { xsd:dateTime }?,

  element KeyTag {
      xsd:nonNegativeInteger { maxInclusive = "65535" } },
  element Algorithm {
      xsd:nonNegativeInteger { maxInclusive = "255" } },
  element DigestType {
      xsd:nonNegativeInteger { maxInclusive = "255" } },
  element Digest { xsd:hexBinary },
  publickeyinfo?
}

publickeyinfo =
  element PublicKey { xsd:base64Binary },
  element Flags {
     xsd:nonNegativeInteger { maxInclusive = "65535" } }
</sourcecode>
      </section>
      <section anchor="xml_semantics" numbered="true" removeInRFC="false" toc="include" pn="section-2.2">
        <name slugifiedName="name-xml-semantics">XML Semantics</name>
        <t indent="0" pn="section-2.2-1">The <tt>TrustAnchor</tt> element is the container for all of the trust anchors
in the file.</t>
        <t indent="0" pn="section-2.2-2">The <tt>id</tt> attribute in the <tt>TrustAnchor</tt> element is an opaque string that
identifies the set of trust anchors.  Its value has no particular
semantics.  Note that the <tt>id</tt> attribute in the <tt>TrustAnchor</tt> element is
different than the <tt>id</tt> attribute in the <tt>KeyDigest</tt> element described
below.</t>
        <t indent="0" pn="section-2.2-3">The <tt>source</tt> attribute in the <tt>TrustAnchor</tt> element gives information
about where to obtain the <tt>TrustAnchor</tt> container.  It is likely to be
a URL and is advisory only.</t>
        <t indent="0" pn="section-2.2-4">The <tt>Zone</tt> element in the <tt>TrustAnchor</tt> element states to which DNS zone
this container applies.
The <tt>Zone</tt> element is in presentation format as specified in <xref target="RFC1035" format="default" sectionFormat="of" derivedContent="RFC1035"/>, including the trailing dot.
The root zone is indicated by a single
period (.) character without any quotation marks.</t>
        <t indent="0" pn="section-2.2-5">The <tt>TrustAnchor</tt> element contains one or more <tt>KeyDigest</tt> elements.
Each <tt>KeyDigest</tt> element represents the digest of a past, current, or
potential future DNSKEY record of the zone defined in the <tt>Zone</tt> element.
The values for the elements in the <tt>KeyDigest</tt> element are defined in <xref target="RFC4034" format="default" sectionFormat="of" derivedContent="RFC4034"/>.
The IANA registries for DNSSEC-related values are described in <xref target="RFC9157" format="default" sectionFormat="of" derivedContent="RFC9157"/>.</t>
        <t indent="0" pn="section-2.2-6">The <tt>id</tt> attribute in the <tt>KeyDigest</tt> element is an opaque string that
identifies the hash.
Note that the <tt>id</tt> attribute in the <tt>KeyDigest</tt> element is different than
the <tt>id</tt> attribute in the <tt>TrustAnchor</tt> element described above.</t>
        <t indent="0" pn="section-2.2-7">The <tt>validFrom</tt> and <tt>validUntil</tt> attributes in the <tt>KeyDigest</tt> element specify
the range of times that the <tt>KeyDigest</tt> element can be used as a trust anchor.</t>
        <t indent="0" pn="section-2.2-8">The <tt>KeyTag</tt> element in the <tt>KeyDigest</tt> element contains the key tag for
the DNSKEY record represented in this <tt>KeyDigest</tt>.</t>
        <t indent="0" pn="section-2.2-9">The <tt>Algorithm</tt> element in the <tt>KeyDigest</tt> element contains the DNSSEC signing
algorithm identifier for the DNSKEY record represented in this
<tt>KeyDigest</tt>.</t>
        <t indent="0" pn="section-2.2-10">The <tt>DigestType</tt> element in the <tt>KeyDigest</tt> element contains the DNSSEC digest
algorithm identifier for the DNSKEY record represented in this
<tt>KeyDigest</tt>.</t>
        <t indent="0" pn="section-2.2-11">The <tt>Digest</tt> element in the <tt>KeyDigest</tt> element contains the hexadecimal
representation of the hash for the DNSKEY record represented in this
<tt>KeyDigest</tt>.</t>
        <t indent="0" pn="section-2.2-12">The <tt>publickeyinfo</tt> named pattern in the <tt>KeyDigest</tt> element contains
        two mandatory elements: the base64 representation of the public key
        for the DNSKEY record represented in this <tt>KeyDigest</tt> and the flags of
        the DNSKEY record represented in this <tt>KeyDigest</tt>.  The <tt>publickeyinfo</tt>
        named pattern is optional and is new in this
        specification.  It can be useful when IANA has a trust anchor that has
        not yet been published in the DNS root and for calculating a
        comparison to the <tt>Digest</tt> element.</t>
      </section>
      <section anchor="xml-example" numbered="true" removeInRFC="false" toc="include" pn="section-2.3">
        <name slugifiedName="name-xml-example">XML Example</name>
        <t indent="0" pn="section-2.3-1">The following is an example of what 
	the trust anchor file might look like.  The full public key
	is only given for a trust anchor that does not have a <tt>validFrom</tt>
	time in the past.</t>
        <sourcecode type="xml" markers="false" pn="section-2.3-2">
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;TrustAnchor id="E9724F53-1851-4F86-85E5-F1392102940B"
  source="http://data.iana.org/root-anchors/root-anchors.xml"&gt;
  &lt;Zone&gt;.&lt;/Zone&gt;
  &lt;KeyDigest id="Kjqmt7v"
      validFrom="2010-07-15T00:00:00+00:00"
      validUntil="2019-01-11T00:00:00+00:00"&gt;  &lt;!-- This key
      is no longer valid, since validUntil is in the past --&gt;
    &lt;KeyTag&gt;19036&lt;/KeyTag&gt;
    &lt;Algorithm&gt;8&lt;/Algorithm&gt;
    &lt;DigestType&gt;2&lt;/DigestType&gt;
    &lt;Digest&gt;
49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5
    &lt;/Digest&gt;
  &lt;/KeyDigest&gt;
  &lt;KeyDigest id="Klajeyz" validFrom="2017-02-02T00:00:00+00:00"&gt;
    &lt;KeyTag&gt;20326&lt;/KeyTag&gt;
    &lt;Algorithm&gt;8&lt;/Algorithm&gt;
    &lt;DigestType&gt;2&lt;/DigestType&gt;
    &lt;Digest&gt;
E06D44B80B8F1D39A95C0B0D7C65D08458E880409BBC683457104237C7F8EC8D
    &lt;/Digest&gt;
    &lt;PublicKey&gt;
      AwEAAaz/tAm8yTn4Mfeh5eyI96WSVexTBAvkMgJzkKTOiW1vkIbzxeF3+/4Rg
      WOq7HrxRixHlFlExOLAJr5emLvN7SWXgnLh4+B5xQlNVz8Og8kvArMtNROxVQ
      uCaSnIDdD5LKyWbRd2n9WGe2R8PzgCmr3EgVLrjyBxWezF0jLHwVN8efS3rCj
      /EWgvIWgb9tarpVUDK/b58Da+sqqls3eNbuv7pr+eoZG+SrDK6nWeL3c6H5Ap
      xz7LjVc1uTIdsIXxuOLYA4/ilBmSVIzuDWfdRUfhHdY6+cn8HFRm+2hM8AnXG
      Xws9555KrUB5qihylGa8subX2Nn6UwNR1AkUTV74bU=
    &lt;/PublicKey&gt;
    &lt;Flags&gt;257&lt;/Flags&gt;
  &lt;/KeyDigest&gt;
  &lt;!-- The following is called "KSK-2024" as a shorthand name --&gt;
  &lt;KeyDigest id="Kmyv6jo" validFrom="2024-07-18T00:00:00+00:00"&gt;
    &lt;KeyTag&gt;38696&lt;/KeyTag&gt;
    &lt;Algorithm&gt;8&lt;/Algorithm&gt;
    &lt;DigestType&gt;2&lt;/DigestType&gt;
    &lt;Digest&gt;
683D2D0ACB8C9B712A1948B27F741219298D0A450D612C483AF444A4C0FB2B16
    &lt;/Digest&gt;
  &lt;/KeyDigest&gt;
&lt;/TrustAnchor&gt;
</sourcecode>
        <t indent="0" pn="section-2.3-3">The DS RRset derived from this example is:</t>
        <sourcecode type="dns-rr" markers="false" pn="section-2.3-4">
. IN DS 20326 8 2
   E06D44B80B8F1D39A95C0B0D7C65D08458E880409BBC683457104237C7F8EC8D
. IN DS 38696 8 2
   683D2D0ACB8C9B712A1948B27F741219298D0A450D612C483AF444A4C0FB2B16
</sourcecode>
        <t indent="0" pn="section-2.3-5">Note that this DS record set only has two records.
A potential third record, one that includes the key tag 19036, is already invalid based on the <tt>validUntil</tt> attribute's value and is thus not part of the trust anchor set.</t>
        <t indent="0" pn="section-2.3-6">The DNSKEY RRset derived from this example is:</t>
        <sourcecode type="dns-rr" markers="false" pn="section-2.3-7">
. IN DNSKEY 257 3 8
  AwEAAaz/tAm8yTn4Mfeh5eyI96WSVexTBAvkMgJzkKTOiW1vkIbzxeF3
  +/4RgWOq7HrxRixHlFlExOLAJr5emLvN7SWXgnLh4+B5xQlNVz8Og8kv
  ArMtNROxVQuCaSnIDdD5LKyWbRd2n9WGe2R8PzgCmr3EgVLrjyBxWezF
  0jLHwVN8efS3rCj/EWgvIWgb9tarpVUDK/b58Da+sqqls3eNbuv7pr+e
  oZG+SrDK6nWeL3c6H5Apxz7LjVc1uTIdsIXxuOLYA4/ilBmSVIzuDWfd
  RUfhHdY6+cn8HFRm+2hM8AnXGXws9555KrUB5qihylGa8subX2Nn6UwN
  R1AkUTV74bU=
</sourcecode>
        <t indent="0" pn="section-2.3-8">Note that this DNSKEY record set only has one record.
A potential second record, one based on the key tag 19036, is already invalid based on the <tt>validUntil</tt> attribute's value and is thus not part of the trust anchor set.
Another potential second record, one based on the key tag 38696, does not contain the optional <tt>publickeyinfo</tt> named pattern; therefore, the DNSKEY record for it cannot be calculated.</t>
      </section>
    </section>
    <section anchor="retrieving" numbered="true" removeInRFC="false" toc="include" pn="section-3">
      <name slugifiedName="name-root-zone-trust-anchor-retr">Root Zone Trust Anchor Retrieval</name>
      <section anchor="retrieving-trust-anchors-with-https-and-http" numbered="true" removeInRFC="false" toc="include" pn="section-3.1">
        <name slugifiedName="name-retrieving-trust-anchors-wi">Retrieving Trust Anchors with HTTPS and HTTP</name>
        <t indent="0" pn="section-3.1-1">Trust anchors are available for retrieval using HTTPS and HTTP.</t>
        <t indent="0" pn="section-3.1-2">In this section, all URLs are given using the "https:" scheme.  If
HTTPS cannot be used, replace the "https:" scheme with "http:".</t>
        <t indent="0" pn="section-3.1-3">The URL for retrieving the set of hashes in the XML document described in <xref target="ta_formats" format="default" sectionFormat="of" derivedContent="Section 2"/> is <eref target="https://data.iana.org/root-anchors/root-anchors.xml" brackets="angle"/>.</t>
      </section>
      <section anchor="trusting_anchors" numbered="true" removeInRFC="false" toc="include" pn="section-3.2">
        <name slugifiedName="name-accepting-dnssec-trust-anch">Accepting DNSSEC Trust Anchors</name>
        <t indent="0" pn="section-3.2-1">A validator operator can choose whether or not to accept the trust
anchors described in this document using whatever policy they want.
In order to help validator operators verify the content and origin of
trust anchors they receive, IANA uses digital signatures that chain
to an ICANN-controlled Certificate Authority (CA) over the trust
anchor data.</t>
        <t indent="0" pn="section-3.2-2">It is important to note that the ICANN CA is not a DNSSEC trust
anchor.  Instead, it is an optional mechanism for verifying the
content and origin of the XML and certificate trust anchors.</t>
        <t indent="0" pn="section-3.2-3">The content and origin of the XML document can be verified using a
digital signature on the file.  IANA provides a detached
Cryptographic Message Syntax (CMS) <xref target="RFC5652" format="default" sectionFormat="of" derivedContent="RFC5652"/> signature that chains to
the ICANN CA with the XML document.
This can be useful for validator operators who have received a copy
of the ICANN CA's public key in a trusted out-of-band fashion.
The URL for a detached CMS signature
for the XML document is
<eref target="https://data.iana.org/root-anchors/root-anchors.p7s" brackets="angle"/>.</t>
        <t indent="0" pn="section-3.2-4">Another method IANA uses to help validator operators verify the
content and origin of trust anchors they receive is to use the
Transport Layer Security (TLS) protocol for distributing the trust
anchors.  Currently, the CA used for "data.iana.org" is well known,
that is, one that is a WebTrust-accredited CA.  If a system
retrieving the trust anchors trusts the CA that IANA uses for the
"data.iana.org" web server, HTTPS <bcp14>SHOULD</bcp14> be used instead of HTTP in
order to have assurance of data origin.</t>
      </section>
      <section anchor="changes-in-the-trust-model-for-distribution" numbered="true" removeInRFC="false" toc="include" pn="section-3.3">
        <name slugifiedName="name-changes-in-the-trust-model-">Changes in the Trust Model for Distribution</name>
        <t indent="0" pn="section-3.3-1">IANA used to distribute trust anchors as a self-signed Pretty Good Privacy (PGP)  message
and as a self-issued certificate signing request; this was described in <xref target="RFC7958" format="default" sectionFormat="of" derivedContent="RFC7958"/>.
This document removes those methods because they rely on a trust model
that mixes out-of-band trust of authentication keys with out-of-band trust of the DNSSEC root keys.
Note, however, that cryptographic assurance for the contents of the trust anchor now
comes from the Web PKI or the ICANN CA as described in <xref target="trusting_anchors" format="default" sectionFormat="of" derivedContent="Section 3.2"/>.
This cryptographic assurance is bolstered by informal comparisons made by users of the
trust anchors, such as software vendors comparing the trust anchor files they are using.</t>
      </section>
    </section>
    <section anchor="security-considerations" numbered="true" removeInRFC="false" toc="include" pn="section-4">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-4-1">This document describes how DNSSEC trust anchors for the root zone of
the DNS are published.  Many DNSSEC clients will only configure IANA-issued
trust anchors for the DNS root to perform validation.  As a
consequence, reliable publication of trust anchors is important.</t>
      <t indent="0" pn="section-4-2">This document aims to specify carefully the means by which such trust
anchors are published, with the goal of making it easier for those
trust anchors to be integrated into user environments.
Some of the methods described (such as accessing over the Web
with or without verifying the signature on the file) have different security properties;
users of the trust anchor file need to consider these when choosing whether to load the set of trust anchors.</t>
      <section anchor="security-considerations-for-relying-parties" numbered="true" removeInRFC="false" toc="include" pn="section-4.1">
        <name slugifiedName="name-security-considerations-for">Security Considerations for Relying Parties</name>
        <t indent="0" pn="section-4.1-1">The body of this document does not specify any particular behavior for relying parties.
Specifically, it does not say how a relying party should treat the trust anchor file as a whole.
However, some of the contents of the trust anchor file require particular attention for relying parties.</t>
        <section anchor="validuntil" numbered="true" removeInRFC="false" toc="include" pn="section-4.1.1">
          <name slugifiedName="name-validuntil"><tt>validUntil</tt></name>
          <t indent="0" pn="section-4.1.1-1">Note that the <tt>validUntil</tt> attribute of the <tt>KeyDigest</tt> element is optional.
If the relying party is using a trust anchor that has a <tt>KeyDigest</tt> element
that does not have a <tt>validUntil</tt> attribute, it can change to a trust anchor
with a <tt>KeyDigest</tt> element that does have a <tt>validUntil</tt> attribute,
as long as that trust anchor's <tt>validUntil</tt> attribute is in the future and the
<tt>KeyTag</tt>, <tt>Algorithm</tt>, <tt>DigestType</tt>, and <tt>Digest</tt> elements of the <tt>KeyDigest</tt> are the same as those in the previous trust anchor.</t>
          <t indent="0" pn="section-4.1.1-2">Relying parties <bcp14>SHOULD NOT</bcp14> use a <tt>KeyDigest</tt> outside of the time range given
in the <tt>validFrom</tt> and <tt>validUntil</tt> attributes.</t>
        </section>
        <section anchor="comparison-of-digest-and-a-publickeyinfo" numbered="true" removeInRFC="false" toc="include" pn="section-4.1.2">
          <name slugifiedName="name-comparison-of-digest-and-pu">Comparison of <tt>Digest</tt> and <tt>publickeyinfo</tt></name>
          <t indent="0" pn="section-4.1.2-1">A <tt>KeyDigest</tt> element can contain both a <tt>Digest</tt> and a <tt>publickeyinfo</tt> named pattern.
If the <tt>Digest</tt> element would not be a proper DS record for a DNSKEY record represented by the <tt>publickeyinfo</tt> named pattern,
relying parties <bcp14>MUST NOT</bcp14> use that <tt>KeyDigest</tt> as a trust anchor.
A relying party that wants to make such a comparison needs to marshal the elements of the DNSKEY record that became the DS record using the algorithm specified in <xref section="5.1.4" sectionFormat="of" target="RFC4034" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4034#section-5.1.4" derivedContent="RFC4034"/>.</t>
          <t indent="0" pn="section-4.1.2-2">Relying parties need to implement trust anchor matching carefully.
A single trust anchor represented by a <tt>KeyDigest</tt> element can potentially change its <tt>Digest</tt> and <tt>KeyTag</tt> values between two versions of the trust anchor file, for example, when the key is revoked or the flag value changes for some other reason.
Relying parties that fail to take this property into account are at risk of using an incorrect set of trust anchors.</t>
        </section>
        <section anchor="different-outputs-from-processing-the-trust-anchor-file" numbered="true" removeInRFC="false" toc="include" pn="section-4.1.3">
          <name slugifiedName="name-different-outputs-from-proc">Different Outputs from Processing the Trust Anchor File</name>
          <t indent="0" pn="section-4.1.3-1">Relying parties that require the optional <tt>publickeyinfo</tt> named pattern to create trust anchors will store fewer trust anchors than those that only require a <tt>Digest</tt> element.
Thus, two systems processing the same trust anchor file can end up with a different set of trust anchors.</t>
        </section>
      </section>
    </section>
    <section anchor="iana-considerations" numbered="true" removeInRFC="false" toc="include" pn="section-5">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t indent="0" pn="section-5-1">Each time IANA produces a new trust anchor,
it <bcp14>MUST</bcp14> publish that trust anchor using the format described in this document.</t>
      <t indent="0" pn="section-5-2">IANA <bcp14>MAY</bcp14> delay the publication of a new trust anchor for operational reasons,
such as having a newly created key in multiple facilities.</t>
      <t indent="0" pn="section-5-3">When a trust anchor that was previously published is no longer suitable for use,
IANA <bcp14>MUST</bcp14> update the trust anchor file accordingly by setting a <tt>validUntil</tt> date for that trust anchor.
The <tt>validUntil</tt> attribute that is added <bcp14>MAY</bcp14> be a date in the past or in the future, depending on IANA's operational choices.</t>
      <t indent="0" pn="section-5-4">More information about IANA's policies and procedures for how the cryptographic keys for the DNS root zone are managed
(also known as "DNSSEC Practice Statements" or "DPSs")
can be found at <eref target="https://www.iana.org/dnssec/procedures" brackets="angle"/>.</t>
      <t indent="0" pn="section-5-5"><xref target="RFC7958" format="default" sectionFormat="of" derivedContent="RFC7958"/> defined id-mod-dns-resource-record, value 70, which was added to the "SMI Security for PKIX Module Identifier" registry.
This document does not use that identifier.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references" pn="section-6">
      <name slugifiedName="name-references">References</name>
      <references anchor="sec-normative-references" pn="section-6.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="RFC1034" target="https://www.rfc-editor.org/info/rfc1034" quoteTitle="true" derivedAnchor="RFC1034">
          <front>
            <title>Domain names - concepts and facilities</title>
            <author fullname="P. Mockapetris" initials="P." surname="Mockapetris"/>
            <date month="November" year="1987"/>
            <abstract>
              <t indent="0">This RFC is the revised basic definition of The Domain Name System. It obsoletes RFC-882. This memo describes the domain style names and their used for host address look up and electronic mail forwarding. It discusses the clients and servers in the domain name system and the protocol used between them.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="13"/>
          <seriesInfo name="RFC" value="1034"/>
          <seriesInfo name="DOI" value="10.17487/RFC1034"/>
        </reference>
        <reference anchor="RFC1035" target="https://www.rfc-editor.org/info/rfc1035" quoteTitle="true" derivedAnchor="RFC1035">
          <front>
            <title>Domain names - implementation and specification</title>
            <author fullname="P. Mockapetris" initials="P." surname="Mockapetris"/>
            <date month="November" year="1987"/>
            <abstract>
              <t indent="0">This RFC is the revised specification of the protocol and format used in the implementation of the Domain Name System. It obsoletes RFC-883. This memo documents the details of the domain name client - server communication.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="13"/>
          <seriesInfo name="RFC" value="1035"/>
          <seriesInfo name="DOI" value="10.17487/RFC1035"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="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 indent="0">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="RFC4033" target="https://www.rfc-editor.org/info/rfc4033" quoteTitle="true" derivedAnchor="RFC4033">
          <front>
            <title>DNS Security Introduction and Requirements</title>
            <author fullname="R. Arends" initials="R." surname="Arends"/>
            <author fullname="R. Austein" initials="R." surname="Austein"/>
            <author fullname="M. Larson" initials="M." surname="Larson"/>
            <author fullname="D. Massey" initials="D." surname="Massey"/>
            <author fullname="S. Rose" initials="S." surname="Rose"/>
            <date month="March" year="2005"/>
            <abstract>
              <t indent="0">The Domain Name System Security Extensions (DNSSEC) add data origin authentication and data integrity to the Domain Name System. This document introduces these extensions and describes their capabilities and limitations. This document also discusses the services that the DNS security extensions do and do not provide. Last, this document describes the interrelationships between the documents that collectively describe DNSSEC. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4033"/>
          <seriesInfo name="DOI" value="10.17487/RFC4033"/>
        </reference>
        <reference anchor="RFC4034" target="https://www.rfc-editor.org/info/rfc4034" quoteTitle="true" derivedAnchor="RFC4034">
          <front>
            <title>Resource Records for the DNS Security Extensions</title>
            <author fullname="R. Arends" initials="R." surname="Arends"/>
            <author fullname="R. Austein" initials="R." surname="Austein"/>
            <author fullname="M. Larson" initials="M." surname="Larson"/>
            <author fullname="D. Massey" initials="D." surname="Massey"/>
            <author fullname="S. Rose" initials="S." surname="Rose"/>
            <date month="March" year="2005"/>
            <abstract>
              <t indent="0">This document is part of a family of documents that describe the DNS Security Extensions (DNSSEC). The DNS Security Extensions are a collection of resource records and protocol modifications that provide source authentication for the DNS. This document defines the public key (DNSKEY), delegation signer (DS), resource record digital signature (RRSIG), and authenticated denial of existence (NSEC) resource records. The purpose and format of each resource record is described in detail, and an example of each resource record is given.</t>
              <t indent="0">This document obsoletes RFC 2535 and incorporates changes from all updates to RFC 2535. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4034"/>
          <seriesInfo name="DOI" value="10.17487/RFC4034"/>
        </reference>
        <reference anchor="RFC5011" target="https://www.rfc-editor.org/info/rfc5011" quoteTitle="true" derivedAnchor="RFC5011">
          <front>
            <title>Automated Updates of DNS Security (DNSSEC) Trust Anchors</title>
            <author fullname="M. StJohns" initials="M." surname="StJohns"/>
            <date month="September" year="2007"/>
            <abstract>
              <t indent="0">This document describes a means for automated, authenticated, and authorized updating of DNSSEC "trust anchors". The method provides protection against N-1 key compromises of N keys in the trust point key set. Based on the trust established by the presence of a current anchor, other anchors may be added at the same place in the hierarchy, and, ultimately, supplant the existing anchor(s).</t>
              <t indent="0">This mechanism will require changes to resolver management behavior (but not resolver resolution behavior), and the addition of a single flag bit to the DNSKEY record. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="74"/>
          <seriesInfo name="RFC" value="5011"/>
          <seriesInfo name="DOI" value="10.17487/RFC5011"/>
        </reference>
        <reference anchor="RFC5652" target="https://www.rfc-editor.org/info/rfc5652" quoteTitle="true" derivedAnchor="RFC5652">
          <front>
            <title>Cryptographic Message Syntax (CMS)</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="September" year="2009"/>
            <abstract>
              <t indent="0">This document describes the Cryptographic Message Syntax (CMS). This syntax is used to digitally sign, digest, authenticate, or encrypt arbitrary message content. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="70"/>
          <seriesInfo name="RFC" value="5652"/>
          <seriesInfo name="DOI" value="10.17487/RFC5652"/>
        </reference>
        <reference anchor="RFC7958" target="https://www.rfc-editor.org/info/rfc7958" quoteTitle="true" derivedAnchor="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 indent="0">The root zone of the Domain Name System (DNS) has been cryptographically signed using DNS Security Extensions (DNSSEC).</t>
              <t indent="0">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="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="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 indent="0">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="RFC9157" target="https://www.rfc-editor.org/info/rfc9157" quoteTitle="true" derivedAnchor="RFC9157">
          <front>
            <title>Revised IANA Considerations for DNSSEC</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2021"/>
            <abstract>
              <t indent="0">This document changes the review requirements needed to get DNSSEC algorithms and resource records added to IANA registries. It updates RFC 6014 to include hash algorithms for Delegation Signer (DS) records and NextSECure version 3 (NSEC3) parameters (for Hashed Authenticated Denial of Existence). It also updates RFCs 5155 and 6014, which have requirements for DNSSEC algorithms, and updates RFC 8624 to clarify the implementation recommendation related to the algorithms described in RFCs that are not on the standards track. The rationale for these changes is to bring the requirements for DS records and hash algorithms used in NSEC3 in line with the requirements for all other DNSSEC algorithms.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9157"/>
          <seriesInfo name="DOI" value="10.17487/RFC9157"/>
        </reference>
        <reference anchor="RFC9364" target="https://www.rfc-editor.org/info/rfc9364" quoteTitle="true" derivedAnchor="RFC9364">
          <front>
            <title>DNS Security Extensions (DNSSEC)</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="February" year="2023"/>
            <abstract>
              <t indent="0">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="W3C.REC-xml11-20060816" target="https://www.w3.org/TR/2006/REC-xml11-20060816" quoteTitle="true" derivedAnchor="W3C.REC-xml11-20060816">
          <front>
            <title>Extensible Markup Language (XML) 1.1 (Second Edition)</title>
            <author initials="T." surname="Bray" fullname="Tim Bray">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Paoli" fullname="Jean Paoli">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Sperberg-McQueen" fullname="Michael Sperberg-McQueen">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="E." surname="Maler" fullname="Eve Maler">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="F." surname="Yergeau" fullname="FranÃ§ois Yergeau">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Cowan" fullname="John Cowan">
              <organization showOnFrontPage="true"/>
            </author>
            <date month="August" day="16" year="2006"/>
          </front>
          <seriesInfo name="W3C Recommendation" value="REC-xml11-20060816"/>
          <format type="HTML" target="https://www.w3.org/TR/2006/REC-xml11-20060816"/>
        </reference>
      </references>
      <references anchor="sec-informative-references" pn="section-6.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="DPS" target="https://www.iana.org/dnssec/procedures" quoteTitle="true" derivedAnchor="DPS">
          <front>
            <title>DNSSEC Practice Statement for the Root Zone KSK Operator</title>
            <author>
              <organization showOnFrontPage="true">Root Zone KSK Operator Policy Management Authority</organization>
            </author>
          </front>
        </reference>
        <reference anchor="RELAX-NG" target="https://www.oasis-open.org/committees/relax-ng/compact-20021121.html" quoteTitle="true" derivedAnchor="RELAX-NG">
          <front>
            <title>RELAX NG Compact Syntax</title>
            <author initials="J." surname="Clark" fullname="James Clark">
              <organization showOnFrontPage="true"/>
            </author>
            <date month="November" year="2002"/>
          </front>
          <refcontent>OASIS Committee Specification</refcontent>
        </reference>
      </references>
    </references>
    <section anchor="changes-from-rfc-7958" numbered="true" removeInRFC="false" toc="include" pn="section-appendix.a">
      <name slugifiedName="name-changes-from-rfc-7958">Changes from RFC 7958</name>
      <t indent="0" pn="section-appendix.a-1">This document includes the following changes:</t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-appendix.a-2">
        <li pn="section-appendix.a-2.1">
          <t indent="0" pn="section-appendix.a-2.1.1">Made a significant technical change per <eref target="https://www.rfc-editor.org/errata/eid5932" brackets="angle">Erratum ID 5932</eref>.
This change is in the seventh paragraph of <xref target="xml_semantics" format="default" sectionFormat="of" derivedContent="Section 2.2"/>.</t>
        </li>
        <li pn="section-appendix.a-2.2">
          <t indent="0" pn="section-appendix.a-2.2.1">Added the optional <tt>publickeyinfo</tt> named pattern with two mandatory elements, <tt>PublicKey</tt> and <tt>Flags</tt>.</t>
        </li>
        <li pn="section-appendix.a-2.3">
          <t indent="0" pn="section-appendix.a-2.3.1">Removed the certificates and certificate signing mechanisms.</t>
        </li>
        <li pn="section-appendix.a-2.4">
          <t indent="0" pn="section-appendix.a-2.4.1">Removed the detached OpenPGP signature mechanism.</t>
        </li>
        <li pn="section-appendix.a-2.5">
          <t indent="0" pn="section-appendix.a-2.5.1">Updated the reference to the DNSSEC Practice Statement <xref target="DPS" format="default" sectionFormat="of" derivedContent="DPS"/>.</t>
        </li>
        <li pn="section-appendix.a-2.6">
          <t indent="0" pn="section-appendix.a-2.6.1">Stated explicitly that the XML documents might have XML comments in them.</t>
        </li>
        <li pn="section-appendix.a-2.7">
          <t indent="0" pn="section-appendix.a-2.7.1">Clarified the use of the detached CMS signature.</t>
        </li>
        <li pn="section-appendix.a-2.8">
          <t indent="0" pn="section-appendix.a-2.8.1">Updated the <xref target="iana-considerations" format="title" sectionFormat="of" derivedContent="IANA Considerations"/> section to indicate requirements on IANA.</t>
        </li>
        <li pn="section-appendix.a-2.9">
          <t indent="0" pn="section-appendix.a-2.9.1">Simplified the description of using the <tt>validFrom</tt> and <tt>validUntil</tt> attributes.</t>
        </li>
        <li pn="section-appendix.a-2.10">
          <t indent="0" pn="section-appendix.a-2.10.1">Added new security considerations.</t>
        </li>
        <li pn="section-appendix.a-2.11">
          <t indent="0" pn="section-appendix.a-2.11.1">Made some editorial changes.</t>
        </li>
      </ul>
    </section>
    <section anchor="historical-note" numbered="true" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-historical-note">Historical Note</name>
      <t indent="0" pn="section-appendix.b-1">The first Key Signing Key (KSK) for use in the root zone of the DNS was
generated at a key ceremony at the ICANN Key Management Facility
(KMF) in Culpeper, Virginia, USA on 2010-06-16.  This key
entered production during a second key ceremony held at an
ICANN KMF in El Segundo, California, USA on 2010-07-12.
The resulting trust anchor was first published on 2010-07-15.</t>
      <t indent="0" pn="section-appendix.b-2">The second KSK for use in the root zone of the DNS was
generated at key ceremony #27 at the ICANN KMF in Culpeper, Virginia, USA on 2016-10-27.
This key entered production during key ceremony #28 held at
the ICANN KMF in El Segundo, California, USA on 2017-02-02.
The resulting trust anchor was first published on 2018-11-11.</t>
      <t indent="0" pn="section-appendix.b-3">More information about the key ceremonies,
including full records of previous ceremonies and plans for future ceremonies,
can be found at <eref target="https://www.iana.org/dnssec/ceremonies" brackets="angle"/>.</t>
    </section>
    <section anchor="acknowledgemwents" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.c">
      <name slugifiedName="name-acknowledgements">Acknowledgements</name>
      <t indent="0" pn="section-appendix.c-1">Many pioneers paved the way for the deployment of DNSSEC in the root
      zone of the DNS, and the authors hereby acknowledge their substantial
      collective contribution.</t>
      <t indent="0" pn="section-appendix.c-2">RFC 7958 incorporated suggestions made by <contact fullname="Alfred       Hoenes"/> and <contact fullname="Russ Housley"/>, whose contributions
      are appreciated.</t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.d">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author initials="J." surname="Abley" fullname="Joe Abley">
        <organization showOnFrontPage="true">Cloudflare</organization>
        <address>
          <postal>
            <city>Amsterdam</city>
            <country>Netherlands</country>
          </postal>
          <email>jabley@cloudflare.com</email>
        </address>
      </author>
      <author initials="J." surname="Schlyter" fullname="Jakob Schlyter">
        <organization showOnFrontPage="true">Kirei AB</organization>
        <address>
          <email>jakob@kirei.se</email>
        </address>
      </author>
      <author initials="G." surname="Bailey" fullname="Guillaume Bailey">
        <organization showOnFrontPage="true">Independent</organization>
        <address>
          <email>guillaumebailey@outlook.com</email>
        </address>
      </author>
      <author initials="P." surname="Hoffman" fullname="Paul Hoffman">
        <organization showOnFrontPage="true">ICANN</organization>
        <address>
          <email>paul.hoffman@icann.org</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
