<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="exp" docName="draft-dukhovni-tls-dnssec-chain-08" indexInclude="true" ipr="trust200902" number="9102" prepTime="2021-08-11T16:50:17" scripts="Common,Latin" sortRefs="true" submissionType="independent" symRefs="true" tocDepth="3" tocInclude="true" xml:lang="en">
  <link href="https://datatracker.ietf.org/doc/draft-dukhovni-tls-dnssec-chain-08" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9102" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="TLS DNSSEC Chain">TLS DNSSEC Chain Extension</title>
    <seriesInfo name="RFC" value="9102" stream="independent"/>
    <author initials="V." surname="Dukhovni" fullname="Viktor Dukhovni">
      <organization showOnFrontPage="true">Two Sigma</organization>
      <address>
        <postal>
</postal>
        <email>ietf-dane@dukhovni.org</email>
      </address>
    </author>
    <author initials="S." surname="Huque" fullname="Shumon Huque">
      <organization showOnFrontPage="true">Salesforce</organization>
      <address>
        <postal>
          <extaddr>3rd Floor</extaddr>
          <street>415 Mission Street</street>
          <city>San Francisco</city>
          <region>CA</region>
          <code>94105</code>
          <country>United States of America</country>
        </postal>
        <email>shuque@gmail.com</email>
      </address>
    </author>
    <author initials="W." surname="Toorop" fullname="Willem Toorop">
      <organization showOnFrontPage="true">NLnet Labs</organization>
      <address>
        <postal>
          <street>Science Park 400</street>
          <city>Amsterdam</city>
          <code>1098 XH</code>
          <country>Netherlands</country>
        </postal>
        <email>willem@nlnetlabs.nl</email>
      </address>
    </author>
    <author initials="P." surname="Wouters" fullname="Paul Wouters">
      <organization showOnFrontPage="true">Aiven</organization>
      <address>
        <postal>
          <city>Toronto</city>
          <country>Canada</country>
        </postal>
        <email>paul.wouters@aiven.io</email>
      </address>
    </author>
    <author initials="M." surname="Shore" fullname="Melinda Shore">
      <organization showOnFrontPage="true">Fastly</organization>
      <address>
        <postal>
</postal>
        <email>mshore@fastly.com</email>
      </address>
    </author>
    <date month="08" year="2021"/>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">This document describes an experimental TLS extension for the in-band
transport of the complete set of records that can be validated by DNSSEC and that are needed to
perform DNS-Based Authentication of Named Entities (DANE) of a TLS server. This extension obviates the need to
perform separate, out-of-band DNS lookups.  When the requisite DNS
records do not exist, the extension conveys a denial-of-existence proof that can be validated.</t>
      <t indent="0" pn="section-abstract-2">This experimental extension is developed outside the IETF and is
published here to guide implementation of the extension and to ensure
interoperability among implementations.</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 examination, experimental implementation, and
            evaluation.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document defines an Experimental Protocol for the Internet
            community.  This is a contribution to the RFC Series,
            independently of any other RFC stream.  The RFC Editor has chosen to publish this
            document at its discretion and makes no statement about its value
            for implementation or deployment.  Documents approved for publication
            by the RFC Editor are not 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/rfc9102" 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) 2021 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.
        </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-scope-of-the-experiment">Scope of the Experiment</xref></t>
              </li>
              <li pn="section-toc.1-1.1.2.2">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.2.1"><xref derivedContent="1.2" format="counter" sectionFormat="of" target="section-1.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-requirements-notation">Requirements Notation</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-dnssec-authentication-chain">DNSSEC Authentication Chain Extension</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" 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-protocol-tls-12">Protocol, TLS 1.2</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-protocol-tls-13">Protocol, TLS 1.3</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-dnssec-authentication-chain-">DNSSEC Authentication Chain Data</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2.3.2">
                  <li pn="section-toc.1-1.2.2.3.2.1">
                    <t indent="0" pn="section-toc.1-1.2.2.3.2.1.1"><xref derivedContent="2.3.1" format="counter" sectionFormat="of" target="section-2.3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-authenticated-denial-of-exi">Authenticated Denial of Existence</xref></t>
                  </li>
                </ul>
              </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-construction-of-serialized-">Construction of Serialized Authentication Chains</xref></t>
          </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-caching-and-regeneration-of">Caching and Regeneration of the Authentication Chain</xref></t>
          </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-expired-signatures-in-the-a">Expired Signatures in the Authentication Chain</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-verification">Verification</xref></t>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-extension-pinning">Extension Pinning</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-trust-anchor-maintenance">Trust Anchor Maintenance</xref></t>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-virtual-hosting">Virtual Hosting</xref></t>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="10" format="counter" sectionFormat="of" target="section-10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-operational-considerations">Operational Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.11">
            <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="11" format="counter" sectionFormat="of" target="section-11"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.12">
            <t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="12" format="counter" sectionFormat="of" target="section-12"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.13">
            <t indent="0" pn="section-toc.1-1.13.1"><xref derivedContent="13" format="counter" sectionFormat="of" target="section-13"/>. <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.13.2">
              <li pn="section-toc.1-1.13.2.1">
                <t indent="0" pn="section-toc.1-1.13.2.1.1"><xref derivedContent="13.1" format="counter" sectionFormat="of" target="section-13.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.13.2.2">
                <t indent="0" pn="section-toc.1-1.13.2.2.1"><xref derivedContent="13.2" format="counter" sectionFormat="of" target="section-13.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.14">
            <t indent="0" pn="section-toc.1-1.14.1"><xref derivedContent="Appendix A" format="default" sectionFormat="of" target="section-appendix.a"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-test-vectors">Test Vectors</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.14.2">
              <li pn="section-toc.1-1.14.2.1">
                <t indent="0" pn="section-toc.1-1.14.2.1.1"><xref derivedContent="A.1" format="counter" sectionFormat="of" target="section-appendix.a.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-_443_tcpwwwexamplecom"><tt>_443._tcp.www.example.com</tt></xref></t>
              </li>
              <li pn="section-toc.1-1.14.2.2">
                <t indent="0" pn="section-toc.1-1.14.2.2.1"><xref derivedContent="A.2" format="counter" sectionFormat="of" target="section-appendix.a.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-_25_tcpexamplecom-nsec-wild"><tt>_25._tcp.example.com</tt> NSEC Wildcard</xref></t>
              </li>
              <li pn="section-toc.1-1.14.2.3">
                <t indent="0" pn="section-toc.1-1.14.2.3.1"><xref derivedContent="A.3" format="counter" sectionFormat="of" target="section-appendix.a.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-_25_tcpexampleorg-nsec3-wil"><tt>_25._tcp.example.org</tt> NSEC3 Wildcard</xref></t>
              </li>
              <li pn="section-toc.1-1.14.2.4">
                <t indent="0" pn="section-toc.1-1.14.2.4.1"><xref derivedContent="A.4" format="counter" sectionFormat="of" target="section-appendix.a.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-_443_tcpwwwexampleorg-cname"><tt>_443._tcp.www.example.org</tt> CNAME</xref></t>
              </li>
              <li pn="section-toc.1-1.14.2.5">
                <t indent="0" pn="section-toc.1-1.14.2.5.1"><xref derivedContent="A.5" format="counter" sectionFormat="of" target="section-appendix.a.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-_443_tcpwwwexamplenet-dname"><tt>_443._tcp.www.example.net</tt> DNAME</xref></t>
              </li>
              <li pn="section-toc.1-1.14.2.6">
                <t indent="0" pn="section-toc.1-1.14.2.6.1"><xref derivedContent="A.6" format="counter" sectionFormat="of" target="section-appendix.a.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-_25_tcpsmtpexamplecom-nsec-"><tt>_25._tcp.smtp.example.com</tt> NSEC Denial of Existence</xref></t>
              </li>
              <li pn="section-toc.1-1.14.2.7">
                <t indent="0" pn="section-toc.1-1.14.2.7.1"><xref derivedContent="A.7" format="counter" sectionFormat="of" target="section-appendix.a.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-_25_tcpsmtpexampleorg-nsec3"><tt>_25._tcp.smtp.example.org</tt> NSEC3 Denial of Existence</xref></t>
              </li>
              <li pn="section-toc.1-1.14.2.8">
                <t indent="0" pn="section-toc.1-1.14.2.8.1"><xref derivedContent="A.8" format="counter" sectionFormat="of" target="section-appendix.a.8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-_443_tcpwwwinsecureexample-"><tt>_443._tcp.www.insecure.example</tt> NSEC3 Opt-Out Insecure Delegation</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.15">
            <t indent="0" pn="section-toc.1-1.15.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgments">Acknowledgments</xref></t>
          </li>
          <li pn="section-toc.1-1.16">
            <t indent="0" pn="section-toc.1-1.16.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.c"/><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">This document describes an experimental TLS <xref target="RFC5246" format="default" sectionFormat="of" derivedContent="RFC5246"/> <xref target="RFC8446" format="default" sectionFormat="of" derivedContent="RFC8446"/>
extension for in-band transport of the complete set of resource records (RRs) validated by DNSSEC <xref target="RFC4033" format="default" sectionFormat="of" derivedContent="RFC4033"/> <xref target="RFC4034" format="default" sectionFormat="of" derivedContent="RFC4034"/> <xref target="RFC4035" format="default" sectionFormat="of" derivedContent="RFC4035"/>. This extension enables a TLS client to perform DANE authentication <xref target="RFC6698" format="default" sectionFormat="of" derivedContent="RFC6698"/> <xref target="RFC7671" format="default" sectionFormat="of" derivedContent="RFC7671"/>
of a TLS server without the need to perform out-of-band DNS lookups.
Retrieval of the required DNS records may be unavailable to the client
<xref target="DISCOVERY" format="default" sectionFormat="of" derivedContent="DISCOVERY"/> or may incur undesirable additional latency.</t>
      <t indent="0" pn="section-1-2">The extension described here allows a TLS client to request that the
TLS server return the DNSSEC authentication chain corresponding to
its DNSSEC-validated DANE TLSA resource record set (RRset) or
authenticated denial of existence of such an RRset (as described in
<xref target="denial_of_existence" format="default" sectionFormat="of" derivedContent="Section 2.3.1"/>). If the server supports this extension, it
performs the appropriate DNS queries, builds the authentication
chain, and returns it to the client. The server will typically use a
previously cached authentication chain, but it will need to rebuild
it periodically as described in <xref target="sec_caching" format="default" sectionFormat="of" derivedContent="Section 4"/>. The client then
authenticates the chain using a preconfigured DNSSEC trust anchor.</t>
      <t indent="0" pn="section-1-3">In the absence of TLSA records, this extension conveys the required
authenticated denial of existence. Such proofs are needed to securely
signal that specified TLSA records are not available so that TLS clients
can safely fall back to authentication based on Public Key Infrastructure X.509 (PKIX, sometimes called
WebPKI) if allowed by local policy. These proofs
are also needed to avoid downgrade from opportunistic authenticated TLS
(when DANE TLSA records are present) to unauthenticated opportunistic TLS
(in the absence of DANE). Denial-of-existence records are also used by
the TLS client to clear extension pins that are no longer relevant, as described in
<xref target="pinning" format="default" sectionFormat="of" derivedContent="Section 7"/>.</t>
      <t indent="0" pn="section-1-4">This extension supports DANE authentication of either X.509
certificates or raw public keys, as described in the DANE
specification <xref target="RFC6698" format="default" sectionFormat="of" derivedContent="RFC6698"/> <xref target="RFC7671" format="default" sectionFormat="of" derivedContent="RFC7671"/> <xref target="RFC7250" format="default" sectionFormat="of" derivedContent="RFC7250"/>.</t>
      <t indent="0" pn="section-1-5">This extension also mitigates against an unknown key share (UKS)
attack <xref target="I-D.barnes-dane-uks" format="default" sectionFormat="of" derivedContent="DANE-UKS"/> when using raw public keys since the
server commits to its DNS name (normally found in its certificate)
via the content of the returned TLSA RRset.</t>
      <t indent="0" pn="section-1-6">This experimental extension is developed outside the IETF and is
published here to guide implementation of the extension and to ensure
interoperability among implementations.</t>
      <section anchor="scope-of-the-experiment" numbered="true" removeInRFC="false" toc="include" pn="section-1.1">
        <name slugifiedName="name-scope-of-the-experiment">Scope of the Experiment</name>
        <t indent="0" pn="section-1.1-1">The mechanism described in this document is intended to be used with
applications on the wider internet. One application of TLS well
suited for the TLS DNSSEC Chain extension is DNS over TLS <xref target="RFC7858" format="default" sectionFormat="of" derivedContent="RFC7858"/>.
In fact, one of the authentication methods for DNS over TLS <em>is</em> the
mechanism described in this document, as specified in <xref target="RFC8310" section="8.2.2" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8310#section-8.2.2" derivedContent="RFC8310"/>.</t>
        <t indent="0" pn="section-1.1-2">The need for this mechanism when using DANE to authenticate a DNS-over-TLS
resolver is obvious, since DNS may not be available to perform the
required DNS lookups.  Other applications of TLS would benefit from
using this mechanism as well. The client sides of those applications
would not be required to be used on endpoints with a working DNSSEC
resolver in order for them to use the DANE authentication of the TLS
service. Therefore, we invite other TLS services to try out this
mechanism as well.</t>
        <t indent="0" pn="section-1.1-3">In the TLS Working Group, concerns have been raised that the pinning
technique as described in <xref target="pinning" format="default" sectionFormat="of" derivedContent="Section 7"/> would complicate deployability
of the TLS DNSSEC chain extension.  The goal of the experiment is to
study these complications in real-world deployments.  This experiment
hopefully will give the TLS Working Group some insight into whether
or not this is a problem.</t>
        <t indent="0" pn="section-1.1-4">If the experiment is successful, it is expected that the findings of
the experiment will result in an updated document for Standards Track
approval.</t>
      </section>
      <section anchor="requirements-notation" numbered="true" removeInRFC="false" toc="include" pn="section-1.2">
        <name slugifiedName="name-requirements-notation">Requirements Notation</name>
        <t indent="0" pn="section-1.2-1">
    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="dnssec-authentication-chain-extension" numbered="true" removeInRFC="false" toc="include" pn="section-2">
      <name slugifiedName="name-dnssec-authentication-chain">DNSSEC Authentication Chain Extension</name>
      <section anchor="protocol-tls-1-2" numbered="true" removeInRFC="false" toc="include" pn="section-2.1">
        <name slugifiedName="name-protocol-tls-12">Protocol, TLS 1.2</name>
        <t indent="0" pn="section-2.1-1">A client <bcp14>MAY</bcp14> include an extension of type <tt>dnssec_chain</tt> in the
(extended) ClientHello.  The <tt>extension_data</tt> field of this extension
consists of the server's 16-bit TCP port number in network
(big-endian) byte order. Clients sending this extension <bcp14>MUST</bcp14> also
send the Server Name Identification (SNI) extension <xref target="RFC6066" format="default" sectionFormat="of" derivedContent="RFC6066"/>.
Together, these make it possible for the TLS server to
determine which authenticated TLSA RRset chain needs to be used for
the <tt>dnssec_chain</tt> extension.</t>
        <t indent="0" pn="section-2.1-2">When a server that implements (and is configured to enable the use
of) this extension receives a <tt>dnssec_chain</tt> extension in the
ClientHello, it <bcp14>MUST</bcp14> first check whether the requested TLSA RRset
(based on the port number in this extension and hostname in the SNI
extension) is associated with the server.  If the extension, the SNI
hostname, or the port number is unsupported, the server's extended
ServerHello message <bcp14>MUST NOT</bcp14> include the <tt>dnssec_chain</tt> extension.</t>
        <t indent="0" pn="section-2.1-3">Otherwise, the server's extended ServerHello message <bcp14>MUST</bcp14> contain a
serialized authentication chain using the format described below. If
the server does not have access to the requested DNS chain -- for
example, due to a misconfiguration or expired chain -- the server <bcp14>MUST</bcp14>
omit the extension rather than send an incomplete chain. Clients that
are expecting this extension <bcp14>MUST</bcp14> interpret this as a downgrade
attack and <bcp14>MUST</bcp14> abort the TLS connection.  Therefore, servers <bcp14>MUST</bcp14> send
denial-of-existence proofs unless, for the particular application
protocol or service, clients are expected to continue even in the
absence of such a proof.  As with all TLS extensions, if the server
does not support this extension, it will not return any authentication
chain.</t>
        <t indent="0" pn="section-2.1-4">The set of supported combinations of a port number and SNI name may be
configured explicitly by server administrators or could be inferred
from the available certificates combined with a list of supported ports.
It is important to note that the client's notional port number may be
different from the actual port on which the server is receiving
connections.</t>
        <t indent="0" pn="section-2.1-5">Differences between the client's notional port number and the actual
port at the server could be a result of intermediate systems performing
network address translation or a result of a redirect via HTTPS
or SVCB records (both defined in <xref target="I-D.ietf-dnsop-svcb-https" format="default" sectionFormat="of" derivedContent="DNSOP-SVCB-HTTPS"/>).</t>
        <t indent="0" pn="section-2.1-6">Though a DNS zone's HTTPS or SVCB records may be signed, a client
using this protocol might not have direct access to a validating resolver
and might not be able to check the authenticity of the target port number
or hostname.  In order to avoid downgrade attacks via forged DNS
records, the SNI name and port number inside the client extension <bcp14>MUST</bcp14>
be based on the original SNI name and port and <bcp14>MUST NOT</bcp14> be taken from
the encountered HTTPS or SVCB record. 

The client supporting this document
and HTTPS or SVCB records <bcp14>MUST</bcp14> still use the HTTPS or SVCB records to
select the target transport endpoint. Servers supporting this extension
that are targets of HTTPS or SVCB records <bcp14>MUST</bcp14> be provisioned to process
client extensions based on the client's logical service endpoint's SNI
name and port as it is prior to HTTPS or SVCB indirection.</t>
      </section>
      <section anchor="protocol-tls-1-3" numbered="true" removeInRFC="false" toc="include" pn="section-2.2">
        <name slugifiedName="name-protocol-tls-13">Protocol, TLS 1.3</name>
        <t indent="0" pn="section-2.2-1">In TLS 1.3 <xref target="RFC8446" format="default" sectionFormat="of" derivedContent="RFC8446"/>, when the server receives the <tt>dnssec_chain</tt> extension,
it adds its <tt>dnssec_chain</tt> extension to the extension block of the Certificate
message containing the end-entity certificate being validated rather than to
the extended ServerHello message.</t>
        <t indent="0" pn="section-2.2-2">The extension protocol behavior otherwise follows that specified for
TLS version 1.2 <xref target="RFC5246" format="default" sectionFormat="of" derivedContent="RFC5246"/>.</t>
      </section>
      <section anchor="auth_chain_data" numbered="true" removeInRFC="false" toc="include" pn="section-2.3">
        <name slugifiedName="name-dnssec-authentication-chain-">DNSSEC Authentication Chain Data</name>
        <t indent="0" pn="section-2.3-1">The <tt>extension_data</tt> field of the client's <tt>dnssec_chain</tt> extension
<bcp14>MUST</bcp14> contain the server's 16-bit TCP port number in network
(big-endian) byte order:</t>
        <sourcecode markers="false" pn="section-2.3-2">    struct {
        uint16 PortNumber;
    } DnssecChainExtension;
</sourcecode>
        <t indent="0" pn="section-2.3-3">The <tt>extension_data</tt> field of the server's <tt>dnssec_chain</tt> extension
<bcp14>MUST</bcp14> contain a DNSSEC authentication chain encoded in the following
form:</t>
        <sourcecode markers="false" pn="section-2.3-4">    struct {
        uint16 ExtSupportLifetime;
        opaque AuthenticationChain&lt;1..2^16-1&gt;
    } DnssecChainExtension;
</sourcecode>
        <t indent="0" pn="section-2.3-5">The ExtSupportLifetime value is the number of hours that the TLS
server has committed itself to serving this extension. A value of
zero prohibits the client from unilaterally requiring ongoing use of
the extension based on prior observation of its use (extension
pinning).  This is further described in <xref target="pinning" format="default" sectionFormat="of" derivedContent="Section 7"/>.</t>
        <t indent="0" pn="section-2.3-6">The AuthenticationChain is composed of a sequence of uncompressed
wire format DNS RRs (including all requisite RRSIG RRs <xref target="RFC4034" format="default" sectionFormat="of" derivedContent="RFC4034"/>)
in no particular order.  The format of the resource record is
described in <xref target="RFC1035" sectionFormat="comma" section="3.2.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc1035#section-3.2.1" derivedContent="RFC1035"/>.</t>
        <artwork align="left" pn="section-2.3-7">    RR = { owner, type, class, TTL, RDATA length, RDATA }
</artwork>
        <t indent="0" pn="section-2.3-8">The order of returned RRs is unspecified, and a TLS client <bcp14>MUST NOT</bcp14>
assume any ordering of RRs.</t>
        <t indent="0" pn="section-2.3-9">Use of DNS wire format records enables easier generation of
the data structure on the server and easier verification of the data
on the client by means of existing DNS library functions.</t>
        <t indent="0" pn="section-2.3-10">The returned RRsets <bcp14>MUST</bcp14> contain either the TLSA RRset or the
associated denial-of-existence proof of the configured (and requested)
SNI name and port. In either case, the chain of RRsets <bcp14>MUST</bcp14> be accompanied
by the full set of DNS records needed to authenticate the TLSA record set
or its denial of existence up the DNS hierarchy to either the root zone
or another trust anchor mutually configured by the TLS server and client.</t>
        <t indent="0" pn="section-2.3-11">When some subtree in the chain is subject to redirection via DNAME
records, the associated inferred CNAME records need not be included.
They can be inferred by the DNS validation code in the client. Any
applicable ordinary CNAME records that are not synthesized from DNAME
records <bcp14>MUST</bcp14> be included along with their RRSIGs.</t>
        <t indent="0" pn="section-2.3-12">In case of a server-side DNS problem, servers may be unable to construct
the authentication chain and would then have no choice but to omit the
extension.</t>
        <t indent="0" pn="section-2.3-13">In the case of a denial-of-existence response, the authentication
chain <bcp14>MUST</bcp14> include all DNSSEC-signed records, starting with those from the trust anchor zone, that chain together to reach a proof of either:</t>
        <ul empty="false" bare="false" indent="3" spacing="normal" pn="section-2.3-14">
          <li pn="section-2.3-14.1">the nonexistence of the TLSA records (possibly redirected
via aliases) or</li>
          <li pn="section-2.3-14.2">an insecure delegation above or
at the (possibly redirected) owner name of the requested TLSA RRset.</li>
        </ul>
        <t indent="0" pn="section-2.3-15">Names that are aliased via CNAME and/or DNAME records may involve
multiple branches of the DNS tree. In this case, the authentication
chain structure needs to include DS and DNSKEY record sets that cover
all the necessary branches.</t>
        <t indent="0" pn="section-2.3-16">The returned chain <bcp14>SHOULD</bcp14> also include the DNSKEY RRsets of all relevant
trust anchors (typically just the root DNS zone).  Though the same trust
anchors are presumably also preconfigured in the TLS client, including
them in the response from the server permits TLS clients to use the
automated trust anchor rollover mechanism defined in <xref target="RFC5011" format="default" sectionFormat="of" derivedContent="RFC5011"/> to
update their configured trust anchors.</t>
        <t indent="0" pn="section-2.3-17">Barring prior knowledge of particular trust anchors that the server
shares with its clients, the chain constructed by the server <bcp14>MUST</bcp14> be
extended as closely as possible to the root zone.  Truncation of the chain
at some intermediate trust anchor is generally only appropriate inside
private networks where all clients and the server are expected to be
configured with DNS trust anchors for one or more non-root domains.</t>
        <t indent="0" pn="section-2.3-18">The following is an example of the records in the AuthenticationChain
structure for the HTTPS server at <tt>www.example.com</tt>, where there are
zone cuts at <tt>com</tt> and <tt>example.com</tt> (record data are omitted here
for brevity):</t>
        <sourcecode type="dns-rr" markers="false" pn="section-2.3-19">_443._tcp.www.example.com. TLSA
RRSIG(_443._tcp.www.example.com. TLSA)
example.com. DNSKEY
RRSIG(example.com. DNSKEY)
example.com. DS
RRSIG(example.com. DS)
com. DNSKEY
RRSIG(com. DNSKEY)
com. DS
RRSIG(com. DS)
. DNSKEY
RRSIG(. DNSKEY)
</sourcecode>
        <t indent="0" pn="section-2.3-20">The following is an example of denial of existence for a TLSA RRset
at <tt>_443._tcp.www.example.com</tt>. The NSEC record in this example
asserts the nonexistence of both the requested RRset and any
potentially relevant wildcard records.</t>
        <sourcecode type="dns-rr" markers="false" pn="section-2.3-21">www.example.com. IN NSEC example.com. A NSEC RRSIG
RRSIG(www.example.com. NSEC)
example.com. DNSKEY
RRSIG(example.com. DNSKEY)
example.com. DS
RRSIG(example.com. DS)
com. DNSKEY
RRSIG(com. DNSKEY)
com. DS
RRSIG(com. DS)
. DNSKEY
RRSIG(. DNSKEY)
</sourcecode>
        <t indent="0" pn="section-2.3-22">The following is an example of (hypothetical) insecure delegation of
<tt>example.com</tt> from the <tt>.com</tt> zone. This example shows NSEC3 records <xref target="RFC5155" format="default" sectionFormat="of" derivedContent="RFC5155"/>
with opt-out.</t>
        <sourcecode type="dns-rr" markers="false" pn="section-2.3-23">; covers example.com
onib9mgub9h0rml3cdf5bgrj59dkjhvj.com. NSEC3 (1 1 0 -
  onib9mgub9h0rml3cdf5bgrj59dkjhvl NS DS RRSIG)
RRSIG(onib9mgub9h0rml3cdf5bgrj59dkjhvj.com. NSEC3)
; covers *.com
3rl2r262eg0n1ap5olhae7mah2ah09hi.com. NSEC3 (1 1 0 -
  3rl2r262eg0n1ap5olhae7mah2ah09hk NS DS RRSIG)
RRSIG(3rl2r262eg0n1ap5olhae7mah2ah09hj.com. NSEC3)
; closest-encloser "com"
ck0pojmg874ljref7efn8430qvit8bsm.com. NSEC3 (1 1 0 -
  ck0pojmg874ljref7efn8430qvit8bsm.com
  NS SOA RRSIG DNSKEY NSEC3PARAM)
RRSIG(ck0pojmg874ljref7efn8430qvit8bsm.com. NSEC3)
com. DNSKEY
RRSIG(com. DNSKEY)
com. DS
RRSIG(com. DS)
. DNSKEY
RRSIG(. DNSKEY)
</sourcecode>
        <section anchor="denial_of_existence" numbered="true" removeInRFC="false" toc="include" pn="section-2.3.1">
          <name slugifiedName="name-authenticated-denial-of-exi">Authenticated Denial of Existence</name>
          <t indent="0" pn="section-2.3.1-1">TLS servers that support this extension and respond to a request
containing this extension that do not have a signed TLSA record for the
configured (and requested) SNI name and port <bcp14>MUST</bcp14> instead return a DNSSEC
chain that provides authenticated denial of existence for the configured
SNI name and port. A TLS client receiving proof of authenticated denial
of existence <bcp14>MUST</bcp14> use an alternative method to verify the TLS server
identity or close the connection. Such an alternative could be the
classic PKIX model of preinstalled root certificate authorities (CAs).</t>
          <t indent="0" pn="section-2.3.1-2">Authenticated denial chains include NSEC or NSEC3 records that
demonstrate one of the following facts:</t>
          <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-2.3.1-3">
            <li pn="section-2.3.1-3.1">
              <t indent="0" pn="section-2.3.1-3.1.1">The TLSA record (after any DNSSEC-validated alias redirection)
does not exist.</t>
            </li>
            <li pn="section-2.3.1-3.2">
              <t indent="0" pn="section-2.3.1-3.2.1">There is no signed delegation to a DNS zone that is either an
ancestor of or the same as the TLSA record name (after any
DNSSEC-validated alias redirection).</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="construction" numbered="true" removeInRFC="false" toc="include" pn="section-3">
      <name slugifiedName="name-construction-of-serialized-">Construction of Serialized Authentication Chains</name>
      <t indent="0" pn="section-3-1">This section describes a possible procedure for the server to use to
build the serialized DNSSEC chain.</t>
      <t indent="0" pn="section-3-2">When the goal is to perform DANE authentication <xref target="RFC6698" format="default" sectionFormat="of" derivedContent="RFC6698"/> <xref target="RFC7671" format="default" sectionFormat="of" derivedContent="RFC7671"/>
of the server, the DNS record set to be serialized is a TLSA record
set corresponding to the server's domain name, protocol, and port
number.</t>
      <t indent="0" pn="section-3-3">The domain name of the server <bcp14>MUST</bcp14> be that included in the TLS
<tt>server_name</tt> (SNI) extension <xref target="RFC6066" format="default" sectionFormat="of" derivedContent="RFC6066"/>. If the server
does not recognize the SNI name as one of its own names but wishes
to proceed with the handshake rather than abort the connection,
the server <bcp14>MUST NOT</bcp14> send a <tt>dnssec_chain</tt> extension to the client.</t>
      <t indent="0" pn="section-3-4">The name in the client's SNI extension <bcp14>MUST NOT</bcp14> be CNAME expanded by the
server. The TLSA base domain (<xref target="RFC6698" sectionFormat="of" section="3" format="default" derivedLink="https://rfc-editor.org/rfc/rfc6698#section-3" derivedContent="RFC6698"/>) <bcp14>SHALL</bcp14> be the
hostname from the client's SNI extension, and the guidance in <xref target="RFC7671" sectionFormat="of" section="7" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7671#section-7" derivedContent="RFC7671"/> does not apply.  See <xref target="virtual" format="default" sectionFormat="of" derivedContent="Section 9"/> for further
discussion.</t>
      <t indent="0" pn="section-3-5">The TLSA record to be queried is constructed by prepending
underscore-prefixed port number and transport name labels to the domain
name as described in <xref target="RFC6698" format="default" sectionFormat="of" derivedContent="RFC6698"/>.  The port number is taken from the
client's <tt>dnssec_chain</tt> extension.  The transport name is "tcp" for TLS
servers and "udp" for DTLS servers.  The port number label is the
leftmost label, followed by the transport name label, followed by the
server domain name (from SNI).</t>
      <t indent="0" pn="section-3-6">The components of the authentication chain are typically built by
starting at the target record set and its corresponding RRSIG, then
traversing the DNS tree upwards towards the trust anchor zone
(normally the DNS root). For each zone cut, the DNSKEY, DS RRsets,
and their signatures are added. However, see <xref target="auth_chain_data" format="default" sectionFormat="of" derivedContent="Section 2.3"/> for
specific processing needed for aliases. If DNS response messages
contain any domain names utilizing name compression <xref target="RFC1035" format="default" sectionFormat="of" derivedContent="RFC1035"/>, then
they <bcp14>MUST</bcp14> be uncompressed prior to inclusion in the chain.</t>
      <t indent="0" pn="section-3-7">Implementations of EDNS CHAIN query requests as specified in
<xref target="RFC7901" format="default" sectionFormat="of" derivedContent="RFC7901"/> may offer an easier way to obtain all of the chain data
in one transaction with an upstream DNSSEC-aware recursive server.</t>
    </section>
    <section anchor="sec_caching" numbered="true" removeInRFC="false" toc="include" pn="section-4">
      <name slugifiedName="name-caching-and-regeneration-of">Caching and Regeneration of the Authentication Chain</name>
      <t indent="0" pn="section-4-1">DNS records have Time To Live (TTL) parameters, and DNSSEC signatures
have validity periods (specifically signature expiration times).
After the TLS server constructs the serialized authentication chain,
it <bcp14>SHOULD</bcp14> cache and reuse it in multiple TLS connection handshakes.
However, it <bcp14>SHOULD</bcp14> refresh and rebuild the chain as TTL values require.
A server implementation could carefully track TTL parameters and requery
component records in the chain correspondingly. Alternatively, it could
be configured to rebuild the entire chain at some predefined periodic
interval that does not exceed the DNS TTLs of the component records in
the chain. If a record in the chain has a very short TTL (e.g., 0 up to a
few seconds), the server <bcp14>MAY</bcp14> decide to serve the authentication chain a
few seconds past the minimum TTL in the chain.  This allows an
implementation to dedicate a process or single thread to building the
authentication chain and reuse it for more than a single
waiting TLS client before needing to rebuild the authentication chain.</t>
    </section>
    <section anchor="sec_caching_exp" numbered="true" removeInRFC="false" toc="include" pn="section-5">
      <name slugifiedName="name-expired-signatures-in-the-a">Expired Signatures in the Authentication Chain</name>
      <t indent="0" pn="section-5-1">A server <bcp14>MAY</bcp14> look at the signature expiration of RRSIG records. While
these should never expire before the TTL of the corresponding DNS record
is reached, if this situation is nevertheless encountered, the server
<bcp14>MAY</bcp14> lower the TTL to prevent serving expired RRSIGs if possible. If the
signatures are already expired, the server <bcp14>MUST</bcp14> still include these records
in the authentication chain. 

This allows the TLS client to either support a grace period for staleness or give a detailed error, either as a log
   message or a message to a potential interactive user of the TLS connection. The TLS client <bcp14>SHOULD</bcp14> handle expired RRSIGs similarly to how it
handles expired PKIX certificates.</t>
    </section>
    <section anchor="sec_verification" numbered="true" removeInRFC="false" toc="include" pn="section-6">
      <name slugifiedName="name-verification">Verification</name>
      <t indent="0" pn="section-6-1">A TLS client performing DANE-based verification might not need to use
this extension.  For example, the TLS client could perform DNS
lookups and DANE verification without this extension, or it
could fetch authentication chains via another protocol. 

If the TLS
client already possesses a valid TLSA record, it <bcp14>MAY</bcp14> bypass use of this
extension. However, if it includes this extension, it <bcp14>MUST</bcp14> use the
TLS server reply to update the extension pinning status of the TLS
server's extension lifetime. See <xref target="pinning" format="default" sectionFormat="of" derivedContent="Section 7"/>.</t>
      <t indent="0" pn="section-6-2">A TLS client making use of this specification that receives a
valid DNSSEC authentication chain extension from a TLS server <bcp14>MUST</bcp14> use
this information to perform DANE authentication of the TLS server.  In
order to perform the validation, it uses the mechanism specified by
the DNSSEC protocol <xref target="RFC4035" format="default" sectionFormat="of" derivedContent="RFC4035"/> <xref target="RFC5155" format="default" sectionFormat="of" derivedContent="RFC5155"/>.  This mechanism is
sometimes implemented in a DNSSEC validation engine or library.</t>
      <t indent="0" pn="section-6-3">If the authentication chain validates, the TLS client then performs DANE
authentication of the server according to the DANE TLS protocol
<xref target="RFC6698" format="default" sectionFormat="of" derivedContent="RFC6698"/> <xref target="RFC7671" format="default" sectionFormat="of" derivedContent="RFC7671"/>.</t>
      <t indent="0" pn="section-6-4">Clients <bcp14>MAY</bcp14> cache the server's validated TLSA RRset to amortize the
cost of receiving and validating the chain over multiple connections.
The period of such caching <bcp14>MUST NOT</bcp14> exceed the TTL associated with
those records. A client that possesses a validated and unexpired TLSA
RRset or the full chain in its cache does not need to send the
<tt>dnssec_chain</tt> extension for subsequent connections to the same TLS
server. It can use the cached information to perform DANE
authentication.</t>
      <t indent="0" pn="section-6-5">Note that when a client and server perform TLS session resumption, the
server sends no <tt>dnssec_chain</tt>. This is particularly clear with TLS
1.3, where the certificate message to which the chain might be
attached is also not sent on resumption.</t>
    </section>
    <section anchor="pinning" numbered="true" removeInRFC="false" toc="include" pn="section-7">
      <name slugifiedName="name-extension-pinning">Extension Pinning</name>
      <t indent="0" pn="section-7-1">TLS applications can be designed to unconditionally mandate this
extension. Such TLS clients requesting this extension would abort a
connection to a TLS server that does not respond with an
extension reply that can be validated.</t>
      <t indent="0" pn="section-7-2">However, in a mixed-use deployment of PKIX and DANE, there is the
possibility that the security of a TLS client is downgraded from DANE
to PKIX. This can happen when a TLS client connection is
intercepted and redirected to a rogue TLS server presenting a TLS
certificate that is considered valid from a PKIX point of view but
does not match the legitimate server's TLSA records. By
omitting this extension, such a rogue TLS server could downgrade the
TLS client to validate the mis-issued certificate using only PKIX
and not via DANE, provided the TLS client is also not able to
fetch the TLSA records directly from DNS.</t>
      <t indent="0" pn="section-7-3">The ExtSupportLifetime element of the extension provides a
countermeasure against such downgrade attacks. Its value represents
the number of hours that the TLS server (or cluster of servers
serving the same server name) commits to serving this extension in the
future.  This is referred to as the "pinning time" or "extension pin"
of the extension.  A non-zero extension pin value received <bcp14>MUST</bcp14> ONLY
be used if the extension also contains a valid TLSA authentication
chain that matches the server's certificate chain (the server passes
DANE authentication based on the enclosed TLSA RRset).</t>
      <t indent="0" pn="section-7-4">Any existing extension pin for the server instance (name and port)
<bcp14>MUST</bcp14> be cleared on receipt of a valid denial of existence for the
associated TLSA RRset. The same also applies if the client obtained
the denial-of-existence proof via another method, such as through
direct DNS queries.  Based on the TLS client's local policy, it <bcp14>MAY</bcp14>
then terminate the connection or <bcp14>MAY</bcp14> continue using PKIX-based
server authentication.</t>
      <t indent="0" pn="section-7-5">Extension pins <bcp14>MUST</bcp14> also be cleared upon the completion of a DANE-authenticated handshake with a server that returns a <tt>dnssec_chain</tt>
extension with a zero ExtSupportLifetime.</t>
      <t indent="0" pn="section-7-6">Upon completion of a fully validated handshake with a server that
returns a <tt>dnssec_chain</tt> extension with a non-zero ExtSupport lifetime,
the client <bcp14>MUST</bcp14> update any existing pin lifetime for the service
(name and port) to a value that is not longer than that indicated by
the server. The client <bcp14>MAY</bcp14>, subject to local policy, create a
previously nonexistent pin, again for a lifetime that is not longer
than that indicated by the server.</t>
      <t indent="0" pn="section-7-7">The extension support lifetime is not constrained by any DNS TTLs or
RRSIG expirations in the returned chain.  The extension support lifetime
is the time for which the TLS server is committing itself to serve the
extension; it is not a validity time for the returned chain data.
During this period, the DNSSEC chain may be updated.  Therefore, the
ExtSupportLifetime value is not constrained by any DNS TTLs or RRSIG
expirations in the returned chain.</t>
      <t indent="0" pn="section-7-8">Clients <bcp14>MAY</bcp14> implement support for a subset of DANE certificate
usages.  For example, clients may support only DANE-EE(3) and
DANE-TA(2) <xref target="RFC7218" format="default" sectionFormat="of" derivedContent="RFC7218"/>, only PKIX-EE(1) and PKIX-TA(0),
or all four.  Clients that implement DANE-EE(3) and DANE-TA(2) <bcp14>MUST</bcp14>
implement the relevant updates in <xref target="RFC7671" format="default" sectionFormat="of" derivedContent="RFC7671"/>.</t>
      <t indent="0" pn="section-7-9">For a non-zero saved value ("pin") of the ExtSupportLifetime element of the
extension, TLS clients that do not have a cached TLSA RRset with an
unexpired TTL <bcp14>MUST</bcp14> use the extension for the associated name and
port to obtain this information from the TLS server. 

This TLS client
then <bcp14>MUST</bcp14> require that the TLS server respond with this extension,
which <bcp14>MUST</bcp14> contain a valid TLSA RRset or proof of nonexistence of the
TLSA RRset that covers the requested name and port. Note that a nonexistence
proof or proof of insecure delegation will clear the pin. The TLS client <bcp14>MUST</bcp14>
require this for as long as the time period specified by the pin value,
independent of the DNS TTLs. During this process, if the TLS client fails
to receive this information, it <bcp14>MUST</bcp14> either abort the connection or delay
communication with the server via the TLS connection until it is able
to obtain valid TLSA records (or proof of nonexistence) out of band,
such as via direct DNS lookups.  If attempts to obtain the TLSA RRset
out of band fail, the client <bcp14>MUST</bcp14> abort the TLS connection. It <bcp14>MAY</bcp14> try
a new TLS connection again (for example, using an exponential back-off
timer) in an attempt to reach a different TLS server instance that does
properly serve the extension.</t>
      <t indent="0" pn="section-7-10">A TLS client that has a cached validated TLSA RRset and a valid non-zero extension
pin time <bcp14>MAY</bcp14> still refrain from requesting the extension as long as it
uses the cached TLSA RRset to authenticate the TLS server. This RRset
<bcp14>MUST NOT</bcp14> be used beyond its received TTL. Once the TLSA RRset's
TTL has expired, the TLS client with a valid non-zero extension pin
time <bcp14>MUST</bcp14> request the extension and <bcp14>MUST</bcp14> abort the TLS connection if
the server responds without the extension. A TLS client <bcp14>MAY</bcp14> attempt
to obtain the valid TLSA RRset by some other means before
initiating a new TLS connection.</t>
      <t indent="0" pn="section-7-11">Note that requiring the extension is NOT the same as requiring the
use of DANE TLSA records or even DNSSEC. A DNS zone operator may at
any time delete the TLSA records or even remove the DS records to
disable the secure delegation of the server's DNS zone. The TLS
server will replace the chain with the corresponding denial-of-existence chain when it updates its cached TLSA authentication chain.
The server's only obligation is continued support for this extension.</t>
    </section>
    <section anchor="sec_trustmaint" numbered="true" removeInRFC="false" toc="include" pn="section-8">
      <name slugifiedName="name-trust-anchor-maintenance">Trust Anchor Maintenance</name>
      <t indent="0" pn="section-8-1">The trust anchor may change periodically, e.g., when the operator of
the trust anchor zone performs a DNSSEC key rollover. TLS clients
using this specification <bcp14>MUST</bcp14> implement a mechanism to keep their
trust anchors up to date. They could use the method defined in
<xref target="RFC5011" format="default" sectionFormat="of" derivedContent="RFC5011"/> to perform trust anchor updates in-band in TLS by tracking
the introduction of new keys seen in the trust anchor DNSKEY RRset.
However, alternative mechanisms external to TLS may also be utilized.
Some operating systems may have a system-wide service to maintain and
keep the root trust anchor up to date. In such cases, the TLS client
application could simply reference that as its trust anchor,
periodically checking whether it has changed. Some applications may
prefer to implement trust anchor updates as part of their automated
software updates.</t>
    </section>
    <section anchor="virtual" numbered="true" removeInRFC="false" toc="include" pn="section-9">
      <name slugifiedName="name-virtual-hosting">Virtual Hosting</name>
      <t indent="0" pn="section-9-1">Delivery of application services is often provided by a third party
on behalf of the domain owner (hosting customer). Since the domain
owner may want to be able to move the service between providers,
non-zero support lifetimes for this extension should only be enabled
by mutual agreement between the provider and domain owner.</t>
      <t indent="0" pn="section-9-2">When CNAME records are employed to redirect network connections to
the provider's network, as mentioned in <xref target="construction" format="default" sectionFormat="of" derivedContent="Section 3"/>, the server
uses the client's SNI hostname as the TLSA base domain without CNAME
expansion. When the certificate chain for the service is managed by
the provider, it is impractical to coordinate certificate changes by
the provider with updates in the hosting customer's DNS. Therefore,
the TLSA RRset for the hosted domain is best configured as a CNAME
from the customer's domain to a TLSA RRset that is managed by the
provider as part of delivering the hosted service.  For example:</t>
      <sourcecode type="dns-rr" markers="false" pn="section-9-3">; Customer DNS
www.example.com. IN CNAME node1.provider.example.
_443._tcp.www.example.com. IN CNAME _dane443.node1.provider.example.
; Provider DNS
node1.provider.example. IN A 192.0.2.1
_dane443.node1.provider.example. IN TLSA 1 1 1 ...
</sourcecode>
      <t indent="0" pn="section-9-4">Clients that obtain TLSA records directly from DNS, bypassing this
extension, may perform CNAME expansion as in <xref target="RFC7671" sectionFormat="of" section="7" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7671#section-7" derivedContent="RFC7671"/>. If TLSA records are associated with the
fully expanded name, that name may be used as the TLSA base domain and
SNI name for the TLS handshake.</t>
      <t indent="0" pn="section-9-5">To avoid confusion, it is <bcp14>RECOMMENDED</bcp14> that server operators not
publish TLSA RRs (_port._tcp. + base domain) based on the expanded
CNAMEs used to locate their network addresses.  Instead, the server
operator <bcp14>SHOULD</bcp14> publish TLSA RRs at an alternative DNS node (as in
the example above), to which the hosting customer will publish a
CNAME alias.  This results in all clients (whether they obtain TLSA
records from DNS directly or employ this extension) seeing the same
TLSA records and sending the same SNI name.</t>
    </section>
    <section anchor="operational-considerations" numbered="true" removeInRFC="false" toc="include" pn="section-10">
      <name slugifiedName="name-operational-considerations">Operational Considerations</name>
      <t indent="0" pn="section-10-1">When DANE is being introduced incrementally into an existing PKIX
environment, there may be scenarios in which DANE authentication for
a server fails but PKIX succeeds, or vice versa.  What happens here
depends on TLS client policy. If DANE authentication fails, the
client may decide to fall back to regular PKIX authentication. In
order to do so efficiently within the same TLS handshake, the TLS
server needs to have provided the full X.509 certificate chain. When
TLS servers only support DANE-EE or DANE-TA modes, they have the
option to send a much smaller certificate chain: just the EE
certificate for the former and a short certificate chain from the
DANE trust anchor to the EE certificate for the latter. If the TLS
server supports both DANE and regular PKIX and wants to allow
efficient PKIX fallback within the same handshake, they should always
provide the full X.509 certificate chain.</t>
      <t indent="0" pn="section-10-2">When a TLS server operator wishes to no longer deploy this extension,
it must properly decommission its use. If a non-zero pin lifetime is
presently advertised, it must first be changed to 0.  The extension
can be disabled once all previously advertised pin lifetimes have
expired.  Removal of TLSA records or even DNSSEC signing of the zone
can be done at any time, but the server <bcp14>MUST</bcp14> still be able to return
the associated denial-of-existence proofs to any clients that have
unexpired pins.</t>
      <t indent="0" pn="section-10-3">TLS clients <bcp14>MAY</bcp14> reduce the received extension pin value to a maximum
set by local policy.  This can mitigate a theoretical yet unlikely
attack where a compromised TLS server is modified to advertise a pin
value set to the maximum of 7 years. Care should be taken not to set
a local maximum that is too short as that would reduce the downgrade
attack protection that the extension pin offers.</t>
      <t indent="0" pn="section-10-4">If the hosting provider intends to use end-entity TLSA records
(certificate usage PKIX-EE(1) or DANE-EE(3)), then the simplest
approach is to use the same key pair for all the certificates at a
given hosting node and publish "1 1 1" or "3 1 1" RRs matching the
common public key.  Since key rollover cannot be simultaneous across
multiple certificate updates, there will be times when multiple "1 1
1" (or "3 1 1") records will be required to match all the extant
certificates.  Multiple TLSA records are, in any case, needed a few
TTLs before certificate updates as explained in <xref target="RFC7671" sectionFormat="of" section="8" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7671#section-8" derivedContent="RFC7671"/>.</t>
      <t indent="0" pn="section-10-5">If the hosting provider intends to use trust anchor TLSA records
(certificate usage PKIX-TA(0) or DANE-TA(2)), then the same TLSA
record can match all end-entity certificates issues by the
certification authority in question and continues to work across
end-entity certificate updates so long as the issuer certificate or
public keys remain unchanged. This can be easier to implement at
the cost of greater reliance on the security of the selected
certification authority.</t>
      <t indent="0" pn="section-10-6">The provider can, of course, publish separate TLSA records for each
customer, which increases the number of such RRsets that need to be
managed but makes each one independent of the rest.</t>
    </section>
    <section anchor="security-considerations" numbered="true" removeInRFC="false" toc="include" pn="section-11">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-11-1">The security considerations of the normatively referenced RFCs all
pertain to this extension. Since the server is delivering a chain of
DNS records and signatures to the client, it <bcp14>MUST</bcp14> rebuild the chain in
accordance with TTL and signature expiration of the chain components
as described in <xref target="sec_caching" format="default" sectionFormat="of" derivedContent="Section 4"/>.  TLS clients need roughly accurate
time in order to properly authenticate these signatures. This could be
achieved by running a time synchronization protocol like NTP <xref target="RFC5905" format="default" sectionFormat="of" derivedContent="RFC5905"/>
or SNTP <xref target="RFC5905" format="default" sectionFormat="of" derivedContent="RFC5905"/>, which are already widely used today. TLS clients
<bcp14>MUST</bcp14> support a mechanism to track and roll over the trust anchor key
or be able to avail themselves of a service that does this, as described
in <xref target="sec_trustmaint" format="default" sectionFormat="of" derivedContent="Section 8"/>.  Security considerations related to mandating the
use of this extension are described in <xref target="pinning" format="default" sectionFormat="of" derivedContent="Section 7"/>.</t>
      <t indent="0" pn="section-11-2">The received DNSSEC chain could contain DNS RRs that are not related
to the TLSA verification of the intended DNS name. If such an unrelated
RR is not DNSSEC signed, it <bcp14>MUST</bcp14> be discarded. If the unrelated RRset
is DNSSEC signed, the TLS client <bcp14>MAY</bcp14> decide to add these RRsets and
their DNSSEC signatures to its cache. It <bcp14>MAY</bcp14> even pass this data to the
local system resolver for caching outside the application. 

However, care
must be taken because caching these records could be used for timing and
caching attacks to de-anonymize the TLS client or its user. A TLS client
that wants to present the strongest anonymity protection to their users
<bcp14>MUST</bcp14> refrain from using and caching all unrelated RRs.</t>
    </section>
    <section anchor="iana_requests" numbered="true" removeInRFC="false" toc="include" pn="section-12">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t indent="0" pn="section-12-1">IANA has made the following assignment in the "TLS ExtensionType Values"
registry:</t>
      <table align="center" pn="table-1">
        <thead>
          <tr>
            <th align="right" colspan="1" rowspan="1">Value</th>
            <th align="left" colspan="1" rowspan="1">Extension Name</th>
            <th align="left" colspan="1" rowspan="1">TLS 1.3</th>
            <th align="left" colspan="1" rowspan="1">Recommended</th>
            <th align="left" colspan="1" rowspan="1">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="right" colspan="1" rowspan="1">59</td>
            <td align="left" colspan="1" rowspan="1">dnssec_chain</td>
            <td align="left" colspan="1" rowspan="1">CH</td>
            <td align="left" colspan="1" rowspan="1">No</td>
            <td align="left" colspan="1" rowspan="1">RFC 9102</td>
          </tr>
        </tbody>
      </table>
    </section>
  </middle>
  <back>
    <displayreference target="I-D.agl-dane-serializechain" to="SERIALIZECHAIN"/>
    <displayreference target="I-D.barnes-dane-uks" to="DANE-UKS"/>
    <displayreference target="I-D.ietf-dnsop-svcb-https" to="DNSOP-SVCB-HTTPS"/>
    <references pn="section-13">
      <name slugifiedName="name-references">References</name>
      <references pn="section-13.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="RFC1035" target="https://www.rfc-editor.org/info/rfc1035" quoteTitle="true" derivedAnchor="RFC1035">
          <front>
            <title>Domain names - implementation and specification</title>
            <author initials="P.V." surname="Mockapetris" fullname="P.V. Mockapetris">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="1987" month="November"/>
            <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 initials="S." surname="Bradner" fullname="S. Bradner">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="1997" month="March"/>
            <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 initials="R." surname="Arends" fullname="R. Arends">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Austein" fullname="R. Austein">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Larson" fullname="M. Larson">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Massey" fullname="D. Massey">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Rose" fullname="S. Rose">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2005" month="March"/>
            <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 initials="R." surname="Arends" fullname="R. Arends">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Austein" fullname="R. Austein">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Larson" fullname="M. Larson">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Massey" fullname="D. Massey">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Rose" fullname="S. Rose">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2005" month="March"/>
            <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="RFC4035" target="https://www.rfc-editor.org/info/rfc4035" quoteTitle="true" derivedAnchor="RFC4035">
          <front>
            <title>Protocol Modifications for the DNS Security Extensions</title>
            <author initials="R." surname="Arends" fullname="R. Arends">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Austein" fullname="R. Austein">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Larson" fullname="M. Larson">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Massey" fullname="D. Massey">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Rose" fullname="S. Rose">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2005" month="March"/>
            <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 new resource records and protocol modifications that add data origin authentication and data integrity to the DNS.  This document describes the DNSSEC protocol modifications.  This document defines the concept of a signed zone, along with the requirements for serving and resolving by using DNSSEC.  These techniques allow a security-aware resolver to authenticate both DNS resource records and authoritative DNS error indications. </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="4035"/>
          <seriesInfo name="DOI" value="10.17487/RFC4035"/>
        </reference>
        <reference anchor="RFC5155" target="https://www.rfc-editor.org/info/rfc5155" quoteTitle="true" derivedAnchor="RFC5155">
          <front>
            <title>DNS Security (DNSSEC) Hashed Authenticated Denial of Existence</title>
            <author initials="B." surname="Laurie" fullname="B. Laurie">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="G." surname="Sisson" fullname="G. Sisson">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Arends" fullname="R. Arends">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Blacka" fullname="D. Blacka">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2008" month="March"/>
            <abstract>
              <t indent="0">The Domain Name System Security (DNSSEC) Extensions introduced the NSEC resource record (RR) for authenticated denial of existence. This document introduces an alternative resource record, NSEC3, which similarly provides authenticated denial of existence.  However, it also provides measures against zone enumeration and permits gradual expansion of delegation-centric zones.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5155"/>
          <seriesInfo name="DOI" value="10.17487/RFC5155"/>
        </reference>
        <reference anchor="RFC5246" target="https://www.rfc-editor.org/info/rfc5246" quoteTitle="true" derivedAnchor="RFC5246">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.2</title>
            <author initials="T." surname="Dierks" fullname="T. Dierks">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="E." surname="Rescorla" fullname="E. Rescorla">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2008" month="August"/>
            <abstract>
              <t indent="0">This document specifies Version 1.2 of the Transport Layer Security (TLS) protocol.  The TLS protocol provides communications security over the Internet.  The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5246"/>
          <seriesInfo name="DOI" value="10.17487/RFC5246"/>
        </reference>
        <reference anchor="RFC6066" target="https://www.rfc-editor.org/info/rfc6066" quoteTitle="true" derivedAnchor="RFC6066">
          <front>
            <title>Transport Layer Security (TLS) Extensions: Extension Definitions</title>
            <author initials="D." surname="Eastlake 3rd" fullname="D. Eastlake 3rd">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2011" month="January"/>
            <abstract>
              <t indent="0">This document provides specifications for existing TLS extensions.  It is a companion document for RFC 5246, "The Transport Layer Security (TLS) Protocol Version 1.2".  The extensions specified are server_name, max_fragment_length, client_certificate_url, trusted_ca_keys, truncated_hmac, and status_request.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6066"/>
          <seriesInfo name="DOI" value="10.17487/RFC6066"/>
        </reference>
        <reference anchor="RFC6698" target="https://www.rfc-editor.org/info/rfc6698" quoteTitle="true" derivedAnchor="RFC6698">
          <front>
            <title>The DNS-Based Authentication of Named Entities (DANE) Transport Layer Security (TLS) Protocol: TLSA</title>
            <author initials="P." surname="Hoffman" fullname="P. Hoffman">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Schlyter" fullname="J. Schlyter">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2012" month="August"/>
            <abstract>
              <t indent="0">Encrypted communication on the Internet often uses Transport Layer Security (TLS), which depends on third parties to certify the keys used.  This document improves on that situation by enabling the administrators of domain names to specify the keys used in that domain's TLS servers.  This requires matching improvements in TLS client software, but no change in TLS server software.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6698"/>
          <seriesInfo name="DOI" value="10.17487/RFC6698"/>
        </reference>
        <reference anchor="RFC7218" target="https://www.rfc-editor.org/info/rfc7218" quoteTitle="true" derivedAnchor="RFC7218">
          <front>
            <title>Adding Acronyms to Simplify Conversations about DNS-Based Authentication of Named Entities (DANE)</title>
            <author initials="O." surname="Gudmundsson" fullname="O. Gudmundsson">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2014" month="April"/>
            <abstract>
              <t indent="0">Experience has shown that people get confused when discussing the three numeric fields of the TLSA record.  This document specifies descriptive acronyms for the three numeric fields in TLSA records.  This document updates the format of the IANA registry created by RFC 6698.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7218"/>
          <seriesInfo name="DOI" value="10.17487/RFC7218"/>
        </reference>
        <reference anchor="RFC7671" target="https://www.rfc-editor.org/info/rfc7671" quoteTitle="true" derivedAnchor="RFC7671">
          <front>
            <title>The DNS-Based Authentication of Named Entities (DANE) Protocol: Updates and Operational Guidance</title>
            <author initials="V." surname="Dukhovni" fullname="V. Dukhovni">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="W." surname="Hardaker" fullname="W. Hardaker">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2015" month="October"/>
            <abstract>
              <t indent="0">This document clarifies and updates the DNS-Based Authentication of Named Entities (DANE) TLSA specification (RFC 6698), based on subsequent implementation experience.  It also contains guidance for implementers, operators, and protocol developers who want to use DANE records.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7671"/>
          <seriesInfo name="DOI" value="10.17487/RFC7671"/>
        </reference>
        <reference anchor="RFC7858" target="https://www.rfc-editor.org/info/rfc7858" quoteTitle="true" derivedAnchor="RFC7858">
          <front>
            <title>Specification for DNS over Transport Layer Security (TLS)</title>
            <author initials="Z." surname="Hu" fullname="Z. Hu">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="L." surname="Zhu" fullname="L. Zhu">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Heidemann" fullname="J. Heidemann">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Mankin" fullname="A. Mankin">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Wessels" fullname="D. Wessels">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="P." surname="Hoffman" fullname="P. Hoffman">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2016" month="May"/>
            <abstract>
              <t indent="0">This document describes the use of Transport Layer Security (TLS) to provide privacy for DNS.  Encryption provided by TLS eliminates opportunities for eavesdropping and on-path tampering with DNS queries in the network, such as discussed in RFC 7626.  In addition, this document specifies two usage profiles for DNS over TLS and provides advice on performance considerations to minimize overhead from using TCP and TLS with DNS.</t>
              <t indent="0">This document focuses on securing stub-to-recursive traffic, as per the charter of the DPRIVE Working Group.  It does not prevent future applications of the protocol to recursive-to-authoritative traffic.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7858"/>
          <seriesInfo name="DOI" value="10.17487/RFC7858"/>
        </reference>
        <reference anchor="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 initials="B." surname="Leiba" fullname="B. Leiba">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2017" month="May"/>
            <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="RFC8310" target="https://www.rfc-editor.org/info/rfc8310" quoteTitle="true" derivedAnchor="RFC8310">
          <front>
            <title>Usage Profiles for DNS over TLS and DNS over DTLS</title>
            <author initials="S." surname="Dickinson" fullname="S. Dickinson">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Gillmor" fullname="D. Gillmor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="T." surname="Reddy" fullname="T. Reddy">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2018" month="March"/>
            <abstract>
              <t indent="0">This document discusses usage profiles, based on one or more authentication mechanisms, which can be used for DNS over Transport Layer Security (TLS) or Datagram TLS (DTLS).  These profiles can increase the privacy of DNS transactions compared to using only cleartext DNS.  This document also specifies new authentication mechanisms -- it describes several ways that a DNS client can use an authentication domain name to authenticate a (D)TLS connection to a DNS server.  Additionally, it defines (D)TLS protocol profiles for DNS clients and servers implementing DNS over (D)TLS.  This document updates RFC 7858.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8310"/>
          <seriesInfo name="DOI" value="10.17487/RFC8310"/>
        </reference>
        <reference anchor="RFC8446" target="https://www.rfc-editor.org/info/rfc8446" quoteTitle="true" derivedAnchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author initials="E." surname="Rescorla" fullname="E. Rescorla">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2018" month="August"/>
            <abstract>
              <t indent="0">This document specifies version 1.3 of the Transport Layer Security (TLS) protocol.  TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t indent="0">This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961.  This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
      </references>
      <references pn="section-13.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="I-D.barnes-dane-uks" quoteTitle="true" target="https://datatracker.ietf.org/doc/html/draft-barnes-dane-uks-00" derivedAnchor="DANE-UKS">
          <front>
            <title>Unknown Key-Share Attacks on DNS-Based Authentications of Named Entities (DANE)</title>
            <author initials="R" surname="Barnes" fullname="Richard Barnes">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M" surname="Thomson" fullname="Martin Thomson">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="E" surname="Rescorla" fullname="Eric Rescorla">
              <organization showOnFrontPage="true"/>
            </author>
            <date month="October" day="9" year="2016"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-barnes-dane-uks-00"/>
          <format type="TXT" target="http://www.ietf.org/internet-drafts/draft-barnes-dane-uks-00.txt"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="DISCOVERY" target="https://www.nlnetlabs.nl/downloads/publications/os3-2015-rp2-xavier-torrent-gorjon.pdf" quoteTitle="true" derivedAnchor="DISCOVERY">
          <front>
            <title>Discovery method for a DNSSEC validating stub resolver</title>
            <author fullname="Xavier Torrent Gorjon" initials="X." surname="Gorjon"/>
            <author fullname="Willem Toorop" initials="W." surname="Toorop"/>
            <date year="2015" month="July" day="14"/>
          </front>
        </reference>
        <reference anchor="I-D.ietf-dnsop-svcb-https" quoteTitle="true" target="https://datatracker.ietf.org/doc/html/draft-ietf-dnsop-svcb-https-07" derivedAnchor="DNSOP-SVCB-HTTPS">
          <front>
            <title>Service Binding and Parameter Specification via the DNS (DNS SVCB and HTTPS RRs)</title>
            <author initials="B" surname="Schwartz" fullname="Benjamin Schwartz">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M" surname="Bishop" fullname="Mike Bishop">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="E" surname="Nygren" fullname="Erik Nygren">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2021" month="June" day="16"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-dnsop-svcb-https-07"/>
          <format type="TXT" target="https://www.ietf.org/internet-drafts/draft-ietf-dnsop-svcb-https-07.txt"/>
          <refcontent>Work in Progress</refcontent>
        </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 initials="M." surname="StJohns" fullname="M. StJohns">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2007" month="September"/>
            <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="RFC5905" target="https://www.rfc-editor.org/info/rfc5905" quoteTitle="true" derivedAnchor="RFC5905">
          <front>
            <title>Network Time Protocol Version 4: Protocol and Algorithms Specification</title>
            <author initials="D." surname="Mills" fullname="D. Mills">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Martin" fullname="J. Martin" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Burbank" fullname="J. Burbank">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="W." surname="Kasch" fullname="W. Kasch">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2010" month="June"/>
            <abstract>
              <t indent="0">The Network Time Protocol (NTP) is widely used to synchronize computer clocks in the Internet.  This document describes NTP version 4 (NTPv4), which is backwards compatible with NTP version 3 (NTPv3), described in RFC 1305, as well as previous versions of the protocol. NTPv4 includes a modified protocol header to accommodate the Internet Protocol version 6 address family.  NTPv4 includes fundamental improvements in the mitigation and discipline algorithms that extend the potential accuracy to the tens of microseconds with modern workstations and fast LANs.  It includes a dynamic server discovery scheme, so that in many cases, specific server configuration is not required.  It corrects certain errors in the NTPv3 design and implementation and includes an optional extension mechanism.   [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5905"/>
          <seriesInfo name="DOI" value="10.17487/RFC5905"/>
        </reference>
        <reference anchor="RFC7250" target="https://www.rfc-editor.org/info/rfc7250" quoteTitle="true" derivedAnchor="RFC7250">
          <front>
            <title>Using Raw Public Keys in Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
            <author initials="P." surname="Wouters" fullname="P. Wouters" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="H." surname="Tschofenig" fullname="H. Tschofenig" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Gilmore" fullname="J. Gilmore">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Weiler" fullname="S. Weiler">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="T." surname="Kivinen" fullname="T. Kivinen">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2014" month="June"/>
            <abstract>
              <t indent="0">This document specifies a new certificate type and two TLS extensions for exchanging raw public keys in Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS).  The new certificate type allows raw public keys to be used for authentication.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7250"/>
          <seriesInfo name="DOI" value="10.17487/RFC7250"/>
        </reference>
        <reference anchor="RFC7901" target="https://www.rfc-editor.org/info/rfc7901" quoteTitle="true" derivedAnchor="RFC7901">
          <front>
            <title>CHAIN Query Requests in DNS</title>
            <author initials="P." surname="Wouters" fullname="P. Wouters">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2016" month="June"/>
            <abstract>
              <t indent="0">This document defines an EDNS0 extension that can be used by a security-aware validating resolver configured to use a forwarding resolver to send a single query, requesting a complete validation path along with the regular query answer.  The reduction in queries potentially lowers the latency and reduces the need to send multiple queries at once.  This extension mandates the use of source-IP- verified transport such as TCP or UDP with EDNS-COOKIE, so it cannot be abused in amplification attacks.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7901"/>
          <seriesInfo name="DOI" value="10.17487/RFC7901"/>
        </reference>
        <reference anchor="I-D.agl-dane-serializechain" quoteTitle="true" target="https://datatracker.ietf.org/doc/html/draft-agl-dane-serializechain-01" derivedAnchor="SERIALIZECHAIN">
          <front>
            <title>Serializing DNS Records with DNSSEC Authentication</title>
            <author fullname="Adam Langley">
	 </author>
            <date month="July" day="1" year="2011"/>
            <abstract>
              <t indent="0">   This document describes a format for serializing a DNS record with
   accompanying DNSSEC information such that a verifier can be convinced
   that the DNS record is authentic without performing DNS queries
   itself.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-agl-dane-serializechain-01"/>
          <format type="TXT" target="https://www.ietf.org/archive/id/draft-agl-dane-serializechain-01.txt"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
      </references>
    </references>
    <section anchor="test-vectors" numbered="true" removeInRFC="false" toc="include" pn="section-appendix.a">
      <name slugifiedName="name-test-vectors">Test Vectors</name>
      <t indent="0" pn="section-appendix.a-1">The test vectors in this appendix are representations of the content
of the "opaque AuthenticationChain" field in DNS presentation format and, except for the <tt>extension_data</tt> in <xref target="hex_dump" format="default" sectionFormat="of" derivedContent="Appendix A.1"/>, do not contain
the "uint16 ExtSupportLifetime" field.</t>
      <t indent="0" pn="section-appendix.a-2">For brevity and reproducibility, all DNS zones involved with the test
vectors are signed using keys with algorithm 13 (ECDSA Curve P-256
with SHA-256).</t>
      <t indent="0" pn="section-appendix.a-3">To reflect operational practice, different zones in the examples are
in different phases of rolling their signing keys:</t>
      <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-appendix.a-4">
        <li pn="section-appendix.a-4.1">
          <t indent="0" pn="section-appendix.a-4.1.1">All zones use a Key Signing Key (KSK) and Zone Signing Key (ZSK),
except for the <tt>example.com</tt> and <tt>example.net</tt> zones, which use a
Combined Signing Key (CSK).</t>
        </li>
        <li pn="section-appendix.a-4.2">
          <t indent="0" pn="section-appendix.a-4.2.1">The root and org zones are rolling their ZSKs.</t>
        </li>
        <li pn="section-appendix.a-4.3">
          <t indent="0" pn="section-appendix.a-4.3.1">The com and org zones are rolling their KSKs.</t>
        </li>
      </ul>
      <t indent="0" pn="section-appendix.a-5">The test vectors are DNSSEC valid in the same period as the
certificate is valid, which is between November 28, 2018 and
December 2, 2020 with the following root trust anchor:</t>
      <sourcecode type="dns-rr" markers="false" pn="section-appendix.a-6">.  IN  DS  ( 47005 13 2 2eb6e9f2480126691594d649a5a613de3052e37861634
        641bb568746f2ffc4d4 )
</sourcecode>
      <t indent="0" pn="section-appendix.a-7">The test vectors will authenticate the certificate used with
<tt>https://example.com/</tt>, <tt>https://example.net/</tt>, and <tt>https://example.org/</tt>
at the time of writing:</t>
      <sourcecode markers="false" pn="section-appendix.a-8">-----BEGIN CERTIFICATE-----
MIIHQDCCBiigAwIBAgIQD9B43Ujxor1NDyupa2A4/jANBgkqhkiG9w0BAQsFADBN
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E
aWdpQ2VydCBTSEEyIFNlY3VyZSBTZXJ2ZXIgQ0EwHhcNMTgxMTI4MDAwMDAwWhcN
MjAxMjAyMTIwMDAwWjCBpTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3Ju
aWExFDASBgNVBAcTC0xvcyBBbmdlbGVzMTwwOgYDVQQKEzNJbnRlcm5ldCBDb3Jw
b3JhdGlvbiBmb3IgQXNzaWduZWQgTmFtZXMgYW5kIE51bWJlcnMxEzARBgNVBAsT
ClRlY2hub2xvZ3kxGDAWBgNVBAMTD3d3dy5leGFtcGxlLm9yZzCCASIwDQYJKoZI
hvcNAQEBBQADggEPADCCAQoCggEBANDwEnSgliByCGUZElpdStA6jGaPoCkrp9vV
rAzPpXGSFUIVsAeSdjF11yeOTVBqddF7U14nqu3rpGA68o5FGGtFM1yFEaogEv5g
rJ1MRY/d0w4+dw8JwoVlNMci+3QTuUKf9yH28JxEdG3J37Mfj2C3cREGkGNBnY80
eyRJRqzy8I0LSPTTkhr3okXuzOXXg38ugr1x3SgZWDNuEaE6oGpyYJIBWZ9jF3pJ
QnucP9vTBejMh374qvyd0QVQq3WxHrogy4nUbWw3gihMxT98wRD1oKVma1NTydvt
hcNtBfhkp8kO64/hxLHrLWgOFT/l4tz8IWQt7mkrBHjbd2XLVPkCAwEAAaOCA8Ew
ggO9MB8GA1UdIwQYMBaAFA+AYRyCMWHVLyjnjUY4tCzhxtniMB0GA1UdDgQWBBRm
mGIC4AmRp9njNvt2xrC/oW2nvjCBgQYDVR0RBHoweIIPd3d3LmV4YW1wbGUub3Jn
ggtleGFtcGxlLmNvbYILZXhhbXBsZS5lZHWCC2V4YW1wbGUubmV0ggtleGFtcGxl
Lm9yZ4IPd3d3LmV4YW1wbGUuY29tgg93d3cuZXhhbXBsZS5lZHWCD3d3dy5leGFt
cGxlLm5ldDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsG
AQUFBwMCMGsGA1UdHwRkMGIwL6AtoCuGKWh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNv
bS9zc2NhLXNoYTItZzYuY3JsMC+gLaArhilodHRwOi8vY3JsNC5kaWdpY2VydC5j
b20vc3NjYS1zaGEyLWc2LmNybDBMBgNVHSAERTBDMDcGCWCGSAGG/WwBATAqMCgG
CCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BTMAgGBmeBDAEC
AjB8BggrBgEFBQcBAQRwMG4wJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2lj
ZXJ0LmNvbTBGBggrBgEFBQcwAoY6aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29t
L0RpZ2lDZXJ0U0hBMlNlY3VyZVNlcnZlckNBLmNydDAMBgNVHRMBAf8EAjAAMIIB
fwYKKwYBBAHWeQIEAgSCAW8EggFrAWkAdwCkuQmQtBhYFIe7E6LMZ3AKPDWYBPkb
37jjd80OyA3cEAAAAWdcMZVGAAAEAwBIMEYCIQCEZIG3IR36Gkj1dq5L6EaGVycX
sHvpO7dKV0JsooTEbAIhALuTtf4wxGTkFkx8blhTV+7sf6pFT78ORo7+cP39jkJC
AHYAh3W/51l8+IxDmV+9827/Vo1HVjb/SrVgwbTq/16ggw8AAAFnXDGWFQAABAMA
RzBFAiBvqnfSHKeUwGMtLrOG3UGLQIoaL3+uZsGTX3MfSJNQEQIhANL5nUiGBR6g
l0QlCzzqzvorGXyB/yd7nttYttzo8EpOAHYAb1N2rDHwMRnYmQCkURX/dxUcEdkC
wQApBo2yCJo32RMAAAFnXDGWnAAABAMARzBFAiEA5Hn7Q4SOyqHkT+kDsHq7ku7z
RDuM7P4UDX2ft2Mpny0CIE13WtxJAUr0aASFYZ/XjSAMMfrB0/RxClvWVss9LHKM
MA0GCSqGSIb3DQEBCwUAA4IBAQBzcIXvQEGnakPVeJx7VUjmvGuZhrr7DQOLeP4R
8CmgDM1pFAvGBHiyzvCH1QGdxFl6cf7wbp7BoLCRLR/qPVXFMwUMzcE1GLBqaGZM
v1Yh2lvZSLmMNSGRXdx113pGLCInpm/TOhfrvr0TxRImc8BdozWJavsn1N2qdHQu
N+UBO6bQMLCD0KHEdSGFsuX6ZwAworxTg02/1qiDu7zW7RyzHvFYA4IAjpzvkPIa
X6KjBtpdvp/aXabmL95YgBjT8WJ7pqOfrqhpcmOBZa6Cg6O1l4qbIFH/Gj9hQB5I
0Gs4+eH6F9h3SojmPTYkT+8KuZ9w84Mn+M8qBXUQoYoKgIjN
-----END CERTIFICATE-----
</sourcecode>
      <section anchor="tv-straight" numbered="true" removeInRFC="false" toc="include" pn="section-appendix.a.1">
        <name slugifiedName="name-_443_tcpwwwexamplecom"><tt>_443._tcp.www.example.com</tt></name>
        <sourcecode type="dns-rr" markers="false" pn="section-appendix.a.1-1">_443._tcp.www.example.com.  3600  IN  TLSA  ( 3 1 1
        8bd1da95272f7fa4ffb24137fc0ed03aae67e5c4d8b3c50734e1050a7920b
        922 )
_443._tcp.www.example.com.  3600  IN  RRSIG  ( TLSA 13 5 3600
        20201202000000 20181128000000 1870 example.com.
        rqY69NnTf4CN3GBGQjKEJCLAMsRkUrXe0JW8IqDb5rQHHzxNqqPeEoi+2vI6S
        z2BhaswpGLVVuoijuVdzxYjmw== )
example.com.  3600  IN  DNSKEY  ( 257 3 13
        JnA1XgyJTZz+psWvbrfUWLV6ULqIJyUS2CQdhUH9VK35bslWeJpRzrlxCUs7s
        /TsSfZMaGWVvlsuieh5nHcXzA== ) ; Key ID = 1870
example.com.  3600  IN  RRSIG  ( DNSKEY 13 2 3600
        20201202000000 20181128000000 1870 example.com.
        nYisnu/26Sw1qmGuREa9o/fLgYuA4oNPt4+6PMBZoN0MS8Gjtli9NVRYeSIzt
        QHPGSpvRxTUC4tZi62z1UgGDw== )
example.com.  172800  IN  DS  ( 1870 13 2 e9b533a049798e900b5c29c90cd
       25a986e8a44f319ac3cd302bafc08f5b81e16)
example.com.  172800  IN  RRSIG  ( DS 13 2 172800
        20201202000000 20181128000000 34327 com.
        sEAKvX4H6pJfN8nKcclB1NRcRSPOztx8omr4fCSHu6lp+uESP/Le4iF2sKukO
        J1hhWSB6jgubEVl17rGNOA/YQ== )
com.  172800  IN  DNSKEY  ( 256 3 13
        7IIE5Dol8jSMUqHTvOOiZapdEbQ9wqRxFi/zQcSdufUKLhpByvLpzSAQTqCWj
        3URIZ8L3Fa2gBLMOZUzZ1GQCw== ) ; Key ID = 34327
com.  172800  IN  DNSKEY  ( 257 3 13
        RbkcO+96XZmnp8jYIuM4lryAp3egQjSmBaSoiA7H76Tm0RLHPNPUxlVk+nQ0f
        Ic3I8xfZDNw8Wa0Pe3/g2QA/w== ) ; Key ID = 18931
com.  172800  IN  DNSKEY  ( 257 3 13
        szc7biLo5J4OHlkan1vZrF4aD4YYf+NHA/GAqdNslY9xxK9Izg68XHkqck4Rt
        DiVk37lNAQmgSlHbrGu0yOTkA== ) ; Key ID = 28809
com.  172800  IN  RRSIG  ( DNSKEY 13 1 172800 20201202000000
        20181128000000 18931 com.
        LJ4p5ORS2ViILwTotSlWixElqRXHY5tOdIuHlPWTdBGPMq3y40QNr1V+ZOyA5
        7LFdPKpcvb8BvhM+GqKWGBEsg== )
com.  172800  IN  RRSIG  ( DNSKEY 13 1 172800 20201202000000
        20181128000000 28809 com.
        sO+4X2N21yS6x8+dBVBzbRo9+55MM8n7+RUvdBuxRFVh6JaBlqDOC5LLkl7Ev
        mDXqz6KEhhQjT+aQWDt6WFHlA== )
com.  86400  IN  DS  ( 18931 13 2 20f7a9db42d0e2042fbbb9f9ea015941202
        f9eabb94487e658c188e7bcb52115 )
com.  86400  IN  DS  ( 28809 13 2 ad66b3276f796223aa45eda773e92c6d98e
        70643bbde681db342a9e5cf2bb380 )
com.  86400  IN  RRSIG  ( DS 13 1 86400 20201202000000
        20181128000000 31918 .
        nDiDlBjXEE/6AudhC++Hui1ckPcuAnGbjEASNoxA3ZHjlXRzL050UzePko5Pb
        vBKTf6pk8JRCqnfzlo2QY+WXA== )
.  86400  IN  DNSKEY  ( 256 3 13
        zKz+DCWkNA/vuheiVPcGqsH40U84KZAlrMRIyozj9WHzf8PsFp/oR8j8vmjjW
        P98cbte4d8NvlGLxzbUzo3+FA== ) ; Key ID = 31918
.  86400  IN  DNSKEY  ( 256 3 13
        8wMZZ4lzHdyKZ4fv8kys/t3QMlgvEadbsbyqWrMhwddSXCZYGRrsAbPpireRW
        xbVcd1VtOrlFBcRDMTN0R0XEQ== ) ; Key ID = 2635
.  86400  IN  DNSKEY  ( 257 3 13
        yvX+VNTUjxZiGvtr060hVbrPV9H6rVusQtF9lIxCFzbZOJxMQBFmbqlc8Xclv
        Q+gDOXnFOTsgs/frMmxyGOtRg== ) ; Key ID = 47005
.  86400  IN  RRSIG  ( DNSKEY 13 0 86400 20201202000000
        20181128000000 47005 .
        0EPW1ca+N/ZhZPKla77STG734cTeIOjUwq7eW0HsnOfudWmnCEVeco2wLLq9m
        nBT1dtNjIczvLG9pQTnOKUsHQ== )
</sourcecode>
        <t indent="0" pn="section-appendix.a.1-2">A hex dump of the <tt>extension_data</tt> of the server's <tt>dnssec_chain</tt>
extension representation of this with an ExtSupportLifetime value of 0 is:</t>
        <sourcecode anchor="hex_dump" markers="false" pn="section-appendix.a.1-3">0000:  00 00 04 5f 34 34 33 04  5f 74 63 70 03 77 77 77
0010:  07 65 78 61 6d 70 6c 65  03 63 6f 6d 00 00 34 00
0020:  01 00 00 0e 10 00 23 03  01 01 8b d1 da 95 27 2f
0030:  7f a4 ff b2 41 37 fc 0e  d0 3a ae 67 e5 c4 d8 b3
0040:  c5 07 34 e1 05 0a 79 20  b9 22 04 5f 34 34 33 04
0050:  5f 74 63 70 03 77 77 77  07 65 78 61 6d 70 6c 65
0060:  03 63 6f 6d 00 00 2e 00  01 00 00 0e 10 00 5f 00
0070:  34 0d 05 00 00 0e 10 5f  c6 d9 00 5b fd da 80 07
0080:  4e 07 65 78 61 6d 70 6c  65 03 63 6f 6d 00 ce 1d
0090:  3a de b7 dc 7c ee 65 6d  61 cf b4 72 c5 97 7c 8c
00a0:  9c ae ae 9b 76 51 55 c5  18 fb 10 7b 6a 1f e0 35
00b0:  5f ba af 75 3c 19 28 32  fa 62 1f a7 3a 8b 85 ed
00c0:  79 d3 74 11 73 87 59 8f  cc 81 2e 1e f3 fb 07 65
00d0:  78 61 6d 70 6c 65 03 63  6f 6d 00 00 30 00 01 00
00e0:  00 0e 10 00 44 01 01 03  0d 26 70 35 5e 0c 89 4d
00f0:  9c fe a6 c5 af 6e b7 d4  58 b5 7a 50 ba 88 27 25
0100:  12 d8 24 1d 85 41 fd 54  ad f9 6e c9 56 78 9a 51
0110:  ce b9 71 09 4b 3b b3 f4  ec 49 f6 4c 68 65 95 be
0120:  5b 2e 89 e8 79 9c 77 17  cc 07 65 78 61 6d 70 6c
0130:  65 03 63 6f 6d 00 00 2e  00 01 00 00 0e 10 00 5f
0140:  00 30 0d 02 00 00 0e 10  5f c6 d9 00 5b fd da 80
0150:  07 4e 07 65 78 61 6d 70  6c 65 03 63 6f 6d 00 46
0160:  28 38 30 75 b8 e3 4b 74  3a 20 9b 27 ae 14 8d 11
0170:  0d 4e 1a 24 61 38 a9 10  83 24 9c b4 a1 2a 2d 9b
0180:  c4 c2 d7 ab 5e b3 af b9  f5 d1 03 7e 4d 5d a8 33
0190:  9c 16 2a 92 98 e9 be 18  07 41 a8 ca 74 ac cc 07
01a0:  65 78 61 6d 70 6c 65 03  63 6f 6d 00 00 2b 00 01
01b0:  00 02 a3 00 00 24 07 4e  0d 02 e9 b5 33 a0 49 79
01c0:  8e 90 0b 5c 29 c9 0c d2  5a 98 6e 8a 44 f3 19 ac
01d0:  3c d3 02 ba fc 08 f5 b8  1e 16 07 65 78 61 6d 70
01e0:  6c 65 03 63 6f 6d 00 00  2e 00 01 00 02 a3 00 00
01f0:  57 00 2b 0d 02 00 02 a3  00 5f c6 d9 00 5b fd da
0200:  80 86 17 03 63 6f 6d 00  a2 03 e7 04 a6 fa cb eb
0210:  13 fc 93 84 fd d6 de 6b  50 de 56 59 27 1f 38 ce
0220:  81 49 86 84 e6 36 31 72  d4 7e 23 19 fd b4 a2 2a
0230:  58 a2 31 ed c2 f1 ff 4f  b2 81 1a 18 07 be 72 cb
0240:  52 41 aa 26 fd ae e0 39  03 63 6f 6d 00 00 30 00
0250:  01 00 02 a3 00 00 44 01  00 03 0d ec 82 04 e4 3a
0260:  25 f2 34 8c 52 a1 d3 bc  e3 a2 65 aa 5d 11 b4 3d
0270:  c2 a4 71 16 2f f3 41 c4  9d b9 f5 0a 2e 1a 41 ca
0280:  f2 e9 cd 20 10 4e a0 96  8f 75 11 21 9f 0b dc 56
0290:  b6 80 12 cc 39 95 33 67  51 90 0b 03 63 6f 6d 00
02a0:  00 30 00 01 00 02 a3 00  00 44 01 01 03 0d 45 b9
02b0:  1c 3b ef 7a 5d 99 a7 a7  c8 d8 22 e3 38 96 bc 80
02c0:  a7 77 a0 42 34 a6 05 a4  a8 88 0e c7 ef a4 e6 d1
02d0:  12 c7 3c d3 d4 c6 55 64  fa 74 34 7c 87 37 23 cc
02e0:  5f 64 33 70 f1 66 b4 3d  ed ff 83 64 00 ff 03 63
02f0:  6f 6d 00 00 30 00 01 00  02 a3 00 00 44 01 01 03
0300:  0d b3 37 3b 6e 22 e8 e4  9e 0e 1e 59 1a 9f 5b d9
0310:  ac 5e 1a 0f 86 18 7f e3  47 03 f1 80 a9 d3 6c 95
0320:  8f 71 c4 af 48 ce 0e bc  5c 79 2a 72 4e 11 b4 38
0330:  95 93 7e e5 34 04 26 81  29 47 6e b1 ae d3 23 93
0340:  90 03 63 6f 6d 00 00 2e  00 01 00 02 a3 00 00 57
0350:  00 30 0d 01 00 02 a3 00  5f c6 d9 00 5b fd da 80
0360:  49 f3 03 63 6f 6d 00 18  a9 48 eb 23 d4 4f 80 ab
0370:  c9 92 38 fc b4 3c 5a 18  de be 57 00 4f 73 43 59
0380:  3f 6d eb 6e d7 1e 04 65  4a 43 3f 7a a1 97 21 30
0390:  d9 bd 92 1c 73 dc f6 3f  cf 66 5f 2f 05 a0 aa eb
03a0:  af b0 59 dc 12 c9 65 03  63 6f 6d 00 00 2e 00 01
03b0:  00 02 a3 00 00 57 00 30  0d 01 00 02 a3 00 5f c6
03c0:  d9 00 5b fd da 80 70 89  03 63 6f 6d 00 61 70 e6
03d0:  95 9b d9 ed 6e 57 58 37  b6 f5 80 bd 99 db d2 4a
03e0:  44 68 2b 0a 35 96 26 a2  46 b1 81 2f 5f 90 96 b7
03f0:  5e 15 7e 77 84 8f 06 8a  e0 08 5e 1a 60 9f c1 92
0400:  98 c3 3b 73 68 63 fb cc  d4 d8 1f 5e b2 03 63 6f
0410:  6d 00 00 2b 00 01 00 01  51 80 00 24 49 f3 0d 02
0420:  20 f7 a9 db 42 d0 e2 04  2f bb b9 f9 ea 01 59 41
0430:  20 2f 9e ab b9 44 87 e6  58 c1 88 e7 bc b5 21 15
0440:  03 63 6f 6d 00 00 2b 00  01 00 01 51 80 00 24 70
0450:  89 0d 02 ad 66 b3 27 6f  79 62 23 aa 45 ed a7 73
0460:  e9 2c 6d 98 e7 06 43 bb  de 68 1d b3 42 a9 e5 cf
0470:  2b b3 80 03 63 6f 6d 00  00 2e 00 01 00 01 51 80
0480:  00 53 00 2b 0d 01 00 01  51 80 5f c6 d9 00 5b fd
0490:  da 80 7c ae 00 12 2e 27  6d 45 d9 e9 81 6f 79 22
04a0:  ad 6e a2 e7 3e 82 d2 6f  ce 0a 4b 71 86 25 f3 14
04b0:  53 1a c9 2f 8a e8 24 18  df 9b 89 8f 98 9d 32 e8
04c0:  0b c4 de ab a7 c4 a7 c8  f1 72 ad b5 7c ed 7f b5
04d0:  e7 7a 78 4b 07 00 00 30  00 01 00 01 51 80 00 44
04e0:  01 00 03 0d cc ac fe 0c  25 a4 34 0f ef ba 17 a2
04f0:  54 f7 06 aa c1 f8 d1 4f  38 29 90 25 ac c4 48 ca
0500:  8c e3 f5 61 f3 7f c3 ec  16 9f e8 47 c8 fc be 68
0510:  e3 58 ff 7c 71 bb 5e e1  df 0d be 51 8b c7 36 d4
0520:  ce 8d fe 14 00 00 30 00  01 00 01 51 80 00 44 01
0530:  00 03 0d f3 03 19 67 89  73 1d dc 8a 67 87 ef f2
0540:  4c ac fe dd d0 32 58 2f  11 a7 5b b1 bc aa 5a b3
0550:  21 c1 d7 52 5c 26 58 19  1a ec 01 b3 e9 8a b7 91
0560:  5b 16 d5 71 dd 55 b4 ea  e5 14 17 11 0c c4 cd d1
0570:  1d 17 11 00 00 30 00 01  00 01 51 80 00 44 01 01
0580:  03 0d ca f5 fe 54 d4 d4  8f 16 62 1a fb 6b d3 ad
0590:  21 55 ba cf 57 d1 fa ad  5b ac 42 d1 7d 94 8c 42
05a0:  17 36 d9 38 9c 4c 40 11  66 6e a9 5c f1 77 25 bd
05b0:  0f a0 0c e5 e7 14 e4 ec  82 cf df ac c9 b1 c8 63
05c0:  ad 46 00 00 2e 00 01 00  01 51 80 00 53 00 30 0d
05d0:  00 00 01 51 80 5f c6 d9  00 5b fd da 80 b7 9d 00
05e0:  de 7a 67 40 ee ec ba 4b  da 1e 5c 2d d4 89 9b 2c
05f0:  96 58 93 f3 78 6c e7 47  f4 1e 50 d9 de 8c 0a 72
0600:  df 82 56 0d fb 48 d7 14  de 32 83 ae 99 a4 9c 0f
0610:  cb 50 d3 aa ad b1 a3 fc  62 ee 3a 8a 09 88 b6 be
</sourcecode>
      </section>
      <section anchor="tv-wildcard-nsec" numbered="true" removeInRFC="false" toc="include" pn="section-appendix.a.2">
        <name slugifiedName="name-_25_tcpexamplecom-nsec-wild"><tt>_25._tcp.example.com</tt> NSEC Wildcard</name>
        <sourcecode type="dns-rr" markers="false" pn="section-appendix.a.2-1">_25._tcp.example.com.  3600  IN  TLSA  ( 3 1 1
        8bd1da95272f7fa4ffb24137fc0ed03aae67e5c4d8b3c50734e1050a7920b
        922 )
_25._tcp.example.com.  3600  IN  RRSIG  ( TLSA 13 3 3600
        20201202000000 20181128000000 1870 example.com.
        BZawXvte5SyF8hnXviKDWqll5E2v+RMXqaSE+NOcAMlZOrSMUkfyPqvkv53K2
        rfL4DFP8rO3VMgI0v+ogrox0w== )
*._tcp.example.com.  3600  IN  NSEC  ( smtp.example.com. RRSIG
        NSEC TLSA )
*._tcp.example.com.  3600  IN  RRSIG  ( NSEC 13 3 3600
        20201202000000 20181128000000 1870 example.com.
        K6u8KrR8ca5bjtbce3w8yjMXr9vw12225lAwyIHpxptY43OMLCUCenwpYW5qd
        mpFvAacqj4+tSkKiN279SI9pA== )
example.com.  3600  IN  DNSKEY  ( 257 3 13
        JnA1XgyJTZz+psWvbrfUWLV6ULqIJyUS2CQdhUH9VK35bslWeJpRzrlxCUs7s
        /TsSfZMaGWVvlsuieh5nHcXzA== ) ; Key ID = 1870
example.com.  3600  IN  RRSIG  ( DNSKEY 13 2 3600
        20201202000000 20181128000000 1870 example.com.
        nYisnu/26Sw1qmGuREa9o/fLgYuA4oNPt4+6PMBZoN0MS8Gjtli9NVRYeSIzt
        QHPGSpvRxTUC4tZi62z1UgGDw== )
example.com.  172800  IN  DS  ( 1870 13 2 e9b533a049798e900b5c29c90cd
        25a986e8a44f319ac3cd302bafc08f5b81e16 )
example.com.  172800  IN  RRSIG  ( DS 13 2 172800
        20201202000000 20181128000000 34327 com.
        sEAKvX4H6pJfN8nKcclB1NRcRSPOztx8omr4fCSHu6lp+uESP/Le4iF2sKukO
        J1hhWSB6jgubEVl17rGNOA/YQ== )
com.  172800  IN  DNSKEY  ( 256 3 13
        7IIE5Dol8jSMUqHTvOOiZapdEbQ9wqRxFi/zQcSdufUKLhpByvLpzSAQTqCWj
        3URIZ8L3Fa2gBLMOZUzZ1GQCw== ) ; Key ID = 34327
com.  172800  IN  DNSKEY  ( 257 3 13
        RbkcO+96XZmnp8jYIuM4lryAp3egQjSmBaSoiA7H76Tm0RLHPNPUxlVk+nQ0f
        Ic3I8xfZDNw8Wa0Pe3/g2QA/w== ) ; Key ID = 18931
com.  172800  IN  DNSKEY  ( 257 3 13
        szc7biLo5J4OHlkan1vZrF4aD4YYf+NHA/GAqdNslY9xxK9Izg68XHkqck4Rt
        DiVk37lNAQmgSlHbrGu0yOTkA== ) ; Key ID = 28809
com.  172800  IN  RRSIG  ( DNSKEY 13 1 172800 20201202000000
        20181128000000 18931 com.
        LJ4p5ORS2ViILwTotSlWixElqRXHY5tOdIuHlPWTdBGPMq3y40QNr1V+ZOyA5
        7LFdPKpcvb8BvhM+GqKWGBEsg== )
com.  172800  IN  RRSIG  ( DNSKEY 13 1 172800 20201202000000
        20181128000000 28809 com.
        sO+4X2N21yS6x8+dBVBzbRo9+55MM8n7+RUvdBuxRFVh6JaBlqDOC5LLkl7Ev
        mDXqz6KEhhQjT+aQWDt6WFHlA== )
com.  86400  IN  DS  ( 18931 13 2 20f7a9db42d0e2042fbbb9f9ea015941202
        f9eabb94487e658c188e7bcb52115 )
com.  86400  IN  DS  ( 28809 13 2 ad66b3276f796223aa45eda773e92c6d98e
        70643bbde681db342a9e5cf2bb380 )
com.  86400  IN  RRSIG  ( DS 13 1 86400 20201202000000
        20181128000000 31918 .
        nDiDlBjXEE/6AudhC++Hui1ckPcuAnGbjEASNoxA3ZHjlXRzL050UzePko5Pb
        vBKTf6pk8JRCqnfzlo2QY+WXA== )
.  86400  IN  DNSKEY  ( 256 3 13
        zKz+DCWkNA/vuheiVPcGqsH40U84KZAlrMRIyozj9WHzf8PsFp/oR8j8vmjjW
        P98cbte4d8NvlGLxzbUzo3+FA== ) ; Key ID = 31918
.  86400  IN  DNSKEY  ( 256 3 13
        8wMZZ4lzHdyKZ4fv8kys/t3QMlgvEadbsbyqWrMhwddSXCZYGRrsAbPpireRW
        xbVcd1VtOrlFBcRDMTN0R0XEQ== ) ; Key ID = 2635
.  86400  IN  DNSKEY  ( 257 3 13
        yvX+VNTUjxZiGvtr060hVbrPV9H6rVusQtF9lIxCFzbZOJxMQBFmbqlc8Xclv
        Q+gDOXnFOTsgs/frMmxyGOtRg== ) ; Key ID = 47005
.  86400  IN  RRSIG  ( DNSKEY 13 0 86400 20201202000000
        20181128000000 47005 .
        0EPW1ca+N/ZhZPKla77STG734cTeIOjUwq7eW0HsnOfudWmnCEVeco2wLLq9m
        nBT1dtNjIczvLG9pQTnOKUsHQ== )
</sourcecode>
      </section>
      <section anchor="tv-wildcard-nsec3" numbered="true" removeInRFC="false" toc="include" pn="section-appendix.a.3">
        <name slugifiedName="name-_25_tcpexampleorg-nsec3-wil"><tt>_25._tcp.example.org</tt> NSEC3 Wildcard</name>
        <sourcecode type="dns-rr" markers="false" pn="section-appendix.a.3-1">_25._tcp.example.org.  3600  IN  TLSA  ( 3 1 1
        8bd1da95272f7fa4ffb24137fc0ed03aae67e5c4d8b3c50734e1050a7920b
        922 )
_25._tcp.example.org.  3600  IN  RRSIG  ( TLSA 13 3 3600
        20201202000000 20181128000000 56566 example.org.
        lNp6th/CJel5WsYlLsLadcQ/YdSTJAIOttzYKnNkNzeZ0jxtDyEP818Q1R4lL
        cYzJ7vCvqb9gFCiCJjK2gAamw== )
dlm7rss9pejqnh0ev6h7k1ikqqcl5mae.example.org.  3600  IN  NSEC3  (
        1 0 1 - t6lf7uuoi0qofq0nvdjroavo46pp20im RRSIG TLSA )
dlm7rss9pejqnh0ev6h7k1ikqqcl5mae.example.org.  3600  IN  RRSIG  (
        NSEC3 13 3 3600 20201202000000 20181128000000 56566
        example.org.
        guUyy9LIZlYb0FZttAdYJGrFNKpKu91Tm+dPOz98rnpwIlwwvLifXIvIl90nE
        X38cWzEQOpreJu3t4WAfPsxdg== )
example.org.  3600  IN  DNSKEY  ( 256 3 13
        NrbL6utGqIW1wrhhjeexdA6bMdD1lC1hj0Fnpevaa1AMyY2uy83TmoGnR996N
        UR5TlG4Zh+YPbbmUIixe4nS3w== ) ; Key ID = 56566
example.org.  3600  IN  DNSKEY  ( 257 3 13
        uspaqp17jsMTX6AWVgmbog/3Sttz+9ANFUWLn6qKUHr0BOqRuChQWj8jyYUUr
        Wy9txxesNQ9MkO4LUrFght1LQ== ) ; Key ID = 44384
example.org.  3600  IN  RRSIG  ( DNSKEY 13 2 3600
        20201202000000 20181128000000 44384 example.org.
        ttse9pYp9PSu0pJ+TOpIVFLWJ6NKOMWZX4Q/SlU6ZfaiKQc0Bg7Tut9+wPunk
        6OPPvyHjVXMAsvk0tqV0B+/ag== )
example.org.  86400  IN  DS  ( 44384 13 2 ec307e2efc8f0117ed96ab48a51
        3c8003e1d9121f1ff11a08b4cdd348d090aa6 )
example.org.  86400  IN  RRSIG  ( DS 13 2 86400 20201202000000
        20181128000000 9523 org.
        m86Xz0CEa2sWG40a0bS2kqLKPmIlyiVyDeoWXAq3djeGiPaikLuKORNzWXu62
        clpAfvZHx59Ackst4X+zXYpUA== )
org.  86400  IN  DNSKEY  ( 256 3 13
        fuLp60znhSSEr9HowILpTpyLKQdM6ixcgkTE0gqVdsLx+DSNHSc69o6fLWC0e
        HfWx7kzlBBoJB0vLrvsJtXJ6g== ) ; Key ID = 47417
org.  86400  IN  DNSKEY  ( 256 3 13
        zTHbb7JM627Bjr8CGOySUarsic91xZU3vvLJ5RjVix9YH6+iwpBXb6qfHyQHy
        mlMiAAoaoXh7BUkEBVgDVN8sQ== ) ; Key ID = 9523
org.  86400  IN  DNSKEY  ( 257 3 13
        Uf24EyNt51DMcLV+dHPInhSpmjPnqAQNUTouU+SGLu+lFRRlBetgw1bJUZNI6
        Dlger0VJTm0QuX/JVXcyGVGoQ== ) ; Key ID = 49352
org.  86400  IN  DNSKEY  ( 257 3 13
        0SZfoe8Yx+eoaGgyAGEeJax/ZBV1AuG+/smcOgRm+F6doNlgc3lddcM1MbTvJ
        HTjK6Fvy8W6yZ+cAptn8sQheg== ) ; Key ID = 12651
org.  86400  IN  RRSIG  ( DNSKEY 13 1 86400 20201202000000
        20181128000000 12651 org.
        Gq9wf+z3pasXXUwE210jYc0LhJnMAhcwXydnvkHtCVY6/0jUafHO4RksN84Zt
        us0pUgWngbT/OWXskdMYXZU4A== )
org.  86400  IN  RRSIG  ( DNSKEY 13 1 86400 20201202000000
        20181128000000 49352 org.
        VGEkEMWBJ2IbOpm2Z56Qxu2NGPcVUDWCbYRyk+Qk1+HzGtyd2qPEKkpgMs/0p
        vZEMj1YXD+dIqb2nUK9PGBAXw== )
org.  86400  IN  DS  ( 12651 13 2 3979a51f98bbf219fcaf4a4176e766dfa8f
        9db5c24a75743eb1e704b97a9fabc )
org.  86400  IN  DS  ( 49352 13 2 03d11a1aa114abbb8f708c3c0ff0db765fe
        f4a2f18920db5f58710dd767c293b )
org.  86400  IN  RRSIG  ( DS 13 1 86400 20201202000000
        20181128000000 31918 .
        adiFuP2UIulQw5Edsb/7WSPqr5nkRSTVXbZ2tkBeZRQcMjdCD3pyonWO5JPRV
        EemgaE357S4pX5D0tVZzeZJ6A== )
.  86400  IN  DNSKEY  ( 256 3 13
        zKz+DCWkNA/vuheiVPcGqsH40U84KZAlrMRIyozj9WHzf8PsFp/oR8j8vmjjW
        P98cbte4d8NvlGLxzbUzo3+FA== ) ; Key ID = 31918
.  86400  IN  DNSKEY  ( 256 3 13
        8wMZZ4lzHdyKZ4fv8kys/t3QMlgvEadbsbyqWrMhwddSXCZYGRrsAbPpireRW
        xbVcd1VtOrlFBcRDMTN0R0XEQ== ) ; Key ID = 2635
.  86400  IN  DNSKEY  ( 257 3 13
        yvX+VNTUjxZiGvtr060hVbrPV9H6rVusQtF9lIxCFzbZOJxMQBFmbqlc8Xclv
        Q+gDOXnFOTsgs/frMmxyGOtRg== ) ; Key ID = 47005
.  86400  IN  RRSIG  ( DNSKEY 13 0 86400 20201202000000
        20181128000000 47005 .
        0EPW1ca+N/ZhZPKla77STG734cTeIOjUwq7eW0HsnOfudWmnCEVeco2wLLq9m
        nBT1dtNjIczvLG9pQTnOKUsHQ== )
</sourcecode>
      </section>
      <section anchor="tv-cname" numbered="true" removeInRFC="false" toc="include" pn="section-appendix.a.4">
        <name slugifiedName="name-_443_tcpwwwexampleorg-cname"><tt>_443._tcp.www.example.org</tt> CNAME</name>
        <sourcecode type="dns-rr" markers="false" pn="section-appendix.a.4-1">_443._tcp.www.example.org.  3600  IN  CNAME  (
        dane311.example.org. )
_443._tcp.www.example.org.  3600  IN  RRSIG  ( CNAME 13 5 3600
        20201202000000 20181128000000 56566 example.org.
        R0dUe6Rt4G+2ablrQH9Zw8j9NhBLMgNYTI5+H7nO8SNz5Nm8w0NZrXv3Qp7gx
        Qb/a90O696120NsYaZX2+ebBA== )
dane311.example.org.  3600  IN  TLSA  ( 3 1 1
        8bd1da95272f7fa4ffb24137fc0ed03aae67e5c4d8b3c50734e1050a7920b
        922 )
dane311.example.org.  3600  IN  RRSIG  ( TLSA 13 3 3600
        20201202000000 20181128000000 56566 example.org.
        f6TbTZTpu3h6MYpLkKQwWILAkYQ3EUY+Nsoa6any6yt+aeuunMUjw+IJB2QLm
        0x0PrD7m39JA3NUSkUp9riNNQ== )
example.org.  3600  IN  DNSKEY  ( 256 3 13
        NrbL6utGqIW1wrhhjeexdA6bMdD1lC1hj0Fnpevaa1AMyY2uy83TmoGnR996N
        UR5TlG4Zh+YPbbmUIixe4nS3w== ) ; Key ID = 56566
example.org.  3600  IN  DNSKEY  ( 257 3 13
        uspaqp17jsMTX6AWVgmbog/3Sttz+9ANFUWLn6qKUHr0BOqRuChQWj8jyYUUr
        Wy9txxesNQ9MkO4LUrFght1LQ== ) ; Key ID = 44384
example.org.  3600  IN  RRSIG  ( DNSKEY 13 2 3600
        20201202000000 20181128000000 44384 example.org.
        ttse9pYp9PSu0pJ+TOpIVFLWJ6NKOMWZX4Q/SlU6ZfaiKQc0Bg7Tut9+wPunk
        6OPPvyHjVXMAsvk0tqV0B+/ag== )
example.org.  86400  IN  DS  ( 44384 13 2 ec307e2efc8f0117ed96ab48a51
        3c8003e1d9121f1ff11a08b4cdd348d090aa6 )
example.org.  86400  IN  RRSIG  ( DS 13 2 86400 20201202000000
        20181128000000 9523 org.
        m86Xz0CEa2sWG40a0bS2kqLKPmIlyiVyDeoWXAq3djeGiPaikLuKORNzWXu62
        clpAfvZHx59Ackst4X+zXYpUA== )
org.  86400  IN  DNSKEY  ( 256 3 13
        fuLp60znhSSEr9HowILpTpyLKQdM6ixcgkTE0gqVdsLx+DSNHSc69o6fLWC0e
        HfWx7kzlBBoJB0vLrvsJtXJ6g== ) ; Key ID = 47417
org.  86400  IN  DNSKEY  ( 256 3 13
        zTHbb7JM627Bjr8CGOySUarsic91xZU3vvLJ5RjVix9YH6+iwpBXb6qfHyQHy
        mlMiAAoaoXh7BUkEBVgDVN8sQ== ) ; Key ID = 9523
org.  86400  IN  DNSKEY  ( 257 3 13
        Uf24EyNt51DMcLV+dHPInhSpmjPnqAQNUTouU+SGLu+lFRRlBetgw1bJUZNI6
        Dlger0VJTm0QuX/JVXcyGVGoQ== ) ; Key ID = 49352
org.  86400  IN  DNSKEY  ( 257 3 13
        0SZfoe8Yx+eoaGgyAGEeJax/ZBV1AuG+/smcOgRm+F6doNlgc3lddcM1MbTvJ
        HTjK6Fvy8W6yZ+cAptn8sQheg== ) ; Key ID = 12651
org.  86400  IN  RRSIG  ( DNSKEY 13 1 86400 20201202000000
        20181128000000 12651 org.
        Gq9wf+z3pasXXUwE210jYc0LhJnMAhcwXydnvkHtCVY6/0jUafHO4RksN84Zt
        us0pUgWngbT/OWXskdMYXZU4A== )
org.  86400  IN  RRSIG  ( DNSKEY 13 1 86400 20201202000000
        20181128000000 49352 org.
        VGEkEMWBJ2IbOpm2Z56Qxu2NGPcVUDWCbYRyk+Qk1+HzGtyd2qPEKkpgMs/0p
        vZEMj1YXD+dIqb2nUK9PGBAXw== )
org.  86400  IN  DS  ( 12651 13 2 3979a51f98bbf219fcaf4a4176e766dfa8f
        9db5c24a75743eb1e704b97a9fabc )
org.  86400  IN  DS  ( 49352 13 2 03d11a1aa114abbb8f708c3c0ff0db765fe
        f4a2f18920db5f58710dd767c293b )
org.  86400  IN  RRSIG  ( DS 13 1 86400 20201202000000
        20181128000000 31918 .
        adiFuP2UIulQw5Edsb/7WSPqr5nkRSTVXbZ2tkBeZRQcMjdCD3pyonWO5JPRV
        EemgaE357S4pX5D0tVZzeZJ6A== )
.  86400  IN  DNSKEY  ( 256 3 13
        zKz+DCWkNA/vuheiVPcGqsH40U84KZAlrMRIyozj9WHzf8PsFp/oR8j8vmjjW
        P98cbte4d8NvlGLxzbUzo3+FA== ) ; Key ID = 31918
.  86400  IN  DNSKEY  ( 256 3 13
        8wMZZ4lzHdyKZ4fv8kys/t3QMlgvEadbsbyqWrMhwddSXCZYGRrsAbPpireRW
        xbVcd1VtOrlFBcRDMTN0R0XEQ== ) ; Key ID = 2635
.  86400  IN  DNSKEY  ( 257 3 13
        yvX+VNTUjxZiGvtr060hVbrPV9H6rVusQtF9lIxCFzbZOJxMQBFmbqlc8Xclv
        Q+gDOXnFOTsgs/frMmxyGOtRg== ) ; Key ID = 47005
.  86400  IN  RRSIG  ( DNSKEY 13 0 86400 20201202000000
        20181128000000 47005 .
        0EPW1ca+N/ZhZPKla77STG734cTeIOjUwq7eW0HsnOfudWmnCEVeco2wLLq9m
        nBT1dtNjIczvLG9pQTnOKUsHQ== )
</sourcecode>
      </section>
      <section anchor="tv-dname" numbered="true" removeInRFC="false" toc="include" pn="section-appendix.a.5">
        <name slugifiedName="name-_443_tcpwwwexamplenet-dname"><tt>_443._tcp.www.example.net</tt> DNAME</name>
        <sourcecode type="dns-rr" markers="false" pn="section-appendix.a.5-1">example.net.  3600  IN  DNAME  example.com.
example.net.  3600  IN  RRSIG  ( DNAME 13 2 3600 20201202000000
        20181128000000 48085 example.net.
        o3uV5k5Ewp5fdrOZt0n4QuH+/Hpku2Lo3CzGRt9/MS2zZt2Qb/AXz435UFQBx
        OI/pDnjJcLSd/gBLtqR52WLMA== )
; _443._tcp.www.example.net.  3600  IN  CNAME  (
;         _443._tcp.www.example.com. )
_443._tcp.www.example.com.  3600  IN  TLSA  ( 3 1 1
        8bd1da95272f7fa4ffb24137fc0ed03aae67e5c4d8b3c50734e1050a7920b
        922 )
_443._tcp.www.example.com.  3600  IN  RRSIG  ( TLSA 13 5 3600
        20201202000000 20181128000000 1870 example.com.
        rqY69NnTf4CN3GBGQjKEJCLAMsRkUrXe0JW8IqDb5rQHHzxNqqPeEoi+2vI6S
        z2BhaswpGLVVuoijuVdzxYjmw== )
example.net.  3600  IN  DNSKEY  ( 257 3 13
        X9GHpJcS7bqKVEsLiVAbddHUHTZqqBbVa3mzIQmdp+5cTJk7qDazwH68Kts8d
        9MvN55HddWgsmeRhgzePz6hMg== ) ; Key ID = 48085
example.net.  3600  IN  RRSIG  ( DNSKEY 13 2 3600
        20201202000000 20181128000000 48085 example.net.
        CkwqgEt1p97oMa3w5LctIjKIuG5XVSapKrfwuHhb5p04fWXRMNsXasG/kd2F/
        wlmMWiq38gOQaYCLNm+cjQzpQ== )
example.net.  172800  IN  DS  ( 48085 13 2 7c1998ce683df60e2fa41460c4
        53f88f463dac8cd5d074277b4a7c04502921be )
example.net.  172800  IN  RRSIG  ( DS 13 2 172800
        20201202000000 20181128000000 10713 net.
        w0JxDeiBJZNlpCdxKtRENlqfTpSxcs6Vftscsyfo/hyeTPYcIt4yItDkYsYK+
        KQ6FYAVE4nisA3vDQoZVL4wow== )
net.  172800  IN  DNSKEY  ( 256 3 13
        061EoQs4sBcDsPiz17vt4nFSGLmXAGguqLStOesmKNCimi4/lw/vtyfqALuLF
        JiFjtCK3HMPi8HQ1jbGEwbGCA== ) ; Key ID = 10713
net.  172800  IN  DNSKEY  ( 257 3 13
        LkNCPE+v3S4MVnsOqZFhn8n2NSwtLYOZLZjjgVsAKgu4XZncaDgq1R/7ZXRO5
        oVx2zthxuu2i+mGbRrycAaCvA== ) ; Key ID = 485
net.  172800  IN  RRSIG  ( DNSKEY 13 1 172800 20201202000000
        20181128000000 485 net.
        031jXg06zSuDwI5zqYuYFJg1O5p+zy85csMXagvRxB9W2lL/wJRi6Gn9BcaCV
        RnDId5WR+yCADhsbKfSrrd9vQ== )
net.  86400  IN  DS  ( 485 13 2 ab25a2941aa7f1eb8688bb783b25587515a0c
        d8c247769b23adb13ca234d1c05 )
net.  86400  IN  RRSIG  ( DS 13 1 86400 20201202000000
        20181128000000 31918 .
        vOXoTjxggGTYKIwssQ3kpML0ag6D0Hcm+Syy7++4zT7gaFHfRH9a6uZekIWdb
        oss8y7q4onW4rxKdtw2S28hwQ== )
.  86400  IN  DNSKEY  ( 256 3 13
        zKz+DCWkNA/vuheiVPcGqsH40U84KZAlrMRIyozj9WHzf8PsFp/oR8j8vmjjW
        P98cbte4d8NvlGLxzbUzo3+FA== ) ; Key ID = 31918
.  86400  IN  DNSKEY  ( 256 3 13
        8wMZZ4lzHdyKZ4fv8kys/t3QMlgvEadbsbyqWrMhwddSXCZYGRrsAbPpireRW
        xbVcd1VtOrlFBcRDMTN0R0XEQ== ) ; Key ID = 2635
.  86400  IN  DNSKEY  ( 257 3 13
        yvX+VNTUjxZiGvtr060hVbrPV9H6rVusQtF9lIxCFzbZOJxMQBFmbqlc8Xclv
        Q+gDOXnFOTsgs/frMmxyGOtRg== ) ; Key ID = 47005
.  86400  IN  RRSIG  ( DNSKEY 13 0 86400 20201202000000
        20181128000000 47005 .
        0EPW1ca+N/ZhZPKla77STG734cTeIOjUwq7eW0HsnOfudWmnCEVeco2wLLq9m
        nBT1dtNjIczvLG9pQTnOKUsHQ== )
example.com.  3600  IN  DNSKEY  ( 257 3 13
        JnA1XgyJTZz+psWvbrfUWLV6ULqIJyUS2CQdhUH9VK35bslWeJpRzrlxCUs7s
        /TsSfZMaGWVvlsuieh5nHcXzA== ) ; Key ID = 1870
example.com.  3600  IN  RRSIG  ( DNSKEY 13 2 3600
        20201202000000 20181128000000 1870 example.com.
        nYisnu/26Sw1qmGuREa9o/fLgYuA4oNPt4+6PMBZoN0MS8Gjtli9NVRYeSIzt
        QHPGSpvRxTUC4tZi62z1UgGDw== )
example.com.  172800  IN  DS  ( 1870 13 2 e9b533a049798e900b5c29c90cd
        25a986e8a44f319ac3cd302bafc08f5b81e16 )
example.com.  172800  IN  RRSIG  ( DS 13 2 172800
        20201202000000 20181128000000 34327 com.
        sEAKvX4H6pJfN8nKcclB1NRcRSPOztx8omr4fCSHu6lp+uESP/Le4iF2sKukO
        J1hhWSB6jgubEVl17rGNOA/YQ== )
com.  172800  IN  DNSKEY  ( 256 3 13
        7IIE5Dol8jSMUqHTvOOiZapdEbQ9wqRxFi/zQcSdufUKLhpByvLpzSAQTqCWj
        3URIZ8L3Fa2gBLMOZUzZ1GQCw== ) ; Key ID = 34327
com.  172800  IN  DNSKEY  ( 257 3 13
        RbkcO+96XZmnp8jYIuM4lryAp3egQjSmBaSoiA7H76Tm0RLHPNPUxlVk+nQ0f
        Ic3I8xfZDNw8Wa0Pe3/g2QA/w== ) ; Key ID = 18931
com.  172800  IN  DNSKEY  ( 257 3 13
        szc7biLo5J4OHlkan1vZrF4aD4YYf+NHA/GAqdNslY9xxK9Izg68XHkqck4Rt
        DiVk37lNAQmgSlHbrGu0yOTkA== ) ; Key ID = 28809
com.  172800  IN  RRSIG  ( DNSKEY 13 1 172800 20201202000000
        20181128000000 18931 com.
        LJ4p5ORS2ViILwTotSlWixElqRXHY5tOdIuHlPWTdBGPMq3y40QNr1V+ZOyA5
        7LFdPKpcvb8BvhM+GqKWGBEsg== )
com.  172800  IN  RRSIG  ( DNSKEY 13 1 172800 20201202000000
        20181128000000 28809 com.
        sO+4X2N21yS6x8+dBVBzbRo9+55MM8n7+RUvdBuxRFVh6JaBlqDOC5LLkl7Ev
        mDXqz6KEhhQjT+aQWDt6WFHlA== )
com.  86400  IN  DS  ( 18931 13 2 20f7a9db42d0e2042fbbb9f9ea015941202
        f9eabb94487e658c188e7bcb52115 )
com.  86400  IN  DS  ( 28809 13 2 ad66b3276f796223aa45eda773e92c6d98e
        70643bbde681db342a9e5cf2bb380 )
com.  86400  IN  RRSIG  ( DS 13 1 86400 20201202000000
        20181128000000 31918 .
        nDiDlBjXEE/6AudhC++Hui1ckPcuAnGbjEASNoxA3ZHjlXRzL050UzePko5Pb
        vBKTf6pk8JRCqnfzlo2QY+WXA== )
</sourcecode>
      </section>
      <section anchor="tv-denial-nsec" numbered="true" removeInRFC="false" toc="include" pn="section-appendix.a.6">
        <name slugifiedName="name-_25_tcpsmtpexamplecom-nsec-"><tt>_25._tcp.smtp.example.com</tt> NSEC Denial of Existence</name>
        <sourcecode type="dns-rr" markers="false" pn="section-appendix.a.6-1">smtp.example.com.  3600  IN  NSEC  ( www.example.com. A AAAA
        RRSIG NSEC )
smtp.example.com.  3600  IN  RRSIG  ( NSEC 13 3 3600
        20201202000000 20181128000000 1870 example.com.
        rH/K4wghCOm4jpEHwQKiyZzvFIa7qpFySuKIGGetW4SE4O2Mh5jPxcEzf78Hf
        crlsQZmnAUlfmBNCygxAd7JNw== )
example.com.  3600  IN  DNSKEY  ( 257 3 13
        JnA1XgyJTZz+psWvbrfUWLV6ULqIJyUS2CQdhUH9VK35bslWeJpRzrlxCUs7s
        /TsSfZMaGWVvlsuieh5nHcXzA== ) ; Key ID = 1870
example.com.  3600  IN  RRSIG  ( DNSKEY 13 2 3600
        20201202000000 20181128000000 1870 example.com.
        nYisnu/26Sw1qmGuREa9o/fLgYuA4oNPt4+6PMBZoN0MS8Gjtli9NVRYeSIzt
        QHPGSpvRxTUC4tZi62z1UgGDw== )
example.com.  172800  IN  DS  ( 1870 13 2 e9b533a049798e900b5c29c90cd
        25a986e8a44f319ac3cd302bafc08f5b81e16 )
example.com.  172800  IN  RRSIG  ( DS 13 2 172800
        20201202000000 20181128000000 34327 com.
        sEAKvX4H6pJfN8nKcclB1NRcRSPOztx8omr4fCSHu6lp+uESP/Le4iF2sKukO
        J1hhWSB6jgubEVl17rGNOA/YQ== )
com.  172800  IN  DNSKEY  ( 256 3 13
        7IIE5Dol8jSMUqHTvOOiZapdEbQ9wqRxFi/zQcSdufUKLhpByvLpzSAQTqCWj
        3URIZ8L3Fa2gBLMOZUzZ1GQCw== ) ; Key ID = 34327
com.  172800  IN  DNSKEY  ( 257 3 13
        RbkcO+96XZmnp8jYIuM4lryAp3egQjSmBaSoiA7H76Tm0RLHPNPUxlVk+nQ0f
        Ic3I8xfZDNw8Wa0Pe3/g2QA/w== ) ; Key ID = 18931
com.  172800  IN  DNSKEY  ( 257 3 13
        szc7biLo5J4OHlkan1vZrF4aD4YYf+NHA/GAqdNslY9xxK9Izg68XHkqck4Rt
        DiVk37lNAQmgSlHbrGu0yOTkA== ) ; Key ID = 28809
com.  172800  IN  RRSIG  ( DNSKEY 13 1 172800 20201202000000
        20181128000000 18931 com.
        LJ4p5ORS2ViILwTotSlWixElqRXHY5tOdIuHlPWTdBGPMq3y40QNr1V+ZOyA5
        7LFdPKpcvb8BvhM+GqKWGBEsg== )
com.  172800  IN  RRSIG  ( DNSKEY 13 1 172800 20201202000000
        20181128000000 28809 com.
        sO+4X2N21yS6x8+dBVBzbRo9+55MM8n7+RUvdBuxRFVh6JaBlqDOC5LLkl7Ev
        mDXqz6KEhhQjT+aQWDt6WFHlA== )
com.  86400  IN  DS  ( 18931 13 2 20f7a9db42d0e2042fbbb9f9ea015941202
        f9eabb94487e658c188e7bcb52115 )
com.  86400  IN  DS  ( 28809 13 2 ad66b3276f796223aa45eda773e92c6d98e
        70643bbde681db342a9e5cf2bb380 )
com.  86400  IN  RRSIG  ( DS 13 1 86400 20201202000000
        20181128000000 31918 .
        nDiDlBjXEE/6AudhC++Hui1ckPcuAnGbjEASNoxA3ZHjlXRzL050UzePko5Pb
        vBKTf6pk8JRCqnfzlo2QY+WXA== )
.  86400  IN  DNSKEY  ( 256 3 13
        zKz+DCWkNA/vuheiVPcGqsH40U84KZAlrMRIyozj9WHzf8PsFp/oR8j8vmjjW
        P98cbte4d8NvlGLxzbUzo3+FA== ) ; Key ID = 31918
.  86400  IN  DNSKEY  ( 256 3 13
        8wMZZ4lzHdyKZ4fv8kys/t3QMlgvEadbsbyqWrMhwddSXCZYGRrsAbPpireRW
        xbVcd1VtOrlFBcRDMTN0R0XEQ== ) ; Key ID = 2635
.  86400  IN  DNSKEY  ( 257 3 13
        yvX+VNTUjxZiGvtr060hVbrPV9H6rVusQtF9lIxCFzbZOJxMQBFmbqlc8Xclv
        Q+gDOXnFOTsgs/frMmxyGOtRg== ) ; Key ID = 47005
.  86400  IN  RRSIG  ( DNSKEY 13 0 86400 20201202000000
        20181128000000 47005 .
        0EPW1ca+N/ZhZPKla77STG734cTeIOjUwq7eW0HsnOfudWmnCEVeco2wLLq9m
        nBT1dtNjIczvLG9pQTnOKUsHQ== )
</sourcecode>
      </section>
      <section anchor="tv-denial-nsec3" numbered="true" removeInRFC="false" toc="include" pn="section-appendix.a.7">
        <name slugifiedName="name-_25_tcpsmtpexampleorg-nsec3"><tt>_25._tcp.smtp.example.org</tt> NSEC3 Denial of Existence</name>
        <sourcecode type="dns-rr" markers="false" pn="section-appendix.a.7-1">vkv62jbv85822q8rtmfnbhfnmnat9ve3.example.org.  3600  IN  NSEC3  (
        1 0 1 - 93u63bg57ppj6649al2n31l92iedkjd6 A AAAA RRSIG )
vkv62jbv85822q8rtmfnbhfnmnat9ve3.example.org.  3600  IN  RRSIG  (
        NSEC3 13 3 3600 20201202000000 20181128000000 56566
        example.org.
        wn3cePVdc5VPPniYzGp+1CBPOY2m83/A3cjnAb7FTZuwL45B25fwVUyjKQksh
        gQeV5KgP1cdvPt1BEowKqK4Sw== )
dlm7rss9pejqnh0ev6h7k1ikqqcl5mae.example.org.  3600  IN  NSEC3  (
        1 0 1 - t6lf7uuoi0qofq0nvdjroavo46pp20im RRSIG TLSA )
dlm7rss9pejqnh0ev6h7k1ikqqcl5mae.example.org.  3600  IN  RRSIG  (
        NSEC3 13 3 3600 20201202000000 20181128000000 56566
        example.org.
        guUyy9LIZlYb0FZttAdYJGrFNKpKu91Tm+dPOz98rnpwIlwwvLifXIvIl90nE
        X38cWzEQOpreJu3t4WAfPsxdg== )
a73bi8coh6dvf1arqdeuogf95r0828mk.example.org.  3600  IN  NSEC3  (
        1 0 1 - c1p0lp7l1l8gdn0jl13pp1o41h35untj CNAME RRSIG )
a73bi8coh6dvf1arqdeuogf95r0828mk.example.org.  3600  IN  RRSIG  (
        NSEC3 13 3 3600 20201202000000 20181128000000 56566
        example.org.
        ePBUuWdj8Bc+/41gHBm2Bx/IK/j/Q4W7A5uTgSj/0Sd57mP/NTWRZq3p8yBNe
        FPC2mBJ2oWQFi6/V9dmyiBh2A== )
example.org.  3600  IN  DNSKEY  ( 256 3 13
        NrbL6utGqIW1wrhhjeexdA6bMdD1lC1hj0Fnpevaa1AMyY2uy83TmoGnR996N
        UR5TlG4Zh+YPbbmUIixe4nS3w== ) ; Key ID = 56566
example.org.  3600  IN  DNSKEY  ( 257 3 13
        uspaqp17jsMTX6AWVgmbog/3Sttz+9ANFUWLn6qKUHr0BOqRuChQWj8jyYUUr
        Wy9txxesNQ9MkO4LUrFght1LQ== ) ; Key ID = 44384
example.org.  3600  IN  RRSIG  ( DNSKEY 13 2 3600
        20201202000000 20181128000000 44384 example.org.
        ttse9pYp9PSu0pJ+TOpIVFLWJ6NKOMWZX4Q/SlU6ZfaiKQc0Bg7Tut9+wPunk
        6OPPvyHjVXMAsvk0tqV0B+/ag== )
example.org.  86400  IN  DS  ( 44384 13 2 ec307e2efc8f0117ed96ab48a51
        3c8003e1d9121f1ff11a08b4cdd348d090aa6 )
example.org.  86400  IN  RRSIG  ( DS 13 2 86400 20201202000000
        20181128000000 9523 org.
        m86Xz0CEa2sWG40a0bS2kqLKPmIlyiVyDeoWXAq3djeGiPaikLuKORNzWXu62
        clpAfvZHx59Ackst4X+zXYpUA== )
org.  86400  IN  DNSKEY  ( 256 3 13
        fuLp60znhSSEr9HowILpTpyLKQdM6ixcgkTE0gqVdsLx+DSNHSc69o6fLWC0e
        HfWx7kzlBBoJB0vLrvsJtXJ6g== ) ; Key ID = 47417
org.  86400  IN  DNSKEY  ( 256 3 13
        zTHbb7JM627Bjr8CGOySUarsic91xZU3vvLJ5RjVix9YH6+iwpBXb6qfHyQHy
        mlMiAAoaoXh7BUkEBVgDVN8sQ== ) ; Key ID = 9523
org.  86400  IN  DNSKEY  ( 257 3 13
        Uf24EyNt51DMcLV+dHPInhSpmjPnqAQNUTouU+SGLu+lFRRlBetgw1bJUZNI6
        Dlger0VJTm0QuX/JVXcyGVGoQ== ) ; Key ID = 49352
org.  86400  IN  DNSKEY  ( 257 3 13
        0SZfoe8Yx+eoaGgyAGEeJax/ZBV1AuG+/smcOgRm+F6doNlgc3lddcM1MbTvJ
        HTjK6Fvy8W6yZ+cAptn8sQheg== ) ; Key ID = 12651
org.  86400  IN  RRSIG  ( DNSKEY 13 1 86400 20201202000000
        20181128000000 12651 org.
        Gq9wf+z3pasXXUwE210jYc0LhJnMAhcwXydnvkHtCVY6/0jUafHO4RksN84Zt
        us0pUgWngbT/OWXskdMYXZU4A== )
org.  86400  IN  RRSIG  ( DNSKEY 13 1 86400 20201202000000
        20181128000000 49352 org.
        VGEkEMWBJ2IbOpm2Z56Qxu2NGPcVUDWCbYRyk+Qk1+HzGtyd2qPEKkpgMs/0p
        vZEMj1YXD+dIqb2nUK9PGBAXw== )
org.  86400  IN  DS  ( 12651 13 2 3979a51f98bbf219fcaf4a4176e766dfa8f
        9db5c24a75743eb1e704b97a9fabc )
org.  86400  IN  DS  ( 49352 13 2 03d11a1aa114abbb8f708c3c0ff0db765fe
        f4a2f18920db5f58710dd767c293b )
org.  86400  IN  RRSIG  ( DS 13 1 86400 20201202000000
        20181128000000 31918 .
        adiFuP2UIulQw5Edsb/7WSPqr5nkRSTVXbZ2tkBeZRQcMjdCD3pyonWO5JPRV
        EemgaE357S4pX5D0tVZzeZJ6A== )
.  86400  IN  DNSKEY  ( 256 3 13
        zKz+DCWkNA/vuheiVPcGqsH40U84KZAlrMRIyozj9WHzf8PsFp/oR8j8vmjjW
        P98cbte4d8NvlGLxzbUzo3+FA== ) ; Key ID = 31918
.  86400  IN  DNSKEY  ( 256 3 13
        8wMZZ4lzHdyKZ4fv8kys/t3QMlgvEadbsbyqWrMhwddSXCZYGRrsAbPpireRW
        xbVcd1VtOrlFBcRDMTN0R0XEQ== ) ; Key ID = 2635
.  86400  IN  DNSKEY  ( 257 3 13
        yvX+VNTUjxZiGvtr060hVbrPV9H6rVusQtF9lIxCFzbZOJxMQBFmbqlc8Xclv
        Q+gDOXnFOTsgs/frMmxyGOtRg== ) ; Key ID = 47005
.  86400  IN  RRSIG  ( DNSKEY 13 0 86400 20201202000000
        20181128000000 47005 .
        0EPW1ca+N/ZhZPKla77STG734cTeIOjUwq7eW0HsnOfudWmnCEVeco2wLLq9m
        nBT1dtNjIczvLG9pQTnOKUsHQ== )
</sourcecode>
      </section>
      <section anchor="tv-insecure-nsec3-optout" numbered="true" removeInRFC="false" toc="include" pn="section-appendix.a.8">
        <name slugifiedName="name-_443_tcpwwwinsecureexample-"><tt>_443._tcp.www.insecure.example</tt> NSEC3 Opt-Out Insecure Delegation</name>
        <sourcecode type="dns-rr" markers="false" pn="section-appendix.a.8-1">c1kgc91hrn9nqi2qjh1ms78ki8p7s75o.example.  43200  IN  NSEC3  (
        1 1 1 - shn05itmoa45mmnv74lc4p0nnfmimtjt NS SOA RRSIG DNSKEY
        NSEC3PARAM )
c1kgc91hrn9nqi2qjh1ms78ki8p7s75o.example.  43200  IN  RRSIG  (
        NSEC3 13 2 43200 20201202000000 20181128000000 15903
        example.
        pW16gQOLhLpKYgXpGt4XB4o92W/QoPYyG5CjQ+t+g7LBVcCiPQv8ars1j9UOg
        RpXUsJhZBDax2dfDhK7zOk7ow== )
shn05itmoa45mmnv74lc4p0nnfmimtjt.example.  43200  IN  NSEC3  (
        1 1 1 - a3ib1dvf1bdtfmd91usrdem5fiiepi6p NS DS RRSIG )
shn05itmoa45mmnv74lc4p0nnfmimtjt.example.  43200  IN  RRSIG  (
        NSEC3 13 2 43200 20201202000000 20181128000000 15903
        example.
        5Aq//A8bsWNwcXbT91pMX2Oqf8VpJQRjqH4D2yZElW00wKmt85mhgu2qYPrvH
        QwGEB4STMz2Nefq01/GY6NHKg== )
example.  432000  IN  DNSKEY  ( 257 3 13
        yrkqXSbVwXOoUxCjr/E9yg8XUzbZNlwPllVsoUPd73TLOnBQQ+03Qw4/k+Nme
        /66WIw+ZTlHYcTNalxiGYm0uQ== ) ; Key ID = 15903
example.  432000  IN  RRSIG  ( DNSKEY 13 1 432000
        20201202000000 20181128000000 15903 example.
        wwEo3ri6JBuCqx5b33w8axFWOhIen1l+/mm0Isyc9FciuLhBiP+IqSgt+Igc8
        9nR8zRpJpo1D6XR/qJxZgnfaA== )
example.  86400  IN  DS  ( 15903 13 2 7e0ebaf1cc0d309d4a73ca7d711719d
        d940f4da87b3d72865167650fc73ea577 )
example.  86400  IN  RRSIG  ( DS 13 1 86400 20201202000000
        20181128000000 31918 .
        B5vx4zZaS+bOYfz0PzpaPfk9VxxBvYbGjIvGhpUZV3diXzfCguXxN4JIT1Sz8
        eJX6BYT5QPIrbG/N35U1sIskw== )
.  86400  IN  DNSKEY  ( 256 3 13
        zKz+DCWkNA/vuheiVPcGqsH40U84KZAlrMRIyozj9WHzf8PsFp/oR8j8vmjjW
        P98cbte4d8NvlGLxzbUzo3+FA== ) ; Key ID = 31918
.  86400  IN  DNSKEY  ( 256 3 13
        8wMZZ4lzHdyKZ4fv8kys/t3QMlgvEadbsbyqWrMhwddSXCZYGRrsAbPpireRW
        xbVcd1VtOrlFBcRDMTN0R0XEQ== ) ; Key ID = 2635
.  86400  IN  DNSKEY  ( 257 3 13
        yvX+VNTUjxZiGvtr060hVbrPV9H6rVusQtF9lIxCFzbZOJxMQBFmbqlc8Xclv
        Q+gDOXnFOTsgs/frMmxyGOtRg== ) ; Key ID = 47005
.  86400  IN  RRSIG  ( DNSKEY 13 0 86400 20201202000000
        20181128000000 47005 .
        0EPW1ca+N/ZhZPKla77STG734cTeIOjUwq7eW0HsnOfudWmnCEVeco2wLLq9m
        nBT1dtNjIczvLG9pQTnOKUsHQ== )
</sourcecode>
      </section>
    </section>
    <section anchor="acknowledgments" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-acknowledgments">Acknowledgments</name>
      <t indent="0" pn="section-appendix.b-1">Many thanks to <contact fullname="Adam Langley"/> for laying the groundwork for this
extension in <xref target="I-D.agl-dane-serializechain" format="default" sectionFormat="of" derivedContent="SERIALIZECHAIN"/>. The original idea is his,
but our acknowledgment in no way implies his endorsement.  This
document also benefited from discussions with and review from the
following people:  <contact fullname="Daniel Kahn Gillmor"/>,  <contact fullname="Jeff Hodges"/>,  <contact fullname="Allison Mankin"/>,
 <contact fullname="Patrick McManus"/>,  <contact fullname="Rick van Rein"/>,  <contact fullname="Ilari Liusvaara"/>,  <contact fullname="Eric Rescorla"/>,  <contact fullname="Gowri Visweswaran"/>,  <contact fullname="Duane Wessels"/>,  <contact fullname="Nico Williams"/>, and  <contact fullname="Richard Barnes"/>.</t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.c">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author initials="V." surname="Dukhovni" fullname="Viktor Dukhovni">
        <organization showOnFrontPage="true">Two Sigma</organization>
        <address>
          <postal>
</postal>
          <email>ietf-dane@dukhovni.org</email>
        </address>
      </author>
      <author initials="S." surname="Huque" fullname="Shumon Huque">
        <organization showOnFrontPage="true">Salesforce</organization>
        <address>
          <postal>
            <extaddr>3rd Floor</extaddr>
            <street>415 Mission Street</street>
            <city>San Francisco</city>
            <region>CA</region>
            <code>94105</code>
            <country>United States of America</country>
          </postal>
          <email>shuque@gmail.com</email>
        </address>
      </author>
      <author initials="W." surname="Toorop" fullname="Willem Toorop">
        <organization showOnFrontPage="true">NLnet Labs</organization>
        <address>
          <postal>
            <street>Science Park 400</street>
            <city>Amsterdam</city>
            <code>1098 XH</code>
            <country>Netherlands</country>
          </postal>
          <email>willem@nlnetlabs.nl</email>
        </address>
      </author>
      <author initials="P." surname="Wouters" fullname="Paul Wouters">
        <organization showOnFrontPage="true">Aiven</organization>
        <address>
          <postal>
            <city>Toronto</city>
            <country>Canada</country>
          </postal>
          <email>paul.wouters@aiven.io</email>
        </address>
      </author>
      <author initials="M." surname="Shore" fullname="Melinda Shore">
        <organization showOnFrontPage="true">Fastly</organization>
        <address>
          <postal>
</postal>
          <email>mshore@fastly.com</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
