<?xml version="1.0" encoding="utf-8"?>
<!-- name="GENERATOR" content="github.com/mmarkdown/mmark Mmark Markdown Processor - mmark.miek.nl" -->

<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">

<rfc version="3" ipr="trust200902" docName="draft-dukhovni-tls-dnssec-chain-08" number="9102" submissionType="independent" category="exp" updates="" obsoletes="" tocInclude="true" symRefs="true" sortRefs="true" xml:lang="en" xmlns:xi="http://www.w3.org/2001/XInclude">

<front>
<title abbrev="tls-dnssec-chain">TLS abbrev="TLS DNSSEC Chain">TLS DNSSEC Chain Extension</title><seriesInfo value="draft-dukhovni-tls-dnssec-chain-08" stream="independent" status="experimental" name="Internet-Draft"></seriesInfo> Extension</title>
<seriesInfo name="RFC" value="9102"/>
<author initials="V." surname="Dukhovni" fullname="Viktor Dukhovni"><organization>Two Sigma</organization><address><postal><street></street> Dukhovni">
<organization>Two Sigma</organization><address><postal>
</postal><email>ietf-dane@dukhovni.org</email>
</address></author>
<author initials="S." surname="Huque" fullname="Shumon Huque"><organization>Salesforce</organization><address><postal><street>415 Huque">
<organization>Salesforce</organization>
<address>
<postal>
<extaddr>3rd Floor</extaddr>
<street>415 Mission Street, 3rd Floor</street> Street</street>
<city>San Francisco</city>
<code>CA 94105</code>
<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>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>Aiven</organization><address><postal><street></street> Wouters"><organization>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>Fastly</organization><address><postal><street></street> Shore"><organization>Fastly</organization><address><postal>
</postal><email>mshore@fastly.com</email>
</address></author>
<date year="2021" month="June" day="10"></date>
<area>Security</area>
<workgroup></workgroup> month="July" />

<abstract>
<t>This document describes an experimental TLS extension for the in-band
transport of the complete set of DNSSEC validatable records that can be validated by DNSSEC and that are needed to
perform DANE authentication DNS-Based Authentication of Named Entities (DANE) of a TLS server without server. This extension obviates the need to
perform separate separate, out-of-band DNS lookups.  When the requisite DNS
records do not exist, the extension conveys a validatable denial of
existence proof.</t> denial-of-existence proof that can be validated.</t>
<t>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>

</front>

<middle>

<section anchor="introduction"><name>Introduction</name>
<t>This document describes an experimental TLS <xref target="RFC5246"></xref><xref target="RFC5246"></xref> <xref target="RFC8446"></xref>
extension for in-band transport of the complete set of resource records (RRs) validated by DNSSEC <xref target="RFC4033"></xref><xref target="RFC4034"></xref><xref target="RFC4035"></xref> validated Resource Records (RRs) that
enable target="RFC4033"></xref> <xref target="RFC4034"></xref> <xref target="RFC4035"></xref>. This extension enables a TLS client to perform DANE Authentication authentication <xref target="RFC6698"></xref> <xref target="RFC6698"></xref><xref target="RFC7671"></xref>
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="NLNETLABS"></xref>, target="DISCOVERY"></xref> or may incur undesirable additional latency.</t>
<t>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 resource record set (RRset), (RRset) or
authenticated denial of existence of such an RRset (as described in
<xref target="denial_of_existence"></xref>). If the server supports this extension 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"></xref>. The client then
authenticates the chain using a preconfigured DNSSEC trust anchor.</t>
<t>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 Public-Key authentication based on Public Key Infrastructure X.509 (PKIX, sometimes called
WebPKI) based authentication 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 Denial-of-existence records are also used by
the TLS client to clear extension pins that are no longer relevant extension pins, relevant, as described in
<xref target="pinning"></xref>.</t>
<t>This extension supports DANE authentication of either X.509
certificates or raw public keys keys, as described in the DANE
specification <xref target="RFC6698"></xref><xref target="RFC6698"></xref> <xref target="RFC7671"></xref> and <xref target="RFC7250"></xref>.</t>
<t>This extension also mitigates against an unknown key share (UKS)
attack <xref target="I-D.barnes-dane-uks"></xref> when using raw public keys, keys since the
server commits to its DNS name (normally found in its certificate)
via the content of the returned TLSA RRset.</t>
<t>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"><name>Scope of the experiment</name> Experiment</name>
<t>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"></xref>.
In fact, one of the authentication methods for DNS over TLS <em>is</em> the
mechanism described in this document, as specified in Section 8.2.2
of <xref target="RFC8310"></xref>.</t> target="RFC8310" section="8.2.2" sectionFormat="of"></xref>.</t>
<t>The need for this mechanism when using DANE to authenticate a DNS over TLS 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 end-points endpoints with a working DNSSEC
resolver in order for them to use the DANE authentication of the TLS
service. Therefore Therefore, we invite other TLS services to try out this
mechanism as well.</t>
<t>In the TLS working group, Working Group, concerns have been raised that the pinning
technique as described in <xref target="pinning"></xref> would complicate deployability
of the TLS DNSSEC Chain chain extension.  The goal of the experiment is to
study these complications in real world real-world deployments.  This experiment
hopefully will give the TLS working group Working Group some insight into whether
or not this is a problem.</t>
<t>If the experiment is successful, it is expected that the findings of
the experiment will result in an updated document for standards track Standards Track
approval.</t>
</section>

<section anchor="requirements-notation"><name>Requirements Notation</name>
<t>The
        <t>
    The key words "MUST", "MUST NOT", "REQUIRED",
"SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT",
"RECOMMENDED", "NOT RECOMMENDED", "MAY", "<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
"OPTIONAL" "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
    described in
BCP 14 BCP&nbsp;14 <xref target="RFC2119"></xref> target="RFC2119"/> <xref target="RFC8174"></xref> target="RFC8174"/>
    when, and only when, they appear in all capitals, as shown here.</t> here.
        </t>

</section>
</section>

<section anchor="dnssec-authentication-chain-extension"><name>DNSSEC Authentication Chain Extension</name>

<section anchor="protocol-tls-1-2"><name>Protocol, TLS 1.2</name>
<t>A client MAY <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 MUST <bcp14>MUST</bcp14> also
send the Server Name Identification (SNI, (SNI) extension <xref target="RFC6066"></xref>)
extension. target="RFC6066"></xref>.
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>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 MUST <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
hostname, or the port number is unsupported, the server's extended
ServerHello message MUST NOT <bcp14>MUST NOT</bcp14> include the <tt>dnssec_chain</tt> extension.</t>
<t>Otherwise, the server's extended ServerHello message MUST <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
example, due to a misconfiguration or expired chain - -- the server MUST <bcp14>MUST</bcp14>
omit the extension rather than send an incomplete chain. Clients that
are expecting this extension MUST <bcp14>MUST</bcp14> interpret this as a downgrade
attack and MUST <bcp14>MUST</bcp14> abort the TLS connection.  Therefore, servers MUST <bcp14>MUST</bcp14> send
denial of existence proofs,
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 extension, it will not return any authentication
chain.</t>
<t>The set of supported combinations of a port number and SNI name may be
configured explicitly by server administrators, 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>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, translation or perhaps a result of a redirect via HTTPS
or SVCB records (both defined in <xref target="I-D.ietf-dnsop-svcb-https"></xref>).</t>
<t>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, 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 MUST <bcp14>MUST</bcp14>
be based on the original SNI name and port and MUST NOT <bcp14>MUST NOT</bcp14> be taken from
the encountered HTTPS or SVCB record.

The client supporting this document
and HTTPS / or SVCB records, MUST 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 MUST <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"><name>Protocol, TLS 1.3</name>
<t>In TLS 1.3 <xref target="RFC8446"></xref>, 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 end-entity certificate being validated, validated rather than to
the extended ServerHello message.</t>
<t>The extension protocol behavior otherwise follows that specified for
TLS version 1.2 <xref target="RFC5246"></xref>.</t>
</section>

<section anchor="auth_chain_data"><name>DNSSEC Authentication Chain Data</name>
<t>The <tt>extension_data</tt> field of the client's <tt>dnssec_chain</tt> extension
MUST
<bcp14>MUST</bcp14> contain the server's 16-bit TCP port number in network
(big-endian) byte order:</t>

<artwork>
<sourcecode>    struct {
        uint16 PortNumber;
    } DnssecChainExtension;
</artwork>
</sourcecode>
<t>The <tt>extension_data</tt> field of the server's <tt>dnssec_chain</tt> extension
MUST
<bcp14>MUST</bcp14> contain a DNSSEC Authentication Chain authentication chain encoded in the following
form:</t>

<artwork>

<sourcecode>    struct {
        uint16 ExtSupportLifetime;
        opaque AuthenticationChain&amp;lt;1..2^16-1&amp;gt; AuthenticationChain&lt;1..2^16-1&gt;
    } DnssecChainExtension;
</artwork>
</sourcecode>
<t>The ExtSupportLifetime value is the number of hours for which 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"></xref>.</t>
<t>The AuthenticationChain is composed of a sequence of uncompressed
wire format DNS RRs (including all requisite RRSIG RRs <xref target="RFC4034"></xref> RRs) target="RFC4034"></xref>)
in no particular order.  The format of the Resource Record resource record is
described in <xref target="RFC1035"></xref>, Section 3.2.1.</t> target="RFC1035" sectionFormat="comma" section="3.2.1"></xref>.</t>

<artwork>    RR = { owner, type, class, TTL, RDATA length, RDATA }
</artwork>
<t>The order of returned RRs is unspecified unspecified, and a TLS client MUST NOT <bcp14>MUST NOT</bcp14>
assume any ordering of RRs.</t>

<t>Use of native 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>The returned RRsets MUST <bcp14>MUST</bcp14> contain either the TLSA RRset or else the
associated denial of existence denial-of-existence proof of the configured (and requested)
SNI name and port. In either case, the chain of RRsets MUST <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 root zone
or another trust anchor mutually configured by the TLS server and client.</t>
<t>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 MUST <bcp14>MUST</bcp14> be included along with their RRSIGs.</t>
<t>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>In the case of a denial of existence denial-of-existence response, the authentication
chain MUST <bcp14>MUST</bcp14> include all DNSSEC signed records DNSSEC-signed records, starting with those from the trust-anchor
zone trust anchor zone, that chain together to reach a proof of either the non-existence either:</t>
<ul empty="false">
<li>the nonexistence of the TLSA records (possibly redirected
via aliases) TLSA records or else of an or</li><li>an insecure delegation above or
at the (possibly redirected) owner name of the requested TLSA RRset.</t> RRset.</li></ul>
<t>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>The returned chain SHOULD <bcp14>SHOULD</bcp14> also include the DNSKEY RRSets 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"></xref> to
update their configured trust anchors.</t>
<t>Barring prior knowledge of particular trust anchors that the server
shares with its clients, the chain constructed by the server MUST <bcp14>MUST</bcp14> be
extended as close 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>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> <tt>com</tt> and <tt>example.com.</tt> <tt>example.com</tt> (record data are omitted here
for brevity):</t>

<artwork>_443._tcp.www.example.com.

<sourcecode type="dns-rr">_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)
</artwork>
</sourcecode>
<t>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 non-existence nonexistence of both the requested RRset and any
potentially relevant wildcard records.</t>

<artwork>www.example.com.

<sourcecode type="dns-rr">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)
</artwork>
</sourcecode>
<t>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"></xref>
records
with opt-out.</t>

<artwork>;

<sourcecode type="dns-rr">; 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)
</artwork>
</sourcecode>

<section anchor="denial_of_existence"><name>Authenticated Denial of Existence</name>
<t>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 MUST <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 MUST <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 CA's.</t> certificate authorities (CAs).</t>
<t>Authenticated denial chains include NSEC or NSEC3 records that
demonstrate one of the following facts:</t>

<ul>
<li><t>The TLSA record (after any DNSSEC validated DNSSEC-validated alias redirection)
does not exist.</t>
</li>
<li><t>There is no signed delegation to a DNS zone which that is either an
ancestor of, of or the same as, as the TLSA record name (after any
DNSSEC validated
DNSSEC-validated alias redirection).</t>
</li>
</ul>
</section>
</section>
</section>

<section anchor="construction"><name>Construction of Serialized Authentication Chains</name>
<t>This section describes a possible procedure for the server to use to
build the serialized DNSSEC chain.</t>
<t>When the goal is to perform DANE authentication <xref target="RFC6698"></xref><xref target="RFC6698"></xref> <xref target="RFC7671"></xref>
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>The domain name of the server MUST <bcp14>MUST</bcp14> be that included in the TLS
<tt>server_name</tt> (SNI) extension <xref target="RFC6066"></xref>. If the server
does not recognize the SNI name as one if of its own names, names but wishes
to proceed with the handshake rather than to abort the connection,
the server MUST NOT <bcp14>MUST NOT</bcp14> send a <tt>dnssec_chain</tt> extension to the client.</t>
<t>The name in the client's SNI extension MUST NOT <bcp14>MUST NOT</bcp14> be CNAME-expanded CNAME expanded by the
server. The TLSA base domain (Section 3 of <xref target="RFC6698"></xref>) SHALL (<xref target="RFC6698" sectionFormat="of" section="3"></xref>) <bcp14>SHALL</bcp14> be the
hostname from the client's SNI extension extension, and the guidance in Section
7 of <xref target="RFC7671"></xref> target="RFC7671" sectionFormat="of" section="7"></xref> does not apply.  See <xref target="virtual"></xref> for further
discussion.</t>
<t>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"></xref>.  The port number is taken from the
client's <tt>dnssec_chain</tt> extension.  The transport name is "tcp" for TLS
servers,
servers and "udp" for DTLS servers.  The port number label is the
left-most
leftmost label, followed by the transport name label, followed by the
server domain name (from SNI).</t>
<t>The components of the authentication chain are typically built by
starting at the target record set and its corresponding RRSIG.  Then RRSIG, then
traversing the DNS tree upwards towards the trust anchor zone
(normally the DNS root). For each zone cut, the DNSKEY and DNSKEY, DS RRsets RRsets,
and their signatures are added. However, see <xref target="auth_chain_data"></xref> for
specific processing needed for aliases. If DNS response messages
contain any domain names utilizing name compression <xref target="RFC1035"></xref>, then
they MUST <bcp14>MUST</bcp14> be uncompressed prior to inclusion in the chain.</t>
<t>Implementations of EDNS Chain Query Requests CHAIN query requests as specified in
<xref target="RFC7901"></xref> may offer an easier way to obtain all of the chain data
in one transaction with an upstream DNSSEC aware DNSSEC-aware recursive server.</t>
</section>

<section anchor="sec_caching"><name>Caching and Regeneration of the Authentication Chain</name>
<t>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 SHOULD <bcp14>SHOULD</bcp14> cache and reuse it in multiple TLS connection handshakes.
However, it SHOULD <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 (eg (e.g., 0 up to a
few seconds), the server MAY <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 re-use reuse it for more than a single
waiting TLS client before needing to rebuild the authentication chain.</t>
</section>

<section anchor="sec_caching_exp"><name>Expired signatures Signatures in the Authentication Chain</name>
<t>A server MAY <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 encountered nevertheless, nevertheless encountered, the server
MAY
<bcp14>MAY</bcp14> lower the TTL to prevent serving expired RRSIGs if possible. If the
signatures are already expired, the server MUST <bcp14>MUST</bcp14> still include these records
into
in the authentication chain.

This allows the TLS client to either support a grace period for staleness, staleness or allows the TLS client to give a detailed error, either as a log
   message or a message to a potential interactive user of the TLS connection. The TLS client SHOULD <bcp14>SHOULD</bcp14> handle expired RRSIGs similar similarly to how it
handles expired PKIX certificates.</t>
</section>

<section anchor="sec_verification"><name>Verification</name>
<t>A TLS client performing DANE based DANE-based verification might not need to use
this extension.  For example, the TLS client could perform native DNS
lookups and perform DANE verification without this extension. Or extension, or it
could fetch authentication chains via another protocol.

If the TLS
client already possesses a valid TLSA record, it MAY omit using <bcp14>MAY</bcp14> bypass use of this
extension. However, if it includes this extension, it MUST <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"></xref>.</t>
<t>A TLS client making use of this specification, and which specification that receives a
valid DNSSEC authentication chain extension from a TLS server, MUST 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"></xref><xref target="RFC4035"></xref> <xref target="RFC5155"></xref>.  This mechanism is
sometimes implemented in a DNSSEC validation engine or library.</t>
<t>If the authentication chain validates, the TLS client then performs DANE
authentication of the server according to the DANE TLS protocol
<xref target="RFC6698"></xref><xref target="RFC6698"></xref> <xref target="RFC7671"></xref>.</t>
<t>Clients MAY <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 MUST NOT <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>Note that when a client and server perform TLS session resumption 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"><name>Extension Pinning</name>
<t>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 a validatable an
extension reply.</t> reply that can be validated.</t>
<t>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, view but
one that
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>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) commit 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 MUST <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>Any existing extension pin for the server instance (name and port)
MUST
<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 denial-of-existence proof via another method, such as through
direct DNS queries.  Based on the TLS client's local policy, it MAY <bcp14>MAY</bcp14>
then terminate the connection or MAY <bcp14>MAY</bcp14> continue using PKIX based PKIX-based
server authentication.</t>
<t>Extension pins MUST <bcp14>MUST</bcp14> also be cleared upon the completion of a DANE
authenticated DANE-authenticated handshake with a server that returns a <tt>dnssec_chain</tt>
extension with a zero ExtSupportLifetime.</t>
<t>Upon completion of a full fully validated handshake with a server that
returns a <tt>dnssec_chain</tt> extension with a non-zero ExtSupport lifetime,
the client MUST <bcp14>MUST</bcp14> update any existing pin lifetime for the service
(name and port) to a value that is no not longer than that indicated by
the server. The client MAY, <bcp14>MAY</bcp14>, subject to local policy, create a
previously non-existent nonexistent pin, again for a lifetime that is not longer
than that indicated by the server.</t>
<t>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 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>Clients MAY <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"></xref>, only PKIX-EE(1) and PKIX-TA(0) PKIX-TA(0),
or all four.  Clients that implement DANE-EE(3) and DANE-TA(2) MUST <bcp14>MUST</bcp14>
implement the relevant updates in <xref target="RFC7671"></xref>.</t>
<t>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 MUST <bcp14>MUST</bcp14> use the extension for the associated name and
port to obtain this information from the TLS server.

This TLS client
then MUST <bcp14>MUST</bcp14> require that the TLS server responds respond with this extension
that MUST extension,
which <bcp14>MUST</bcp14> contain a valid TLSA RRset or proof of non-existence nonexistence of the
TLSA RRset that covers the requested name and port. Note that a non-existence nonexistence
proof or proof of insecure delegation will clear the pin. The TLS client MUST <bcp14>MUST</bcp14>
require this for as long as the time period specified by the pin value,
independent of the DNS TTLs. If during During this process, if the TLS client fails
to receive this information, it MUST <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 non-existence) nonexistence) out of band,
such as via direct DNS lookups.  If attempts to obtain the TLSA RRset
out of band fail, the client MUST <bcp14>MUST</bcp14> abort the TLS connection. It MAY <bcp14>MAY</bcp14> try
a new TLS connection again, for example again (for example, using an exponential back-off
timer,
timer) in an attempt to reach a different TLS server instance that does
properly serve the extension.</t>
<t>A TLS client that has a cached validated TLSA RRset and a valid non-zero extension
pin time MAY <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
MUST NOT
<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 MUST <bcp14>MUST</bcp14> request the extension and MUST <bcp14>MUST</bcp14> abort the TLS connection if
the server responds without the extension. A TLS client MAY <bcp14>MAY</bcp14> attempt
to obtain the valid TLSA RRset by some other means before
initiating a new TLS connection.</t>
<t>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, records or even remove the DS records to
disable the secure delegation of the server's DNS zone. The TLS
server will, will replace the chain with the corresponding denial-of-existence chain when it updates its cached TLSA authentication chain,
replace the chain with the corresponding denial of existence chain.
The server's only obligation is continued support for this extension.</t>
</section>

<section anchor="sec_trustmaint"><name>Trust Anchor Maintenance</name>
<t>The trust anchor may change periodically, e.g. e.g., when the operator of
the trust anchor zone performs a DNSSEC key rollover. TLS clients
using this specification MUST <bcp14>MUST</bcp14> implement a mechanism to keep their
trust anchors up to date. They could use the method defined in
<xref target="RFC5011"></xref> to perform trust anchor updates inband in-band in TLS, 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"><name>Virtual Hosting</name>
<t>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>When CNAME records are employed to redirect network connections to
the provider's network, as mentioned in <xref target="construction"></xref> target="construction"></xref>, 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>

<artwork>;

<sourcecode type="dns-rr">; 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 ...
</artwork>
</sourcecode>

<t>Clients that obtain TLSA records directly from DNS, bypassing this
extension, may however perform CNAME-expansion CNAME expansion as in Section 7 of <xref target="RFC7671"></xref>, and if target="RFC7671" sectionFormat="of" section="7"></xref>. If TLSA records are associated with the
fully-expanded
fully expanded name, may use that name may be used as the TLSA base domain and
SNI name for the TLS handshake.</t>
<t>To avoid confusion, it is RECOMMENDED <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 SHOULD <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, directly or employ this extension) seeing the same
TLSA records and sending the same SNI name.</t>
</section>

<section anchor="operational-considerations"><name>Operational Considerations</name>
<t>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 traditional 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, 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 traditional PKIX, 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>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 MUST <bcp14>MUST</bcp14> still be able to return
the associated denial of existence denial-of-existence proofs to any clients that have
unexpired pins.</t>
<t>TLS clients MAY <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>If the hosting provider intends to use end-entity TLSA records
(certificate usage PKIX-EE(1) or DANE-EE(3)) DANE-EE(3)), then the simplest
approach is to use the same key-pair key pair for all the certificates at a
given hosting node, 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 are, in any case case, needed a few
TTLs before certificate updates as explained in Section 8 of <xref target="RFC7671"></xref>.</t> target="RFC7671" sectionFormat="of" section="8"></xref>.</t>
<t>If the hosting provider intends to use trust-anchor trust anchor TLSA records
(certificate usage PKIX-TA(0) or DANE-TA(2)) DANE-TA(2)), then the same TLSA
record can match all end-entity certificates issues by the
certification authority in question, question and continues to work across
end-entity certificate updates, updates so long as the issuer certificate or
public keys remains remain unchanged. This can be easier to implement, implement at
the cost of greater reliance on the security of the selected
certification authority.</t>
<t>The provider can can, of course course, publish separate TLSA records for each
customer, which increases the number of such RRsets that need to be
managed,
managed but makes each one independent of the rest.</t>
</section>

<section anchor="security-considerations"><name>Security Considerations</name>
<t>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 MUST <bcp14>MUST</bcp14> rebuild the chain in
accordance with TTL and signature expiration of the chain components
as described in <xref target="sec_caching"></xref>.  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"></xref>
or SNTP <xref target="RFC5905"></xref>, which are already widely used today. TLS clients
MUST
<bcp14>MUST</bcp14> support a mechanism to track and roll over the trust anchor key, key
or be able to avail themselves of a service that does this, as described
in <xref target="sec_trustmaint"></xref>.  Security considerations related to mandating the
use of this extension are described in <xref target="pinning"></xref>.</t>
<t>The received DNSSEC chain could contain DNS RRs that are not related
to the TLSA verification of the intended DNS name. If such a an unrelated
RR is not DNSSEC signed, it MUST <bcp14>MUST</bcp14> be disgarded. discarded. If the unrelated RRset
is DNSSEC signed, the TLS client MAY <bcp14>MAY</bcp14> decide to add these RRsets and
their DNSSEC signatures to its cache. It MAY <bcp14>MAY</bcp14> even pass this data to the
local system resolver for caching outside the application.

However, care
must be taken that 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,
MUST users
<bcp14>MUST</bcp14> refrain from using and caching all unrelated RRs.</t>
</section>

<section anchor="iana_requests"><name>IANA Considerations</name>
<t>This document defines one new entry
<t>IANA has made the following assignment in the TLS "TLS ExtensionType Values Values"
registry:</t>
<table>
<thead>
<tr>
<th align="right">Value</th>
<th>Extension Name</th>
<th>TLS 1.3</th>
<th>Recommended</th>
<th>Reference</th>
</tr>
</thead>

<tbody>
<tr>
<td align="right">TBD</td> align="right">59</td>
<td>dnssec_chain</td>
<td>CH</td>
<td>No</td>
<td>[this document]</td>
<td>RFC 9102</td>
</tr>
</tbody>
</table></section>

<section anchor="acknowledgments"><name>Acknowledgments</name>
<t>Many thanks to Adam Langley for laying the groundwork for this
extension in <xref target="I-D.agl-dane-serializechain"></xref>. 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: Daniel Kahn Gillmor, Jeff Hodges, Allison Mankin,
Patrick McManus, Rick van Rein, Ilari Liusvaara, Eric Rescorla, Gowri
Visweswaran, Duane Wessels, Nico Williams, and Richard Barnes.</t>
</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><name>References</name>
<references><name>Normative References</name>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.1035.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4033.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4034.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4035.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5155.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5246.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6066.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6698.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7218.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7671.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7858.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8310.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8446.xml"/>
</references>
<references><name>Informative References</name>

<!-- [I-D.agl-dane-serializechain] IESG state Expired -->

<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml-ids/reference.I-D.agl-dane-serializechain.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml-ids/reference.I-D.barnes-dane-uks.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml-ids/reference.I-D.ietf-dnsop-svcb-https.xml"/> href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.agl-dane-serializechain.xml"/>

<!-- [I-D.barnes-dane-uks] IESG state Expired -->
<reference anchor="NLNETLABS" anchor='I-D.barnes-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 />
</author>

<author initials='M' surname='Thomson' fullname='Martin Thomson'>
    <organization />
</author>

<author initials='E' surname='Rescorla' fullname='Eric Rescorla'>
    <organization />
</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' />
</reference>

<!-- [I-D.ietf-dnsop-svcb-https] IESG state I-D Exists -->

<reference anchor='I-D.ietf-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 />
</author>
<author initials='M' surname='Bishop' fullname='Mike Bishop'>
<organization />
</author>
<author initials='E' surname='Nygren' fullname='Erik Nygren'>
<organization />
</author>
<date year='2021' month='June' day='16' />
</front>
<seriesInfo name='Internet-Draft' value='draft-ietf-dnsop-svcb-https-06'/>
<format type='TXT' target='https://www.ietf.org/internet-drafts/draft-ietf-dnsop-svcb-https-06.txt'/>
</reference>

<reference anchor="DISCOVERY" target="https://www.nlnetlabs.nl/downloads/publications/os3-2015-rp2-xavier-torrent-gorjon.pdf">
  <front>
    <title>Discovery method for a DNSSEC validating stub resolver</title>
    <author fullname="Xavier Torrent Gorjon" initials="X." surname="Gorjon"></author>
    <author fullname="Willem Toorop" initials="W." surname="Toorop"></author>
    <date year="2015" month="July" day="14"></date>
  </front>
</reference>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5011.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5905.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7250.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7901.xml"/>
</references>
</references>

<section anchor="test-vectors"><name>Test Vectors</name>
<t>The test vectors in this appendix are representations of the content
of the "opaque AuthenticationChain" field in DNS presentation format.
And format and, except for the <tt>extension_data</tt> in <xref target="hex_dump"></xref>, do not contain
the "uint16 ExtSupportLifetime" field.</t>
<t>For brevity and reproducibility reproducibility, all DNS zones involved with the test
vectors are signed using keys with algorithm 13: ECDSA 13 (ECDSA Curve P-256
with SHA-256.</t> SHA-256).</t>
<t>To reflect operational practice, different zones in the examples are
in different phases of rolling their signing keys:</t>

<ul>
<li><t>All zones use a Key Signing Key (KSK) and Zone Signing Key (ZSK),
except for the example.com <tt>example.com</tt> and example.net zones <tt>example.net</tt> zones, which use a
Combined Signing Key (CSK).</t>
</li>
<li><t>The root and org zones are rolling their ZSK's.</t> ZSKs.</t>
</li>
<li><t>The com and org zones are rolling their KSK's.</t> KSKs.</t>
</li>
</ul>
<t>The test vectors are DNSSEC valid in the same period as the
certificate is valid, which is in between November 28, 2018 and
December 2, 2020 and with the following root trust anchor:</t>

<artwork>.

<sourcecode type="dns-rr">.  IN  DS  ( 47005 13 2 2eb6e9f2480126691594d649a5a613de3052e37861634
        641bb568746f2ffc4d4 )
</artwork>
</sourcecode>
<t>The test vectors will authenticate the certificate used with
<eref target="https://example.com/">https://example.com/</eref>, <eref target="https://example.net/">https://example.net/</eref>
<tt>https://example.com/</tt>, <tt>https://example.net/</tt>, and <eref target="https://example.org/">https://example.org/</eref> <tt>https://example.org/</tt>
at the time of writing:</t>

<artwork>-----BEGIN

<sourcecode>-----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-----
</artwork>
</sourcecode>

<section anchor="tv-straight"><name>_443._tcp.www.example.com</name>

<artwork>_443._tcp.www.example.com. anchor="tv-straight"><name><tt>_443._tcp.www.example.com</tt></name>

<sourcecode type="dns-rr">_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== )
</artwork>
</sourcecode>

<t>A hex dump of the <tt>extension_data</tt> of the server's <tt>dnssec_chain</tt>
extension represention representation of this with an ExtSupportLifetime value of 0 is:</t>

<artwork

<sourcecode anchor="hex_dump">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
</artwork>
</sourcecode>
</section>

<section anchor="tv-wildcard-nsec"><name>_25._tcp.example.com anchor="tv-wildcard-nsec"><name><tt>_25._tcp.example.com</tt> NSEC wildcard</name>

<artwork>_25._tcp.example.com. Wildcard</name>

<sourcecode type="dns-rr">_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== )
</artwork>
</sourcecode>
</section>

<section anchor="tv-wildcard-nsec3"><name>_25._tcp.example.org anchor="tv-wildcard-nsec3"><name><tt>_25._tcp.example.org</tt> NSEC3 wildcard</name>

<artwork>_25._tcp.example.org. Wildcard</name>

<sourcecode type="dns-rr">_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== )
</artwork>
</sourcecode>
</section>

<section anchor="tv-cname"><name>_443._tcp.www.example.org anchor="tv-cname"><name><tt>_443._tcp.www.example.org</tt> CNAME</name>

<artwork>_443._tcp.www.example.org.

<sourcecode type="dns-rr">_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== )
</artwork>
</sourcecode>
</section>

<section anchor="tv-dname"><name>_443._tcp.www.example.net anchor="tv-dname"><name><tt>_443._tcp.www.example.net</tt> DNAME</name>

<artwork>example.net.

<sourcecode type="dns-rr">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== )
</artwork>
</sourcecode>
</section>

<section anchor="tv-denial-nsec"><name>_25._tcp.smtp.example.com anchor="tv-denial-nsec"><name><tt>_25._tcp.smtp.example.com</tt> NSEC Denial of Existence</name>

<artwork>smtp.example.com.

<sourcecode type="dns-rr">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== )
</artwork>
</sourcecode>
</section>

<section anchor="tv-denial-nsec3"><name>_25._tcp.smtp.example.org anchor="tv-denial-nsec3"><name><tt>_25._tcp.smtp.example.org</tt> NSEC3 Denial of Existence</name>

<artwork>vkv62jbv85822q8rtmfnbhfnmnat9ve3.example.org.

<sourcecode type="dns-rr">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== )
</artwork>
</sourcecode>
</section>

<section anchor="tv-insecure-nsec3-optout"><name>_443._tcp.www.insecure.example anchor="tv-insecure-nsec3-optout"><name><tt>_443._tcp.www.insecure.example</tt> NSEC3 opt-out insecure delegation</name>

<artwork>c1kgc91hrn9nqi2qjh1ms78ki8p7s75o.example. Opt-Out Insecure Delegation</name>

<sourcecode type="dns-rr">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== )
</artwork>
</sourcecode>
</section>
</section>
<section anchor="acknowledgments" numbered="false"><name>Acknowledgments</name>
<t>Many thanks to <contact fullname="Adam Langley"/> for laying the groundwork for this
extension in <xref target="I-D.agl-dane-serializechain"></xref>. 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>
</back>
</rfc>