<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.4.9) -->
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-cel-nfsv4-rpc-tls-dane-01" category="std" consensus="true" submissionType="IETF" updates="9289" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="RPC TLS with DANE">Using RPC-with-TLS with DNS-Based Authentication of Named Entities</title>
    <seriesInfo name="Internet-Draft" value="draft-cel-nfsv4-rpc-tls-dane-01"/>
    <author fullname="Charles Lever" role="editor">
      <organization/>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>cel-ietf@chucklever.net</email>
      </address>
    </author>
    <date year="2026" month="October" day="02"/>
    <area>Web and Internet Transport</area>
    <workgroup>Network File System Version 4</workgroup>
    <keyword>RPC</keyword>
    <keyword>TLS</keyword>
    <keyword>DANE</keyword>
    <keyword>TLSA</keyword>
    <keyword>DNSSEC</keyword>
    <keyword>STRIPTLS</keyword>
    <abstract>
      <?line 65?>

<t>RPC-with-TLS assumes that DNS-Based Authentication of Named Entities
(DANE) is available on platforms where it is deployed, and recommends
that a client operating under an opportunistic security policy check
for a TLSA record before initiating an association, but does not say
how.  This document specifies the missing details, so that a TLSA
record authenticates an RPC server with no certification authority
trust anchor provisioned on the client.  It updates RFC 9289.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://chucklever.github.io/i-d-rpc-tls-dane/draft-cel-nfsv4-rpc-tls-dane.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-cel-nfsv4-rpc-tls-dane/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        nfsv4 Working Group mailing list (<eref target="mailto:nfsv4@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/nfsv4/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/nfsv4/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/chucklever/i-d-rpc-tls-dane"/>.</t>
    </note>
  </front>
  <middle>
    <?line 76?>

<section anchor="intro">
      <name>Introduction</name>
      <t>RPC-with-TLS <xref target="RFC9289"/> protects Remote Procedure Call <xref target="RFC5531"/>
traffic by encapsulating it in a TLS <xref target="RFC9846"/> session.  A client
discovers whether a server supports the mechanism by sending a NULL
procedure carrying the AUTH_TLS authentication flavor, in cleartext,
before the TLS handshake begins.  A server that supports RPC-with-TLS
replies with a "STARTTLS" token, after which the client sends a
ClientHello on the same connection or to the same UDP destination
port.</t>
      <t><xref section="5.2.1" sectionFormat="of" target="RFC9289"/> requires every RPC-with-TLS implementation
to support authenticating server certificates by PKIX <xref target="RFC5280"/> trust
against a locally configured expected DNS-ID.  The client resolves
that name in the DNS to reach the server, but the DNS supplies nothing
that authenticates the server or that says the server is expected to
speak TLS.  Two deployment problems follow:</t>
      <ul spacing="normal">
        <li>
          <t>Trust anchor distribution.  Every client must be provisioned with
the certification authority material needed to validate the servers
it will contact, and kept current as certificates are rotated.  A
server operator without a certification authority has no way to
tell clients what key to expect other than by configuring each of
them.</t>
        </li>
        <li>
          <t>STRIPTLS.  The AUTH_TLS probe and its reply are exchanged in
cleartext.  An on-path attacker who suppresses the probe, or
rewrites the reply so that it does not carry the "STARTTLS" token,
makes a TLS-capable server appear not to support RPC-with-TLS, and
a client under an opportunistic policy proceeds in cleartext.
Nothing the client learns on the way to the server tells it that
TLS was expected.</t>
        </li>
      </ul>
      <t><xref target="RFC9289"/> anticipated these problems and pointed at the same remedy
for them, DNS-Based Authentication of Named Entities (DANE)
<xref target="RFC6698"/>, in several places:</t>
      <ul spacing="normal">
        <li>
          <t>Section 1 lists DNSSEC/DANE among the platform facilities that
RPC-with-TLS support is assumed to build on.</t>
        </li>
        <li>
          <t>Section 6.1.1 offers a TLSA record as one of two mitigations for
STRIPTLS attacks: it "can alert clients that TLS is expected to
work, and provide a binding of a hostname to the X.509 identity",
and a client under an opportunistic security policy should check
for one before initiating an association.  The other mitigation, a
policy that requires TLS on every connection, is strongly
encouraged where TLSA records are not available.</t>
        </li>
        <li>
          <t>Section 6.4 lists among its best security policy practices that,
when using AUTH_NULL or AUTH_SYS, "both peers are <bcp14>RECOMMENDED</bcp14> to
have DNSSEC TLSA records" together with "a security policy that
requires mutual peer authentication and rejection of a connection
when host authentication fails".</t>
        </li>
      </ul>
      <t>A TLSA RRset addresses both problems at once.  Published in a zone
the operator already signs, it carries the binding between a server
name and its public key in the DNS, alongside the name the client had
to resolve anyway, so no client needs certification authority
material for that server.  And because a DNSSEC-validated TLSA RRset
is an authenticated statement by the server operator that TLS is
expected to work, a client holding one can no longer treat silent
fallback to cleartext as acceptable: the STRIPTLS attack fails
closed.</t>
      <t>However, <xref target="RFC9289"/> offers a sketch rather than a specification.  It
leaves unspecified the owner names at which a client queries for the
TLSA record, whether a lookup failure is treated as an absent record,
the name the client sends in SNI and verifies in the server's
certificate when a record is found, and which outcomes of the AUTH_TLS
probe still permit cleartext.  Two independent implementations
resolving these questions differently would not interoperate: one
fails a handshake that the other completes.  A client that makes the
permissive choice at each point obtains none of the downgrade
resistance a TLSA record appears to promise.</t>
      <t>To close these gaps, this document specifies DANE
for RPC-with-TLS completely enough to implement and deploy, following
the operational specifications of <xref target="RFC7671"/> and <xref target="RFC7672"/> and
making the RPC-specific choices those documents leave to application
protocols.</t>
      <section anchor="scope">
        <name>Scope</name>
        <t>This document defines client behavior and changes nothing in the
protocol an RPC server implements.  Its one requirement on the server
side, in <xref target="rollover"/>, binds the publisher of the TLSA RRset.
Interoperation with a client implementing this document also depends
on two matters of server configuration that <xref target="RFC9289"/> does not
address: a server whose TLSA RRset is found through a CNAME alias has
to tolerate either of two Server Name Indication values, and a server
authenticated by a DANE-TA(2) record generally has to send the trust
anchor certificate.  <xref target="ta-distribution"/> describes both.</t>
        <t>This document specifies the use of DANE to authenticate an RPC server
to an RPC client.  Authentication of an RPC client to an RPC server by
means of DANE is out of scope; see <xref target="client-auth"/>.</t>
        <t>This document applies where the server authenticates itself with a
certificate.  A server association that uses the pre-shared key
mechanism of <xref section="5.2.2" sectionFormat="of" target="RFC9289"/> presents no certificate for
DANE to authenticate. The procedures in this document do not apply to
it.  The exclusion extends to downgrade resistance: such an
association does not consult TLSA records to pin a security floor
(<xref target="floor"/>).  The provisioned key is itself the operator's commitment
to TLS, and it is already in the client's possession, so local policy
can require TLS for the association without a DNS lookup.</t>
        <t><xref section="5.1" sectionFormat="of" target="RFC7671"/> also provides for matching a DANE-EE(3)
record against a raw public key <xref target="RFC7250"/>; <xref target="RFC9289"/> defines no
way to convey one, so that case does not arise here.</t>
        <t>TLSA owner names are defined here for the transports <xref target="RFC9289"/>
itself defines, namely TLS over TCP and DTLS over UDP.  A future
document that specifies RPC over another transport is expected to
define the corresponding owner-name convention.</t>
      </section>
    </section>
    <section anchor="updates">
      <name>Updates to RFC 9289</name>
      <t>Support for DANE remains optional for an RPC-with-TLS implementation.
The changes in this section bind a client that implements this
document; an implementation of <xref target="RFC9289"/> that does not is
unaffected.</t>
      <t>Two requirements of <xref target="RFC9289"/> are changed here:</t>
      <ul spacing="normal">
        <li>
          <t><xref section="5.2.1" sectionFormat="of" target="RFC9289"/> requires PKIX path validation and a
check of the expected DNS-ID or iPAddress subjectAltName against the
presented certificate.  Those requirements continue to apply
unchanged wherever this document requires PKIX authentication, and
to the name checks performed for certificate usage DANE-TA(2).  They
do not apply to a server authenticated by a DANE-EE(3) match, for
the reasons given in <xref section="5.1" sectionFormat="of" target="RFC7671"/> and restated in
<xref target="dane-ee"/>.</t>
        </li>
        <li>
          <t>Where <xref target="RFC9289"/> cites <xref target="RFC6125"/> for certificate name checks,
clients implementing this document perform those checks per
<xref target="RFC9525"/>, which obsoletes <xref target="RFC6125"/>.  The additional
restriction in <xref section="5.2.1" sectionFormat="of" target="RFC9289"/>, that a DNS domain name
in an RPC-with-TLS certificate contain no wildcard character, is
retained.</t>
        </li>
      </ul>
      <t>Elsewhere <xref target="RFC9289"/> makes a recommendation or leaves a choice to
local policy.  This document replaces each of the following with a
requirement stated in the section named:</t>
      <ul spacing="normal">
        <li>
          <t>The first bullet of <xref section="6.1.1" sectionFormat="of" target="RFC9289"/> recommends a TLSA
check before an association is initiated, and disconnection when
TLS or authentication then fails.  <xref target="lookup"/>, <xref target="behavior"/>, and
<xref target="floor"/> replace that recommendation.</t>
        </li>
        <li>
          <t>The second bullet of <xref section="6.1.1" sectionFormat="of" target="RFC9289"/> recommends a
policy that requires TLS on every connection, and Section 6.4
recommends, for AUTH_NULL and AUTH_SYS, TLSA records for both peers
and rejection of a connection when host authentication fails.
<xref target="floor"/> and <xref target="fallback"/> require the server-authentication half
of that behavior where this document pins a security floor; the
client-authentication half is out of scope (<xref target="client-auth"/>).
Where no floor is pinned, <xref target="fallback"/> permits cleartext operation
on a well-formed decline; a deployment that adopts either
recommendation in full remains conformant.</t>
        </li>
        <li>
          <t><xref section="4.1" sectionFormat="of" target="RFC9289"/> leaves to local policy whether RPC
operation continues in cleartext when the AUTH_TLS probe does not
yield the "STARTTLS" indication.  <xref target="fallback"/> specifies that
policy, and it is more restrictive than what <xref target="RFC9289"/> permits.</t>
        </li>
      </ul>
      <t>This document also extends the audit log that <xref section="6.1" sectionFormat="of" target="RFC9289"/> requires: <xref target="audit"/> adds to the required content of that
log and permits it to be assembled from correlatable events.</t>
      <t>Nothing in this document changes the TLS version, ALPN, cipher suite,
confidentiality, or transport requirements of <xref target="RFC9289"/>, nor its
provisions for pre-shared keys or for RPCSEC_GSS.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>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"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>This document assumes a working knowledge of RPC version 2
<xref target="RFC5531"/>, of RPC-with-TLS <xref target="RFC9289"/>, and of DANE <xref target="RFC6698"/>
        <xref target="RFC7671"/>.  It uses the DNSSEC validation states "secure",
"insecure", and "bogus" as defined in <xref section="5" sectionFormat="of" target="RFC4033"/>.  The
definitions of "indeterminate" in <xref section="5" sectionFormat="of" target="RFC4033"/> and
<xref section="4.3" sectionFormat="of" target="RFC4035"/> differ; this document classes a result
that is indeterminate in either sense as ERROR (<xref target="outcomes"/>).</t>
      <t>The following terms are used as defined here.</t>
      <dl>
        <dt>Reference name:</dt>
        <dd>
          <t>The DNS domain name that identifies to the client the server it is
contacting.  For an association established by administrative
configuration, it is the name that appeared in that configuration
-- for NFS, the server component of the mount specification.  For
a derived association (<xref target="derived"/>), it is the name the upper-layer
protocol supplied.  <xref target="refname"/> states the requirements on it.</t>
        </dd>
        <dt>TLSA base domain:</dt>
        <dd>
          <t>The domain name to which the port and transport labels are
prepended to form a TLSA owner name, as in <xref section="3" sectionFormat="of" target="RFC6698"/>.  A client may have more than one candidate base domain
for a single reference name; see <xref target="candidates"/>.</t>
        </dd>
        <dt>Selected TLSA base domain:</dt>
        <dd>
          <t>The candidate TLSA base domain at which the client found a
validated TLSA RRset.  See <xref target="selected"/>.</t>
        </dd>
        <dt>DNS outcome class:</dt>
        <dd>
          <t>One of the five results defined in <xref target="outcomes"/> that a client
assigns to a TLSA lookup for a given reference name, port, and
transport.</t>
        </dd>
        <dt>Usable record:</dt>
        <dd>
          <t>A TLSA record that the client is able to use to authenticate a
server certificate, in the sense of <xref section="4.1" sectionFormat="of" target="RFC6698"/> and
as further constrained by <xref target="usable"/>.</t>
        </dd>
        <dt>Server association:</dt>
        <dd>
          <t>The set of transport connections a client operates toward one
server, selected by one reference name, and treated as a single
administrative and security unit; <xref target="RFC9289"/> uses "association"
informally.  It begins with the client's first association attempt
and ends when the administrative action that created it is undone.
For NFS, it is what a mount point and any additional connections
established for it are carried over, and it lasts from mount to
unmount.</t>
        </dd>
        <dt>Association attempt:</dt>
        <dd>
          <t>One attempt by a client to establish a transport connection for a
server association, from the selection of a destination through
either the completion of a TLS handshake, a decision to proceed in
cleartext, or failure.</t>
        </dd>
        <dt>Security floor:</dt>
        <dd>
          <t>The minimum acceptable security level that a client has determined
for a server association, and below which it does not operate.
<xref target="floor"/> states the requirement.</t>
        </dd>
        <dt>DANE policy mode:</dt>
        <dd>
          <t>The client's configured disposition toward DANE for a given server
association: disabled, opportunistic, or mandatory.  See <xref target="modes"/>.</t>
        </dd>
      </dl>
    </section>
    <section anchor="overview">
      <name>Overview of Operation</name>
      <t>A client that has DANE enabled for a server association performs, in
addition to what <xref target="RFC9289"/> already specifies, the following steps.</t>
      <ol spacing="normal" type="1"><li>
          <t>It derives a reference name for the server it is about to contact,
subject to the requirements in <xref target="refname"/>.  A destination the
client cannot name in the DNS, such as one selected by IP address
literal, carries no DANE binding and is handled per <xref target="no-dane"/>.</t>
        </li>
        <li>
          <t>It looks up TLSA records at the owner names derived from that
reference name, the destination port, and the transport, and
reduces the results to a single DNS outcome class.  <xref target="lookup"/>
specifies this procedure.</t>
        </li>
        <li>
          <t>It applies the outcome class to the association attempt.  An
outcome of SECURE_USABLE or SECURE_UNUSABLE pins a security floor
for the association (<xref target="floor"/>), unless the port is of untrusted
provenance (<xref target="provenance"/>).  The floor constrains whether
cleartext operation remains permissible and which failures are
recoverable.</t>
        </li>
        <li>
          <t>If a TLS handshake takes place, it authenticates the server
according to the outcome class: by DANE (<xref target="authn"/>) where the
client found a usable record, and by the PKIX rules of
<xref section="5.2.1" sectionFormat="of" target="RFC9289"/> otherwise.</t>
        </li>
        <li>
          <t>It records the policy inputs, the decision, and the authentication
result in the audit log that <xref section="6.1" sectionFormat="of" target="RFC9289"/> already
requires (<xref target="audit"/>).</t>
        </li>
      </ol>
      <t>Steps 2 and 3 concern the association attempt as a whole and can be
performed before the AUTH_TLS probe is sent; step 4 happens during
the handshake.  How an implementation divides the work is not
specified; <xref target="coherence"/> states the constraints that any division has
to respect.</t>
      <section anchor="modes">
        <name>DANE policy modes</name>
        <t>A client implementing this document <bcp14>MUST</bcp14> support the following three
policy modes, and <bcp14>MUST</bcp14> allow the mode to be configured independently
for each server association.</t>
        <dl>
          <dt>Disabled:</dt>
          <dd>
            <t>The client performs none of the procedures in this document.  Its
behavior is that specified by <xref target="RFC9289"/>.</t>
          </dd>
          <dt>Opportunistic:</dt>
          <dd>
            <t>The client performs the procedures in this document.  A DNS outcome
class of SECURE_USABLE or SECURE_UNUSABLE pins a security floor,
except where <xref target="provenance"/> withholds it, and constrains the
association as specified in <xref target="behavior"/> and <xref target="floor"/>.
SECURE_ABSENT and INSECURE do not pin a floor; a floor pinned by
an earlier attempt still governs the association, and otherwise
<xref target="fallback"/> governs whether the attempt may proceed in cleartext.
Any
TLS session established is authenticated by the PKIX rules of
<xref section="5.2.1" sectionFormat="of" target="RFC9289"/>.  ERROR fails the attempt
(<xref target="behavior"/>).  This mode is
intended for fleet-wide deployment against a server population that
has not uniformly published TLSA records; see <xref target="adaptive"/>.</t>
          </dd>
          <dt>Mandatory:</dt>
          <dd>
            <t>The client performs the procedures in this document and additionally
requires that the server be authenticated by DANE.  Any outcome
other than SECURE_USABLE followed by a successful DANE
authentication <bcp14>MUST</bcp14> fail the association attempt.  A destination
that cannot carry a DANE binding at all (<xref target="no-dane"/>) fails rather
than falling back to PKIX.</t>
          </dd>
        </dl>
        <t>Mandatory mode never silently degrades.  An implementation that lacks
some part of this specification, such as a transport for which it
defines no owner name, <bcp14>MUST</bcp14> fail an association attempt made in
mandatory mode rather than proceed without the protection the mode
was configured to obtain.</t>
      </section>
    </section>
    <section anchor="records">
      <name>TLSA Records for RPC Services</name>
      <section anchor="owner-names">
        <name>Owner names</name>
        <t>TLSA owner names for RPC services follow the convention in <xref section="3" sectionFormat="of" target="RFC6698"/> without modification.  The owner name is formed by
prepending, to a TLSA base domain:</t>
        <ul spacing="normal">
          <li>
            <t>the second label "_tcp" for RPC-with-TLS over TCP, or "_udp" for
RPC-with-DTLS over UDP, per Sections <xref target="RFC9289" section="5.1.1" sectionFormat="bare"/> and <xref target="RFC9289" section="5.1.2" sectionFormat="bare"/> of <xref target="RFC9289"/>; and</t>
          </li>
          <li>
            <t>the first label, consisting of an underscore followed by the decimal
representation, without leading zeros, of the port number to which
the client connects.</t>
          </li>
        </ul>
        <t>For example, an NFS server reached at "nfs.example.com" on the default
NFS port over TCP publishes its TLSA RRset at
"_2049._tcp.nfs.example.com".</t>
      </section>
      <section anchor="ports">
        <name>Alternate ports</name>
        <t>The port in the owner name is the port to which the client actually
connects, not a registered port for the RPC program in use.  RPC
services are routinely offered on other ports, by site convention or
by local configuration: a service reached on port 20490 over TCP at
"nfs.example.com" publishes its TLSA RRset at
"_20490._tcp.nfs.example.com", and a server that offers the same
service on several ports publishes one TLSA RRset per port.</t>
        <t>Because the port is part of the owner name, a TLSA RRset authenticates
the server at a known port and says nothing about the same server at
another port, in the same way that <xref section="4.1" sectionFormat="of" target="RFC9289"/> observes
that a successful AUTH_TLS probe on one port and transport implies
nothing about any other.</t>
      </section>
      <section anchor="provenance">
        <name>Port provenance</name>
        <t>The distinction that matters for downgrade resistance is not the value
of the port but where the client obtained it.</t>
        <t>An RPC client may learn the port for a program from the server's
RPCBIND service <xref target="RFC1833"/>, whose replies are not authenticated.  An
attacker who substitutes a port in an RPCBIND reply thereby
substitutes the first label of the TLSA owner name the client will
query.  The query is made at a name for which the operator published
nothing, and the client assigns SECURE_ABSENT (<xref target="outcomes"/>) and pins
no floor.</t>
        <t>Accordingly:</t>
        <ul spacing="normal">
          <li>
            <t>DANE authentication as specified in <xref target="authn"/> applies at whatever
port the client connects to, whatever the provenance of that port.</t>
          </li>
          <li>
            <t>A client <bcp14>MUST NOT</bcp14> pin a security floor (<xref target="floor"/>) on the basis of a
DNS outcome derived from a port the client obtained from an
unauthenticated source.  Ports obtained from local configuration,
including a configured default for the RPC program, are trusted for
this purpose; ports obtained from an unauthenticated RPCBIND reply,
or from any other unauthenticated in-band source, are not.</t>
          </li>
        </ul>
        <t>A TLSA RRset can authenticate a server at a port the client already
knew.  It cannot retroactively secure the client's selection of that
port.  <xref target="sec-ports"/> describes how a client obtains ports from an
authenticated source.</t>
      </section>
      <section anchor="rollover">
        <name>Publishing and key rollover</name>
        <t>Publishers <bcp14>MUST</bcp14> observe the requirements of <xref section="8" sectionFormat="of" target="RFC7671"/>,
in particular during key rollover.  Those requirements keep in the
RRset, at all times, a record matching the certificate that each
server answering for the name may present.  A client that has pinned a floor fails rather than
falls back when the RRset and the certificate disagree, so a rollover
performed in the wrong order takes the service down.  That is
intended, but operators need to plan for it.</t>
      </section>
    </section>
    <section anchor="refname">
      <name>The Reference Name</name>
      <section anchor="requirements-on-the-reference-name">
        <name>Requirements on the reference name</name>
        <t>The TLSA base domains a client considers <bcp14>MUST</bcp14> be derived from the
association's reference name, as specified in <xref target="lookup"/>.</t>
        <t>A client <bcp14>MUST NOT</bcp14> use a name obtained by reverse resolution of the
server's network address as a reference name, or as the basis for one.
Such a name is chosen by whoever controls the reverse zone, and
accepting it would let that party select the TLSA RRset against which
the client authenticates.</t>
        <t>Before treating a configured value as a reference name, a client <bcp14>MUST</bcp14>
apply the following input contract.</t>
        <ul spacing="normal">
          <li>
            <t>If the value is an IPv4 or IPv6 address literal, including an IPv6
literal bearing a zone identifier, it is not a DNS name.  The
destination carries no DANE binding; see <xref target="no-dane"/>.</t>
          </li>
          <li>
            <t>An internationalized domain name <bcp14>MUST</bcp14> be converted to A-label form
<xref target="RFC5890"/> before it is used to construct an owner name, as
<xref section="3" sectionFormat="of" target="RFC6698"/> requires.</t>
          </li>
          <li>
            <t>The value <bcp14>MUST</bcp14> satisfy the syntax and length limits for DNS names in
<xref target="RFC1035"/>, in both wire and presentation form.  A value with an
empty or over-long label, or one that exceeds the total name length
limit once the port and transport labels have been prepended, is not
usable as a reference name, and the association attempt is handled
as in <xref target="no-dane"/>.</t>
          </li>
          <li>
            <t>ASCII case is not significant.  A client that compares reference
names -- to decide whether two association attempts concern the same
server association, for instance -- <bcp14>MUST</bcp14> compare them
case-insensitively.</t>
          </li>
          <li>
            <t>A trailing empty label, written as a trailing dot in presentation
form, is retained when constructing DNS queries and removed when the
name is used as a Server Name Indication (SNI) value <xref target="RFC6066"/> or
as a
PKIX reference identifier.</t>
          </li>
        </ul>
      </section>
      <section anchor="no-dane">
        <name>Destinations that carry no DANE binding</name>
        <t>A destination selected by IP address literal has no DNS name from
which a TLSA base domain could be derived, and DANE does not apply to
it; this matches the treatment of address literals in <xref section="2.2" sectionFormat="of" target="RFC7672"/>.  The same holds for a destination whose configured name
fails the input contract above.</t>
        <t>For such a destination:</t>
        <ul spacing="normal">
          <li>
            <t>In opportunistic mode, the attempt does not pin a floor.  If an
earlier attempt pinned one, that floor still governs the
association; otherwise <xref target="fallback"/> governs whether the attempt
may proceed in cleartext.  If the client
authenticates the server, it does so by the rules of <xref section="5.2.1" sectionFormat="of" target="RFC9289"/>, which provide for matching an iPAddress
subjectAltName.</t>
          </li>
          <li>
            <t>In mandatory mode, the association attempt fails (<xref target="modes"/>).</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="lookup">
      <name>Locating the TLSA RRset</name>
      <section anchor="resolver">
        <name>Resolver trust</name>
        <t>Every guarantee in this document rests on the client obtaining DNSSEC
validation states it can trust.  A client that accepts the AD bit from
a remote validating resolver has moved its trust to that resolver and
to the path between them, which is precisely the kind of unprotected
path this document exists to defend against.</t>
        <t>Accordingly, a client implementing this document <bcp14>MUST</bcp14> either validate
DNSSEC responses itself, or obtain them from a validating resolver it
trusts over an integrity-protected channel.  A protected channel is
what <xref section="4.1" sectionFormat="of" target="RFC6698"/> requires of a client that relies on
another entity for validation.  A validating resolver on the same host,
reached without crossing a network, satisfies that requirement.
A client <bcp14>SHOULD</bcp14> validate DNSSEC responses itself.</t>
        <t><xref target="outcomes"/> classes a failure to load, read, or parse the trust
anchors as ERROR, not INSECURE, since a client without them cannot
distinguish an unsigned zone from a signed one.  An anchor maintained
automatically <xref target="RFC5011"/> that has fallen out of date is subject to
the same rule.</t>
      </section>
      <section anchor="outcomes">
        <name>DNS outcome classes</name>
        <t>A client reduces the result of its TLSA lookups for one reference
name, port, and transport to exactly one of the following five outcome
classes.  Throughout, "usable" has the meaning given in <xref target="usable"/>.</t>
        <dl>
          <dt>SECURE_USABLE:</dt>
          <dd>
            <t>A DNSSEC-validated TLSA RRset was found, and at least one record in
it is usable.  The client authenticates the server by DANE.</t>
          </dd>
          <dt>SECURE_UNUSABLE:</dt>
          <dd>
            <t>A DNSSEC-validated TLSA RRset was found, and no record in
it is usable.  The operator has committed to TLS, but the client
cannot perform DANE authentication against what was published.</t>
          </dd>
          <dt>SECURE_ABSENT:</dt>
          <dd>
            <t>The candidate base domains were exhausted without finding a
validated TLSA RRset, and the last candidate evaluated yielded a
DNSSEC-validated denial of existence.  The operator has published no
signed TLSA RRset for this service.</t>
          </dd>
          <dt>INSECURE:</dt>
          <dd>
            <t>The reference name itself lies in a provably unsigned span of the
DNS, or the search ended at a TLSA owner name that does.  DANE does
not apply, and no conclusion
can be drawn from the absence or presence of records.</t>
          </dd>
          <dt>ERROR:</dt>
          <dd>
            <t>The client could not obtain a validated answer.  This class covers a
"bogus" or "indeterminate" validation result, a timeout, a SERVFAIL
or other error response, a malformed reply, a failure to load, read,
or parse the resolver's trust anchors, and any other condition that
prevents the client from assigning one of the four classes above.</t>
          </dd>
        </dl>
        <t>An ERROR outcome <bcp14>MUST NOT</bcp14> be treated as equivalent to INSECURE, and
<bcp14>MUST NOT</bcp14> authorize cleartext operation: as Sections <xref target="RFC7672" section="2.1.1" sectionFormat="bare"/> and <xref target="RFC7672" section="2.1.2" sectionFormat="bare"/> of <xref target="RFC7672"/> observe, the conditions that produce it are the ones
an attacker can produce at will.
An implementation <bcp14>MAY</bcp14> retry a lookup that produced ERROR; if no
attempt yields a validated answer, the outcome remains ERROR.</t>
      </section>
      <section anchor="candidates">
        <name>Candidate TLSA base domains</name>
        <t>RPC-with-TLS has no service location indirection of the kind that MX
or SRV records provide, so the redirection case that <xref section="7" sectionFormat="of" target="RFC7671"/> addresses arises for RPC through CNAME aliasing.  A client
therefore determines an ordered list of candidate base domains before
querying for TLSA records, as shown in <xref target="candidate-alg"/>.</t>
        <figure anchor="candidate-alg">
          <name>Determining the candidate base domains</name>
          <artwork><![CDATA[
CandidateBaseDomains(name):

  Resolve the address records for "name" in each address family
  the client will use for this association attempt, following
  any CNAME chain hop by hop and noting the DNSSEC validation
  state of each link.

  If any step of that resolution is bogus or indeterminate, or
  fails to complete:
      return error

  If the response for "name" itself, the first link of that
  resolution, is insecure:
      return insecure

  If "name" is an alias, and in every address family resolved
  the chain reaches the same canonical name, and every link of
  every such chain is secure:
      return [ canonical-name, name ]

  return [ name ]
]]></artwork>
        </figure>
        <t>The single-element result covers every case in which the client
cannot show that the redirection itself was authenticated.  A client
<bcp14>MUST NOT</bcp14> expand a chain that it has not validated end to end, because
an unvalidated CNAME lets whoever forged it choose the base domain
and therefore the TLSA RRset.</t>
        <t>The insecure result follows <xref section="2.2.2" sectionFormat="of" target="RFC7672"/>.  A
reference name in an unsigned zone is not expected to have a TLSA
RRset that validates, and some name servers for such zones mishandle
TLSA queries.  Querying them would turn a destination to which DANE
does not apply into an ERROR, so the client makes no TLSA query and
assigns INSECURE.</t>
        <t>A CNAME encountered at a TLSA owner name itself is followed by
ordinary DNS resolution under the same requirement; a chain with an
insecure or bogus link yields INSECURE or ERROR respectively for that
candidate.  Such a CNAME does not change which candidate is the
selected TLSA base domain, since it redirects the records, not the
identity of the service.</t>
      </section>
      <section anchor="reduction">
        <name>Evaluation and result reduction</name>
        <t>A client evaluates the candidate list in order, as shown in
<xref target="reduction-alg"/>.</t>
        <figure anchor="reduction-alg">
          <name>TLSA lookup and result reduction</name>
          <artwork><![CDATA[
Evaluate(refname, port, proto):

  name = Normalize(refname)               ; input contract
  if name is an address literal or fails the contract:
      return "no DANE binding"            ; no outcome class

  candidates = CandidateBaseDomains(name) ; preceding figure
  if candidates is error:
      return ERROR
  if candidates is insecure:
      return INSECURE                     ; no TLSA query

  for C in candidates:                    ; in order
      owner = "_" + port + "._" + proto + "." + C
      R = Lookup(owner, TLSA)

      if R is bogus or indeterminate or failed:
          return ERROR

      if R is secure and carries a TLSA RRset:
          selected_base_domain = C
          if AnyUsable(R):                ; usability filtering
              return SECURE_USABLE
          else:
              return SECURE_UNUSABLE

      if R is secure and is a denial of existence:
          continue

      if R is insecure:
          if C is not the last candidate:
              continue
          else:
              return INSECURE

  return SECURE_ABSENT
]]></artwork>
        </figure>
        <t>The rules this encodes, stated in prose:</t>
        <ul spacing="normal">
          <li>
            <t>A validated TLSA RRset is final, whether or not the client can use
the records in it.  Finding one stops the search; the client does
not fall back to a later candidate in the hope of finding records it
likes better.  This is what makes SECURE_UNUSABLE a distinct outcome
rather than a variety of absence.</t>
          </li>
          <li>
            <t>A validated denial of existence continues the search, per <xref section="7" sectionFormat="of" target="RFC7671"/>, which directs a client that finds no TLSA record at
the expanded name to query at the original name.  If no candidate
remains, the outcome is SECURE_ABSENT.  An insecure answer likewise
continues the search, since the operator may have published a
signed RRset at a later candidate.</t>
          </li>
        </ul>
        <t>A client <bcp14>MUST</bcp14> assign the same outcome class as this procedure would
for the same DNS data.  Implementations are not required to perform
the queries in this order, or to perform queries whose result cannot
affect the outcome.</t>
      </section>
      <section anchor="usable">
        <name>Usable records and digest algorithm agility</name>
        <t>Whether a record is usable is determined before any attempt is made to
match it against a certificate, and a record that is usable but does
not match the server's certificate is an authentication failure, never
a reason to reclassify the RRset as unusable.  Conflating the two
would let an attacker who can influence the certificate a server
presents convert a DANE mismatch into a fallback.</t>
        <t>A client determines the usable records in a validated TLSA RRset as
follows.</t>
        <ol spacing="normal" type="1"><li>
            <t>Discard any record whose RDATA is truncated, whose certificate
association data has a length inconsistent with its matching type,
or that is otherwise malformed.</t>
          </li>
          <li>
            <t>Discard any record whose certificate usage, selector, or matching
type the client has not implemented or has been configured not to
use.  Certificate usage support is specified in <xref target="usages"/>.</t>
          </li>
          <li>
            <t>Apply digest algorithm agility per <xref section="9" sectionFormat="of" target="RFC7671"/>: for
each combination of certificate usage and selector remaining, the
client retains records with a matching type of Full(0), and records
whose matching type is the strongest the client supports among
those present for that usage and selector.  Records using a weaker
supported matching type are discarded.</t>
          </li>
        </ol>
        <t>A matching type the client does not support <bcp14>MUST NOT</bcp14> suppress the
strongest type it does support, and malformed records <bcp14>MUST</bcp14> be
discarded in step 1 so that they do not influence the strength
selection in step 3.</t>
        <t>If any record survives step 2, the RRset is usable and the outcome is
SECURE_USABLE.  If none does, the RRset is unusable and the outcome is
SECURE_UNUSABLE.  Step 3 narrows the records the client matches
against, but it never discards the last record for a usage and
selector, so it cannot change the outcome class.</t>
      </section>
      <section anchor="selected">
        <name>The selected TLSA base domain, SNI, and reference identifiers</name>
        <t>The selected TLSA base domain is the candidate at which the evaluation
in <xref target="reduction"/> found a validated TLSA RRset.  It is defined only for
the outcome classes SECURE_USABLE and SECURE_UNUSABLE.</t>
        <t>When the outcome is SECURE_USABLE, the selected TLSA base domain <bcp14>MUST</bcp14>
be sent as the Server Name Indication <xref target="RFC6066"/> value and, for
certificate usages other than DANE-EE(3), <bcp14>MUST</bcp14> be the primary
reference identifier for certificate name checks.  This is the rule of
<xref section="7" sectionFormat="of" target="RFC7671"/>.</t>
        <t>When the outcome is SECURE_UNUSABLE, the client <bcp14>MUST</bcp14> instead send the
original reference name as the Server Name Indication value, and <bcp14>MUST</bcp14>
use the original reference name as the reference identifier for the
PKIX name checks that <xref target="behavior"/> then requires.</t>
        <t>This departs from <xref section="7" sectionFormat="of" target="RFC7671"/> because of what
SECURE_UNUSABLE means.  A DANE client puts the expanded base domain in
SNI because it is prepared to accept a certificate issued for that
name.  A client that can use no record in the RRset is about to fall
back to PKIX authentication against the configured name; sending the
base domain in SNI would ask a server that selects its certificate by
SNI for a certificate the client must then reject, and the handshake
fails for a reason unrelated to the security of either name.</t>
        <t>The selected TLSA base domain is reported in the audit record
(<xref target="audit"/>) in both cases, so that an operator can see which name the
policy decision was derived from.</t>
      </section>
    </section>
    <section anchor="authn">
      <name>Authenticating the Server</name>
      <section anchor="usages">
        <name>Certificate usages</name>
        <t>A client implementing this document <bcp14>MUST</bcp14> support certificate usages
DANE-EE(3) and DANE-TA(2).  Both are used with the semantics given in
Sections <xref target="RFC7671" section="5.1" sectionFormat="bare"/> and <xref target="RFC7671" section="5.2" sectionFormat="bare"/> of <xref target="RFC7671"/> respectively.  <xref section="4" sectionFormat="of" target="RFC7671"/> recommends exactly this pair, and cautions that
simultaneous support for all four usages is not recommended.</t>
        <t>Support for certificate usages PKIX-TA(0) and PKIX-EE(1) is <bcp14>OPTIONAL</bcp14>.
A client that does not support them treats records carrying them as
unusable in step 2 of <xref target="usable"/>.  Where such records are the only
ones published, the outcome is SECURE_UNUSABLE, and <xref target="behavior"/>
requires the client to authenticate the server by the PKIX rules of
<xref section="5.2.1" sectionFormat="of" target="RFC9289"/>.  That check is weaker than the
published records call for, but never weaker than <xref target="RFC9289"/> alone.</t>
        <t>A client <bcp14>MUST</bcp14> support the selectors Cert(0) and SPKI(1) and the
matching types Full(0) and SHA2-256(1), which is the support that
<xref section="6" sectionFormat="of" target="RFC6698"/> lets publishers rely on.  Support for
SHA2-512(2) is <bcp14>RECOMMENDED</bcp14>.</t>
      </section>
      <section anchor="dane-ee">
        <name>DANE-EE(3)</name>
        <t>Authentication by a DANE-EE(3) record consists of matching the
server's end-entity certificate, or its SubjectPublicKeyInfo, against
the certificate association data of a usable record, per <xref section="5.1" sectionFormat="of" target="RFC7671"/>.</t>
        <t>When such a match succeeds, the server is authenticated.  In
particular, and following <xref section="5.1" sectionFormat="of" target="RFC7671"/>:</t>
        <ul spacing="normal">
          <li>
            <t>The client <bcp14>MUST NOT</bcp14> reject the server because no name in the
presented certificate matches the reference name or the selected
TLSA base domain.  The binding of key to name is made by the TLSA
record, not by the certificate.</t>
          </li>
          <li>
            <t>The client <bcp14>MUST NOT</bcp14> reject the server because the presented
certificate is expired or not yet valid.  The validity of the
binding is the validity of the DNSSEC signatures over the TLSA
RRset.</t>
          </li>
          <li>
            <t>The client <bcp14>MUST NOT</bcp14> require that the presented certificate chain to
a trusted certification authority.</t>
          </li>
        </ul>
        <t>Consequently a self-signed server certificate, published as a
DANE-EE(3) record with selector SPKI(1) and matching type
SHA2-256(1), is a fully conforming deployment; see
<xref target="ta-distribution"/>.</t>
      </section>
      <section anchor="dane-ta">
        <name>DANE-TA(2)</name>
        <t>Authentication by a DANE-TA(2) record consists of validating the
server's certificate chain to the trust anchor the record identifies,
per <xref section="5.2" sectionFormat="of" target="RFC7671"/>, and then performing name checks
against the reference identifiers determined in <xref target="selected"/>.</t>
        <t>Those name checks are performed per <xref target="RFC9525"/>, retaining the
restriction in <xref section="5.2.1" sectionFormat="of" target="RFC9289"/> that a DNS domain name in
an RPC-with-TLS certificate <bcp14>MUST NOT</bcp14> contain the wildcard character
"*".</t>
      </section>
      <section anchor="behavior">
        <name>Required client behavior by outcome class</name>
        <t><xref target="behavior-table"/> states what a client in opportunistic mode <bcp14>MUST</bcp14> do
for each DNS outcome class.  In mandatory mode the SECURE_USABLE row
applies, with TLS required whatever the provenance of the port, and
every other outcome fails the association attempt (<xref target="modes"/>).  In
every case where authentication is required, failure of that
authentication fails the association attempt; see <xref target="no-retry"/>.</t>
        <t>The requirement that TLS be used is carried by the security floor.
Where the DNS outcome was derived from a port of untrusted provenance,
<xref target="provenance"/> withholds that floor, and in opportunistic mode
<xref target="fallback"/> then governs whether the attempt may proceed in
cleartext.  The authentication requirements in the table apply to any
(D)TLS session that is established, whatever the provenance of the
port.</t>
        <table anchor="behavior-table">
          <name>Required client behavior by DNS outcome class</name>
          <thead>
            <tr>
              <th align="left">DNS outcome</th>
              <th align="left">Opportunistic mode</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">SECURE_USABLE</td>
              <td align="left">TLS is required, and the server <bcp14>MUST</bcp14> be authenticated by DANE per <xref target="authn"/>. PKIX authentication <bcp14>MUST NOT</bcp14> be substituted for it.</td>
            </tr>
            <tr>
              <td align="left">SECURE_UNUSABLE</td>
              <td align="left">TLS is required, and the server <bcp14>MUST</bcp14> be authenticated per <xref section="5.2.1" sectionFormat="of" target="RFC9289"/>.</td>
            </tr>
            <tr>
              <td align="left">SECURE_ABSENT</td>
              <td align="left">This outcome does not pin a floor. A floor pinned by an earlier attempt still governs the association; otherwise <xref target="fallback"/> governs cleartext operation. A TLS session is authenticated per <xref section="5.2.1" sectionFormat="of" target="RFC9289"/>.</td>
            </tr>
            <tr>
              <td align="left">INSECURE</td>
              <td align="left">As for SECURE_ABSENT.</td>
            </tr>
            <tr>
              <td align="left">ERROR</td>
              <td align="left">The attempt <bcp14>MUST</bcp14> fail.</td>
            </tr>
          </tbody>
        </table>
        <t>The SECURE_USABLE row is the central requirement of this document.  A
client <bcp14>MUST NOT</bcp14> accept a PKIX authentication in place of the DANE
authentication the RRset calls for, however trusted the issuing
certification authority; that substitution would return control of
the association's authentication to whoever can obtain a certificate
for the name, which is what the TLSA RRset was published to prevent.</t>
        <t>The SECURE_UNUSABLE row strengthens the guidance in <xref section="10.3" sectionFormat="of" target="RFC7671"/> and <xref section="2.2" sectionFormat="of" target="RFC7672"/>, which require only
unauthenticated TLS in this case; <xref section="10.3" sectionFormat="of" target="RFC7671"/>
anticipates such a strengthening where expecting it is realistic for
the application protocol.  For RPC-with-TLS the intermediate position
is not available at all.  In both client deployment modes of
<xref section="4.2" sectionFormat="of" target="RFC9289"/> the server presents an identity that the
client can authenticate, and <xref section="5.2.1" sectionFormat="of" target="RFC9289"/> states what
validation of the server's certificate <bcp14>MUST</bcp14> include, so accepting
unauthenticated TLS here would be a downgrade relative to the base
specification rather than an improvement on cleartext.</t>
      </section>
    </section>
    <section anchor="downgrade">
      <name>Downgrade Resistance</name>
      <section anchor="floor">
        <name>The security floor</name>
        <t>A DNS outcome class of SECURE_USABLE or SECURE_UNUSABLE pins a
security floor for the server association, except where
<xref target="provenance"/> withholds it: the client <bcp14>MUST NOT</bcp14> operate that
association at a security level weaker than an authenticated TLS
session, and <bcp14>MUST</bcp14> fail the association attempt rather than do so.</t>
        <t>The floor is a property of the server association, not of the
connection on which it was determined, and it persists for the
lifetime of the association.  Once pinned, it applies to every
subsequent association attempt for that association and to every
transport that joins it (<xref target="assoc-scope"/>).  A later evaluation
whose outcome class does not pin a floor does not remove one
already pinned: an operator who withdraws a TLSA RRset lowers the
floor only for associations established after the withdrawal
(<xref target="ta-distribution"/>).  A client <bcp14>MUST</bcp14> retain a pinned floor, together
with the selected TLSA base domain it was derived from, until the
association ends.</t>
        <t>The floor is stated in terms of the security level reached rather than
of any particular attack.  It covers the STRIPTLS attack of
<xref section="6.1.1" sectionFormat="of" target="RFC9289"/>, to which <xref target="probe"/> specifies the
client's response, and any mechanism by which an attacker induces a
client to select a transport or path that receives weaker protection;
a document specifying RPC over another transport can cite this
section for the latter.</t>
      </section>
      <section anchor="probe">
        <name>AUTH_TLS probe outcomes</name>
        <t><xref section="4.1" sectionFormat="of" target="RFC9289"/> specifies that a client that does not
receive the "STARTTLS" indication <bcp14>MUST NOT</bcp14> send a ClientHello, and
that "RPC operation may continue, depending on local policy, but
without confidentiality, integrity, or peer authentication protection
from (D)TLS".  This document specifies that local policy.</t>
        <t>A client classifies the result of the AUTH_TLS probe into exactly one
of the following outcomes.</t>
        <dl>
          <dt>ACCEPTED:</dt>
          <dd>
            <t>A Reply was received with a reply_stat of MSG_ACCEPTED and an
AUTH_NONE verifier containing the "STARTTLS" token, as specified in
<xref section="4.1" sectionFormat="of" target="RFC9289"/>.</t>
          </dd>
          <dt>DECLINED:</dt>
          <dd>
            <t>A complete, well-formed Reply to the probe was received that
indicates the server does not support RPC-with-TLS.  This comprises
a reply_stat of MSG_ACCEPTED with an AUTH_NONE verifier that does
not carry the "STARTTLS" token, and a reply_stat of MSG_DENIED with
a reject_stat of AUTH_ERROR.  These are the responses produced by a
server that does not implement the AUTH_TLS authentication flavor;
in particular, AUTH_ERROR is how a server predating <xref target="RFC9289"/>
rejects an unrecognized flavor.</t>
          </dd>
          <dt>RPCERR:</dt>
          <dd>
            <t>A complete, well-formed Reply was received that is neither of the
above -- for example a reply_stat of MSG_DENIED with a reject_stat
of RPC_MISMATCH, or a reply_stat of MSG_ACCEPTED with a verifier
whose flavor is not AUTH_NONE.</t>
          </dd>
          <dt>MALFORMED:</dt>
          <dd>
            <t>A response was received that cannot be parsed as a well-formed RPC
Reply to the probe, or whose verifier length is inconsistent with
its declared flavor.</t>
          </dd>
          <dt>UNREACHABLE:</dt>
          <dd>
            <t>The connection was refused or reset, or was closed before a Reply
was received.</t>
          </dd>
          <dt>TIMEOUT:</dt>
          <dd>
            <t>No response was received within the client's timeout.</t>
          </dd>
          <dt>LOCAL:</dt>
          <dd>
            <t>A local resource failure prevented the probe from being sent, or its
result from being determined.</t>
          </dd>
        </dl>
      </section>
      <section anchor="fallback">
        <name>Cleartext fallback</name>
        <t><xref target="fallback-table"/> states whether a client in opportunistic mode may
continue in cleartext.  A client in mandatory mode never does.  Any
probe outcome other than ACCEPTED fails the association attempt
(<xref target="modes"/>).</t>
        <table anchor="fallback-table">
          <name>Cleartext fallback by AUTH_TLS probe outcome</name>
          <thead>
            <tr>
              <th align="left">Probe outcome</th>
              <th align="left">Floor pinned</th>
              <th align="left">No floor pinned</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">ACCEPTED</td>
              <td align="left">Proceed to the TLS handshake.</td>
              <td align="left">Proceed to the TLS handshake.</td>
            </tr>
            <tr>
              <td align="left">DECLINED</td>
              <td align="left">The attempt <bcp14>MUST</bcp14> fail.</td>
              <td align="left">Cleartext operation is permitted, subject to local policy, per <xref section="4.1" sectionFormat="of" target="RFC9289"/>.</td>
            </tr>
            <tr>
              <td align="left">Any other</td>
              <td align="left">The attempt <bcp14>MUST</bcp14> fail.</td>
              <td align="left">The attempt <bcp14>MUST</bcp14> fail.</td>
            </tr>
          </tbody>
        </table>
        <t>Only DECLINED permits cleartext operation, and only where no floor has
been pinned.  The other non-ACCEPTED outcomes are what an attacker
interfering with the cleartext exchange looks like; a client that
treats them as declines has no downgrade resistance even against an
attacker who cannot forge a well-formed Reply.</t>
        <t>[[TODO: Whether opportunistic mode should instead take the stricter
policy of Section 6.1.1 and <xref section="6.4" sectionFormat="of" target="RFC9289"/>, at the cost of
reachability to servers that predate it, is open.
https://github.com/chucklever/i-d-rpc-tls-dane/issues/4 ]]</t>
      </section>
      <section anchor="no-retry">
        <name>Failure after a handshake is attempted</name>
        <t>Once the AUTH_TLS probe has been ACCEPTED and a (D)TLS handshake has
been attempted, the client <bcp14>MUST NOT</bcp14> retry the association attempt in
cleartext, whatever the DNS outcome class and whatever the reason the
handshake or the subsequent authentication failed.  This holds for
DANE mismatches, PKIX validation failures where PKIX applies, TLS
negotiation failures, and the unavailability of whatever local
component performs the handshake.</t>
        <t><xref section="4.1" sectionFormat="of" target="RFC9289"/> describes a client that reports a
handshake failure after a successful probe the same way it reports an
AUTH_ERROR rejection; a client implementing this document <bcp14>MUST</bcp14>
report it that way.</t>
      </section>
      <section anchor="coherence">
        <name>Coherence within an association attempt</name>
        <t>How an implementation obtains DNS data, how many times within one
association attempt it evaluates <xref target="lookup"/>, and how a policy result
reaches the point at which the handshake is authenticated are
implementation matters.  Two properties are required of any
arrangement.</t>
        <ul spacing="normal">
          <li>
            <t>A client <bcp14>MUST</bcp14> evaluate the DNS outcome class from DNS data that is
current at the time of the association attempt, and <bcp14>MUST NOT</bcp14> reuse
an outcome obtained for an earlier attempt beyond the TTL of the
DNS data it was derived from.  The security floor is not such a
result: it persists across attempts (<xref target="floor"/>), and a fresh
evaluation can pin a floor or leave one in place but never remove
it.</t>
          </li>
          <li>
            <t>Within one association attempt, a client <bcp14>MUST NOT</bcp14> conclude at a
security level weaker than any determination it has already made
during that attempt.  Where two evaluations during one attempt
disagree, the stronger conclusion governs.</t>
          </li>
        </ul>
        <t>The second property is what makes the mechanism resistant to an
attacker who can affect the timing of DNS answers.  Under it,
SECURE_USABLE is stronger than SECURE_UNUSABLE, and SECURE_UNUSABLE
is stronger than SECURE_ABSENT and INSECURE, which are equal to each
other.  An evaluation whose outcome is ERROR fails the attempt
(<xref target="behavior"/>) and takes no part in the ordering.  The stronger
conclusion governs regardless of which evaluation produced it, so a
later evaluation that finds a usable RRset where an earlier one did
not replaces the earlier conclusion.</t>
        <t>The second property orders outcome classes, not the contents of two
RRsets.  Where two evaluations during one attempt both yield
SECURE_USABLE and their usable records differ, the client <bcp14>MUST</bcp14>
authenticate the server against the usable records of one of those
evaluations as a whole, and <bcp14>MUST NOT</bcp14> combine records drawn from
different evaluations.  A TLSA RRset republished mid-attempt during
a key rollover produces this case; when the publisher has observed
<xref target="rollover"/>, both RRsets match the certificate the server presents
and the attempt succeeds whichever one the client uses.</t>
      </section>
    </section>
    <section anchor="assoc-scope">
      <name>Association Scope and Policy Granularity</name>
      <section anchor="policy-is-per-association">
        <name>Policy is per association</name>
        <t>The DANE policy mode, the reference name, and any pinned security
floor are properties of a server association.  A client <bcp14>MUST</bcp14> be able
to apply different policies concurrently to different server
associations, since the servers a host contacts differ in whether
they have deployed DANE.</t>
        <t>A client that shares underlying state between server associations --
connection caching, session reuse, or a client object shared between
two mounts of the same server -- <bcp14>MUST NOT</bcp14> share it between
associations whose DANE policy modes or reference names differ.  Two
names that resolve to the same address may have different TLSA
RRsets, and an association established under one name has not
authenticated the server for the other.</t>
      </section>
      <section anchor="add-xprt">
        <name>Transports joining an association later</name>
        <t>A client may add transports to an existing server association for
additional bandwidth or additional server network paths.</t>
        <t>While a security floor is pinned for an association, a transport <bcp14>MUST
NOT</bcp14> join that association unless it carries the association's
reference name and is established with the authenticated TLS session
the floor requires.
A transport whose destination is an address literal therefore cannot
join a floor-pinned association (<xref target="no-dane"/>).  A client <bcp14>MUST</bcp14> refuse
an addition that does not meet both conditions and record the
refusal (<xref target="audit"/>); the association
continues over the transports that do meet its floor.</t>
      </section>
      <section anchor="derived">
        <name>Derived associations</name>
        <t>Upper-layer protocols direct clients to establish further associations
to destinations the client did not select.  NFSv4 <xref target="RFC8881"/> does
this in at least three ways: a parallel NFS layout identifies data
servers, the file system location attributes identify referral
targets, and a migration event identifies a new location for a file
system.  A destination so identified is either an address literal or
a DNS name.  A name is the reference name of the derived association,
subject to the input contract of <xref target="refname"/>; an address literal
gives the derived association no DANE binding (<xref target="no-dane"/>).</t>
        <t>A security floor pinned for one server association does not extend to
a derived association.  A client <bcp14>MUST</bcp14> evaluate DANE policy
independently for each association it establishes, from that
association's own reference name.  In mandatory mode, a derived
association for which no DANE binding can be established fails
(<xref target="modes"/>), even though this may render some upper-layer features
unusable (<xref target="sec-derived"/>).</t>
        <t>Defining DNS-based identities for the destinations that upper-layer
protocols hand out -- so that a data server or a referral target can
be named rather than addressed -- is work for the specifications of
those protocols, and is outside the scope of this document.</t>
      </section>
    </section>
    <section anchor="audit">
      <name>Auditing</name>
      <t>A client implementing this document <bcp14>MUST</bcp14> extend the audit log that
<xref section="6.1" sectionFormat="of" target="RFC9289"/> requires to cover the DANE policy
decision.  For each association attempt in which DANE policy applied,
the record <bcp14>MUST</bcp14> include:</t>
      <ul spacing="normal">
        <li>
          <t>the reference name, and an indication of whether it was supplied by
local configuration or derived some other way;</t>
        </li>
        <li>
          <t>the destination network address, port, and transport;</t>
        </li>
        <li>
          <t>the DANE policy mode in effect and where it came from;</t>
        </li>
        <li>
          <t>the DNS outcome class, with enough diagnostic detail to distinguish
the conditions grouped under ERROR, or an indication that no lookup
was made because the destination carries no DANE binding
(<xref target="no-dane"/>);</t>
        </li>
        <li>
          <t>the selected TLSA base domain, where one was determined;</t>
        </li>
        <li>
          <t>the AUTH_TLS probe outcome (<xref target="probe"/>), or an indication that the
attempt failed before a probe was sent;</t>
        </li>
        <li>
          <t>the means by which the server was authenticated, if it was:
DANE-EE(3), DANE-TA(2), or PKIX;</t>
        </li>
        <li>
          <t>for a DANE authentication, the usage, selector, and matching type
of the record that matched; and</t>
        </li>
        <li>
          <t>the resulting disposition of the attempt: authenticated TLS,
cleartext operation, or failure, with the reason for a failure.</t>
        </li>
      </ul>
      <t>The record <bcp14>MAY</bcp14> consist of correlatable events emitted by more than one
component, provided that the events can be joined and that together
they cover the whole list.</t>
    </section>
    <section anchor="impl-status">
      <name>Implementation Status</name>
      <t>This section is to be removed before publishing as an RFC.</t>
      <t>This section records the status of known implementations of the
protocol defined by this specification at the time of posting of this
Internet-Draft, and is based on a proposal described in <xref target="RFC7942"/>.
The description of implementations in this section is intended to
assist the IETF in its decision processes in progressing drafts to
RFCs.  Please note that the listing of any individual implementation
here does not imply endorsement by the IETF.  Furthermore, no effort
has been spent to verify the information presented here that was
supplied by IETF contributors.  This is not intended as, and must not
be construed to be, a catalog of available implementations or their
features.  Readers are advised to note that other implementations may
exist.</t>
      <section anchor="tlshd-ktls-utils">
        <name>tlshd (ktls-utils)</name>
        <dl>
          <dt>Organization:</dt>
          <dd>
            <t>The ktls-utils project.</t>
          </dd>
          <dt>Description:</dt>
          <dd>
            <t>tlshd is the userspace handshake agent used by the Linux kernel's
TLS handshake service.  It performs the (D)TLS handshake on behalf
of in-kernel RPC-with-TLS consumers.</t>
          </dd>
          <dt>Implementation:</dt>
          <dd>
            <t>https://github.com/linux-nfs/ktls-utils</t>
          </dd>
          <dt>Level of maturity:</dt>
          <dd>
            <t>Prototype.  The DANE support first shipped in ktls-utils 1.5.0,
and is disabled by default.</t>
          </dd>
          <dt>Coverage:</dt>
          <dd>
            <t>The reference-name input contract (<xref target="refname"/>); the candidate
determination and result reduction of <xref target="lookup"/>, including secure
CNAME expansion; the five outcome classes of <xref target="outcomes"/>; the
usability filtering and digest algorithm agility of <xref target="usable"/>; the
reference-identity rules of <xref target="selected"/>; certificate usage
DANE-EE(3) (<xref target="dane-ee"/>); and the authentication behavior of
<xref target="behavior"/> for both the client-anonymous and the mutually
authenticated handshake path.</t>
          </dd>
          <dt/>
          <dd>
            <t>Not implemented: certificate usage DANE-TA(2), DTLS over UDP, and
the association-scope enforcement of <xref target="assoc-scope"/>, which belongs to the
RPC client rather than to the handshake agent.</t>
          </dd>
          <dt>Licensing:</dt>
          <dd>
            <t>GPLv2.</t>
          </dd>
          <dt>Contact:</dt>
          <dd>
            <t>The editor of this document.</t>
          </dd>
          <dt>Experience:</dt>
          <dd>
            <t>The implementation was exercised against publicly available DANE
test zones as well as against a locally signed test zone.  The
reference-identity rule in <xref target="selected"/> for the SECURE_UNUSABLE
class was added after the implementation hit the handshake failure
that section describes.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>The security considerations of <xref target="RFC9289"/>, <xref target="RFC6698"/>, <xref target="RFC7671"/>,
and <xref target="RFC4033"/> apply.</t>
      <section anchor="what-dane-authentication-does-and-does-not-establish">
        <name>What DANE authentication does and does not establish</name>
        <t>A successful DANE-EE(3) match establishes that the peer holds the key
that the operator of the TLSA base domain's zone published for that
service at that port and transport.  It establishes nothing about the
names in the presented certificate, its validity dates, or its issuer
(<xref target="dane-ee"/>).  A deployment that relies on certificate contents for
authorization -- an extended key usage check, a certificate policy, a
subjectAltName URI -- as <xref section="5.2.1" sectionFormat="of" target="RFC9289"/> permits, needs
to keep performing those checks independently; a DANE match does not
perform them.</t>
        <t>Control of the zone that publishes the TLSA RRset is control of the
service's authentication.  Trust moves from the certification
authorities the client would otherwise trust to the zone operator and
the DNSSEC chain above it.  For the deployments in
<xref target="ta-distribution"/> that is the point, since the party that operates
the server also operates the zone; where DNS is operated by a third
party, the concentration should be evaluated before deployment.</t>
      </section>
      <section anchor="replay">
        <name>Replay and the limits of revocation</name>
        <t>DNSSEC provides no way to revoke a signed RRset before its signatures
expire (<xref section="11" sectionFormat="of" target="RFC7671"/>).  The following consequences are
each bounded by a signature validity period rather than by anything
the client can do.</t>
        <t>An attacker who captured a signed denial of existence for a TLSA owner
name before the operator published the RRset can replay it within that
period; the client assigns SECURE_ABSENT and does not pin a floor
(<xref target="adaptive"/>).</t>
        <t>An attacker who captured the parent zone's signed proof that the
operator's zone has no DS RRset, before the operator signed that zone,
can replay it in the same way.  A validator shown that proof treats
the zone as unsigned (<xref section="5.2" sectionFormat="of" target="RFC4035"/>); the client assigns
INSECURE and does not pin a floor.  The window is bounded by the validity
period of the parent zone's signatures, which the operator of the
service does not choose.</t>
        <t>An attacker who holds a key the operator has withdrawn can replay the
TLSA RRset that still names it, and a client will authenticate the
peer; since <xref target="dane-ee"/> disregards the certificate's validity dates,
the RRset's signatures are the only expiry.  The mitigation is
operational and belongs to the publisher (<xref target="ta-distribution"/>).</t>
        <t>A security floor, once pinned, persists for the lifetime of the
association (<xref target="floor"/>).  A replayed denial therefore cannot authorize
cleartext operation once a floor is pinned: replayed at a reconnect,
it leaves the floor in place, and a forged decline fails the attempt
rather than permitting fallback.</t>
        <t>That guarantee has two limits.  An association whose attempts have so
far pinned no floor stays exposed to the replay at every later
attempt, until an evaluation pins one.  And the floor requires an
authenticated TLS session, not DANE authentication.  An attempt that
a replayed denial leaves at SECURE_ABSENT or INSECURE authenticates
the server by the PKIX rules of <xref section="5.2.1" sectionFormat="of" target="RFC9289"/>, so
within the replay window an attacker who can present a certificate
those rules accept regains the substitution that <xref target="behavior"/> forbids
for SECURE_USABLE.  Where the client trusts no certification
authority that would issue such a certificate, as in the deployment
<xref target="ta-distribution"/> describes, the attempt fails.</t>
        <t>Conversely, this document does not require a client to
re-evaluate an association that is already established, so a
long-lived session established against an RRset that has since been
withdrawn continues under the conclusion reached when it was
established.</t>
      </section>
      <section anchor="fail-closed-behavior-is-a-denial-of-service-surface">
        <name>Fail-closed behavior is a denial-of-service surface</name>
        <t>The rules in <xref target="behavior"/>, <xref target="fallback"/>, and <xref target="coherence"/> require a
client to fail an association attempt in circumstances where an
<xref target="RFC9289"/> client would have continued.  An attacker who can disrupt
the client's DNS -- by dropping responses, by inducing SERVFAIL, or by
corrupting signatures to produce a bogus validation result -- can
therefore prevent the client from establishing associations.  The
exposure extends to an association already established: each
reconnection is an association attempt and evaluates the DNS outcome
afresh (<xref target="coherence"/>), so a disruption of DNS that coincides with
the loss of a connection keeps the association from recovering.</t>
        <t>This is a deliberate trade: degrading when DNS is disrupted hands the
same attacker the ability to strip protection silently, and an
attacker who can disrupt DNS can usually disrupt the RPC traffic
itself.  Opportunistic
mode does not relieve this exposure, since ERROR fails the attempt in
both active modes; operators for whom availability outweighs
confidentiality express that by leaving DANE disabled for the
associations concerned.</t>
      </section>
      <section anchor="sec-ports">
        <name>Unauthenticated port selection</name>
        <t>The rule in <xref target="provenance"/>, that a floor is pinned only on a port of
trusted provenance, keeps an attacker who substitutes the port in an
RPCBIND <xref target="RFC1833"/> reply from pinning a floor the operator did not
intend.  It does not prevent the SECURE_ABSENT outcome that the
substitution produces, so a client that obtains its ports from RPCBIND
is left as exposed to cleartext fallback as an <xref target="RFC9289"/> client.</t>
        <t>An RPCBIND reply carries a universal address (<xref section="2.2.1" sectionFormat="of" target="RFC1833"/>), so an attacker who rewrites it can substitute the host
as readily as the port.  A substituted host alone is defended by
DANE, since it cannot present a certificate matching the TLSA RRset
for the reference name; a substituted port yields SECURE_ABSENT, and
neither the address nor the port is then protected.</t>
        <t>The remedy available today is to protect RPCBIND itself.  RPCBIND is
an RPC program, so a client can send an AUTH_TLS probe to its port,
authenticate it by the procedures in this document against the TLSA
RRset published for that port and transport, and make its lookups
over the resulting session.  The ports it learns then come from an
authenticated source.  The RPCBIND port is well known and therefore
of trusted provenance under <xref target="provenance"/>, so there is no bootstrap
problem.  This document describes the arrangement rather than
requiring it, since no RPCBIND implementation is known to support
RPC-with-TLS.</t>
        <t>A session established to the RPCBIND port authenticates the RPCBIND
service alone.  The service the client goes on to contact is
authenticated separately, against the TLSA RRset for its own port,
and a security floor determined for one is not a floor for the
other.  An operator who protects RPCBIND but publishes no TLSA RRset
for the service has secured the discovery step alone; one who
publishes for the service but leaves RPCBIND unprotected has left the
guarantees in this document resting on an unauthenticated reply.</t>
      </section>
      <section anchor="sec-derived">
        <name>Derived associations</name>
        <t>A security floor does not extend to an association whose destination
an upper-layer protocol supplied (<xref target="derived"/>).  The practical
consequence for NFSv4 <xref target="RFC8881"/> is that data-path
traffic is protected only as well as the weakest derived association
carrying it.  A client that has pinned a floor for its metadata
association, and then reads and writes file data over parallel NFS
data server connections established from address literals, has
obtained no DANE protection for the data itself.  Operators should not
infer from a floor pinned on the metadata association that the data
path is equivalently protected.  A client in mandatory mode fails such
connections rather than establishing them (<xref target="derived"/>), which makes
the limitation visible rather than silent, at the cost of the feature.</t>
      </section>
      <section anchor="privacy-considerations">
        <name>Privacy considerations</name>
        <t>TLSA queries disclose, to an observer of the client's DNS traffic,
which RPC services the client is about to contact and on which ports.
The names and addresses are already disclosed by address resolution
and by the RPC traffic itself; the port and transport labels are
additional.  This disclosure happens before the exchanges that
<xref section="6.1.2" sectionFormat="of" target="RFC9289"/> discusses, and the precautions given
there do not reach it.</t>
        <t><xref target="RFC9076"/> surveys what DNS transactions disclose.  Two mitigations
are available, and each is partial.  An encrypted transport to the
resolver (<xref section="5.2" sectionFormat="of" target="RFC9076"/>) hides the queries from an
observer of that path, but not from the resolver.  Resolving
recursively on the client removes the third-party resolver, but
exposes the client's address to the authoritative servers it queries
(<xref section="6.2" sectionFormat="of" target="RFC9076"/>).  Pervasive monitoring <xref target="RFC7258"/> of
DNS is a known concern for DANE generally.</t>
      </section>
      <section anchor="client-auth">
        <name>Client authentication</name>
        <t>This document specifies the authentication of a server to a client
only.  <xref target="RFC9289"/> also provides for mutual authentication, in which
the server validates the client's certificate by PKIX; DANE-based
authentication in that direction is not specified here.  The generic
mechanism exists in <xref target="I-D.ietf-dance-client-auth"/>, and an RPC
profile of it would need to choose the owner-name form for RPC peers,
restrict the certificate usages, and specify how a DANE-authenticated
client name maps onto RPC-layer authorization.  That is work for a
separate document.</t>
        <t>Until then, a deployment that requires mutual authentication uses the
PKIX mechanism of <xref section="5.2.1" sectionFormat="of" target="RFC9289"/> for the client
direction and DANE for the server direction; <xref target="behavior"/> applies to
the server's certificate whether or not the client presents one.</t>
      </section>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document requests no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC1035">
          <front>
            <title>Domain names - implementation and specification</title>
            <author fullname="P. Mockapetris" initials="P." surname="Mockapetris"/>
            <date month="November" year="1987"/>
            <abstract>
              <t>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="RFC4033">
          <front>
            <title>DNS Security Introduction and Requirements</title>
            <author fullname="R. Arends" initials="R." surname="Arends"/>
            <author fullname="R. Austein" initials="R." surname="Austein"/>
            <author fullname="M. Larson" initials="M." surname="Larson"/>
            <author fullname="D. Massey" initials="D." surname="Massey"/>
            <author fullname="S. Rose" initials="S." surname="Rose"/>
            <date month="March" year="2005"/>
            <abstract>
              <t>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="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC5531">
          <front>
            <title>RPC: Remote Procedure Call Protocol Specification Version 2</title>
            <author fullname="R. Thurlow" initials="R." surname="Thurlow"/>
            <date month="May" year="2009"/>
            <abstract>
              <t>This document describes the Open Network Computing (ONC) Remote Procedure Call (RPC) version 2 protocol as it is currently deployed and accepted. This document obsoletes RFC 1831. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5531"/>
          <seriesInfo name="DOI" value="10.17487/RFC5531"/>
        </reference>
        <reference anchor="RFC5890">
          <front>
            <title>Internationalized Domain Names for Applications (IDNA): Definitions and Document Framework</title>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <date month="August" year="2010"/>
            <abstract>
              <t>This document is one of a collection that, together, describe the protocol and usage context for a revision of Internationalized Domain Names for Applications (IDNA), superseding the earlier version. It describes the document collection and provides definitions and other material that are common to the set. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5890"/>
          <seriesInfo name="DOI" value="10.17487/RFC5890"/>
        </reference>
        <reference anchor="RFC6066">
          <front>
            <title>Transport Layer Security (TLS) Extensions: Extension Definitions</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <date month="January" year="2011"/>
            <abstract>
              <t>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">
          <front>
            <title>The DNS-Based Authentication of Named Entities (DANE) Transport Layer Security (TLS) Protocol: TLSA</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="J. Schlyter" initials="J." surname="Schlyter"/>
            <date month="August" year="2012"/>
            <abstract>
              <t>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="RFC7671">
          <front>
            <title>The DNS-Based Authentication of Named Entities (DANE) Protocol: Updates and Operational Guidance</title>
            <author fullname="V. Dukhovni" initials="V." surname="Dukhovni"/>
            <author fullname="W. Hardaker" initials="W." surname="Hardaker"/>
            <date month="October" year="2015"/>
            <abstract>
              <t>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="RFC9289">
          <front>
            <title>Towards Remote Procedure Call Encryption by Default</title>
            <author fullname="T. Myklebust" initials="T." surname="Myklebust"/>
            <author fullname="C. Lever" initials="C." role="editor" surname="Lever"/>
            <date month="September" year="2022"/>
            <abstract>
              <t>This document describes a mechanism that, through the use of opportunistic Transport Layer Security (TLS), enables encryption of Remote Procedure Call (RPC) transactions while they are in transit. The proposed mechanism interoperates with Open Network Computing (ONC) RPC implementations that do not support it. This document updates RFC 5531.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9289"/>
          <seriesInfo name="DOI" value="10.17487/RFC9289"/>
        </reference>
        <reference anchor="RFC9525">
          <front>
            <title>Service Identity in TLS</title>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <author fullname="R. Salz" initials="R." surname="Salz"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>Many application technologies enable secure communication between two entities by means of Transport Layer Security (TLS) with Internet Public Key Infrastructure using X.509 (PKIX) certificates. This document specifies procedures for representing and verifying the identity of application services in such interactions.</t>
              <t>This document obsoletes RFC 6125.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9525"/>
          <seriesInfo name="DOI" value="10.17487/RFC9525"/>
        </reference>
        <reference anchor="RFC9846">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="July" year="2026"/>
            <abstract>
              <t>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>This document obsoletes RFC 8446, which specified TLS 1.3. This document obsoletes RFC 5246 (specifying TLS 1.2) and RFCs 5077, 6961, 7627, and 8422, all of which pertain to TLS 1.2 or earlier, and updates RFCs 5705 and 6066. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9846"/>
          <seriesInfo name="DOI" value="10.17487/RFC9846"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC1833">
          <front>
            <title>Binding Protocols for ONC RPC Version 2</title>
            <author fullname="R. Srinivasan" initials="R." surname="Srinivasan"/>
            <date month="August" year="1995"/>
            <abstract>
              <t>This document describes the binding protocols used in conjunction with the ONC Remote Procedure Call (ONC RPC Version 2) protocols. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1833"/>
          <seriesInfo name="DOI" value="10.17487/RFC1833"/>
        </reference>
        <reference anchor="RFC4035">
          <front>
            <title>Protocol Modifications for the DNS Security Extensions</title>
            <author fullname="R. Arends" initials="R." surname="Arends"/>
            <author fullname="R. Austein" initials="R." surname="Austein"/>
            <author fullname="M. Larson" initials="M." surname="Larson"/>
            <author fullname="D. Massey" initials="D." surname="Massey"/>
            <author fullname="S. Rose" initials="S." surname="Rose"/>
            <date month="March" year="2005"/>
            <abstract>
              <t>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>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="RFC5011">
          <front>
            <title>Automated Updates of DNS Security (DNSSEC) Trust Anchors</title>
            <author fullname="M. StJohns" initials="M." surname="StJohns"/>
            <date month="September" year="2007"/>
            <abstract>
              <t>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>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="RFC6125">
          <front>
            <title>Representation and Verification of Domain-Based Application Service Identity within Internet Public Key Infrastructure Using X.509 (PKIX) Certificates in the Context of Transport Layer Security (TLS)</title>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <author fullname="J. Hodges" initials="J." surname="Hodges"/>
            <date month="March" year="2011"/>
            <abstract>
              <t>Many application technologies enable secure communication between two entities by means of Internet Public Key Infrastructure Using X.509 (PKIX) certificates in the context of Transport Layer Security (TLS). This document specifies procedures for representing and verifying the identity of application services in such interactions. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6125"/>
          <seriesInfo name="DOI" value="10.17487/RFC6125"/>
        </reference>
        <reference anchor="RFC7250">
          <front>
            <title>Using Raw Public Keys in Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
            <author fullname="P. Wouters" initials="P." role="editor" surname="Wouters"/>
            <author fullname="H. Tschofenig" initials="H." role="editor" surname="Tschofenig"/>
            <author fullname="J. Gilmore" initials="J." surname="Gilmore"/>
            <author fullname="S. Weiler" initials="S." surname="Weiler"/>
            <author fullname="T. Kivinen" initials="T." surname="Kivinen"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>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="RFC7258">
          <front>
            <title>Pervasive Monitoring Is an Attack</title>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="May" year="2014"/>
            <abstract>
              <t>Pervasive monitoring is a technical attack that should be mitigated in the design of IETF protocols, where possible.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="188"/>
          <seriesInfo name="RFC" value="7258"/>
          <seriesInfo name="DOI" value="10.17487/RFC7258"/>
        </reference>
        <reference anchor="RFC7435">
          <front>
            <title>Opportunistic Security: Some Protection Most of the Time</title>
            <author fullname="V. Dukhovni" initials="V." surname="Dukhovni"/>
            <date month="December" year="2014"/>
            <abstract>
              <t>This document defines the concept "Opportunistic Security" in the context of communications protocols. Protocol designs based on Opportunistic Security use encryption even when authentication is not available, and use authentication when possible, thereby removing barriers to the widespread use of encryption on the Internet.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7435"/>
          <seriesInfo name="DOI" value="10.17487/RFC7435"/>
        </reference>
        <reference anchor="RFC7672">
          <front>
            <title>SMTP Security via Opportunistic DNS-Based Authentication of Named Entities (DANE) Transport Layer Security (TLS)</title>
            <author fullname="V. Dukhovni" initials="V." surname="Dukhovni"/>
            <author fullname="W. Hardaker" initials="W." surname="Hardaker"/>
            <date month="October" year="2015"/>
            <abstract>
              <t>This memo describes a downgrade-resistant protocol for SMTP transport security between Message Transfer Agents (MTAs), based on the DNS-Based Authentication of Named Entities (DANE) TLSA DNS record. Adoption of this protocol enables an incremental transition of the Internet email backbone to one using encrypted and authenticated Transport Layer Security (TLS).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7672"/>
          <seriesInfo name="DOI" value="10.17487/RFC7672"/>
        </reference>
        <reference anchor="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <reference anchor="RFC8881">
          <front>
            <title>Network File System (NFS) Version 4 Minor Version 1 Protocol</title>
            <author fullname="D. Noveck" initials="D." role="editor" surname="Noveck"/>
            <author fullname="C. Lever" initials="C." surname="Lever"/>
            <date month="August" year="2020"/>
            <abstract>
              <t>This document describes the Network File System (NFS) version 4 minor version 1, including features retained from the base protocol (NFS version 4 minor version 0, which is specified in RFC 7530) and protocol extensions made subsequently. The later minor version has no dependencies on NFS version 4 minor version 0, and is considered a separate protocol.</t>
              <t>This document obsoletes RFC 5661. It substantially revises the treatment of features relating to multi-server namespace, superseding the description of those features appearing in RFC 5661.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8881"/>
          <seriesInfo name="DOI" value="10.17487/RFC8881"/>
        </reference>
        <reference anchor="RFC9076">
          <front>
            <title>DNS Privacy Considerations</title>
            <author fullname="T. Wicinski" initials="T." role="editor" surname="Wicinski"/>
            <date month="July" year="2021"/>
            <abstract>
              <t>This document describes the privacy issues associated with the use of the DNS by Internet users. It provides general observations about typical current privacy practices. It is intended to be an analysis of the present situation and does not prescribe solutions. This document obsoletes RFC 7626.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9076"/>
          <seriesInfo name="DOI" value="10.17487/RFC9076"/>
        </reference>
        <reference anchor="I-D.ietf-dance-client-auth">
          <front>
            <title>TLS Client Authentication via DANE TLSA records</title>
            <author fullname="Shumon Huque" initials="S." surname="Huque">
              <organization>Salesforce</organization>
            </author>
            <author fullname="Viktor Dukhovni" initials="V." surname="Dukhovni">
              <organization>OpenSSL Corporation</organization>
            </author>
            <date day="11" month="September" year="2026"/>
            <abstract>
              <t>   The DANE TLSA protocol describes how to publish Transport Layer
   Security (TLS) server certificates or public keys in the DNS.  This
   document updates RFC 6698 and RFC 7671.  It describes how to use the
   TLSA record to publish client certificates or public keys, and also
   the rules and considerations for using them with TLS.  In addition,
   it defines a new TLS extension, DANE Client Identity, to convey the
   client's domain name identity to the server.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-dance-client-auth-14"/>
        </reference>
      </references>
    </references>
    <?line 1415?>

<section anchor="deployment">
      <name>Deployment Considerations</name>
      <section anchor="ta-distribution">
        <name>Publishing TLSA records for RPC services</name>
        <t>The simplest conforming deployment, and the one that addresses the
operational problem described in <xref target="intro"/>, is to publish for
each service a single DANE-EE(3) record with selector SPKI(1) and
matching type SHA2-256(1), written "3 1 1", in a DNSSEC-signed zone:</t>
        <figure>
          <name>A minimal TLSA RRset for an NFS service</name>
          <artwork><![CDATA[
_2049._tcp.nfs.example.com. IN TLSA 3 1 1 (
                               2A1B4C...  )
]]></artwork>
        </figure>
        <t>Clients then need no certification authority material for those
servers, the operator maintains the binding in one place, and by
<xref target="dane-ee"/> the certificate may be self-signed with any notAfter
date.  Keeping the RRset and certificates in step, in particular
during key rollover, is specified in <xref target="rollover"/>.  Withdrawing DANE takes
the same posture: a client that has pinned a floor for an association
keeps requiring authenticated TLS until that association ends
(<xref target="floor"/>), so removing the RRset lowers what clients require only
as they remount.  Where clients hold no certification authority
material for the server, an association with a pinned floor cannot
re-establish a connection once the RRset is gone: the floor still
requires an authenticated session, and nothing remains to
authenticate it against.</t>
        <t>The signature validity period the operator chooses bounds the replay
windows described in <xref target="replay"/>, except that of a replayed proof of
an unsigned delegation, which the parent zone's signatures bound.
<xref section="11" sectionFormat="of" target="RFC7671"/> suggests
a lifetime of a few days for domains publishing high-value keys.</t>
        <t>A publisher of DANE-TA(2) records has one further obligation.  A
client validates the server's chain to the trust anchor the record
identifies (<xref target="dane-ta"/>), and it has no trust store in which to
find that anchor.  Unless the record carries the full trust anchor
certificate, the server therefore has to include the anchor in the
chain it presents, even a self-signed root that a TLS server would
ordinarily omit; <xref section="5.2.2" sectionFormat="of" target="RFC7671"/> states the
requirement.</t>
        <t>The Server Name Indication value such a deployment receives is not
fixed.  <xref target="selected"/> sends the selected TLSA base domain when the
outcome is SECURE_USABLE and the original reference name when it is
SECURE_UNUSABLE, and the two differ whenever the RRset was found at
a securely CNAME-expanded name.  A server that selects its
certificate strictly by SNI, and fails a handshake carrying a name
it does not recognize, rejects clients that conform to this
document.  A server should instead present its default certificate,
the one its TLSA RRset matches, when the SNI value is absent or
unrecognized.  <xref section="8.1" sectionFormat="of" target="RFC7672"/> gives SMTP servers the
same guidance for the same reason.</t>
      </section>
      <section anchor="unsigned">
        <name>Unsigned zones prove nothing</name>
        <t>A TLSA RRset in an unsigned zone yields the outcome INSECURE whatever
it contains, and so does a denial of existence from one.  Publishing
without signing the zone gives an attacker something to remove rather
than the client something to rely on; an operator obtains none of the
properties in this document without signing the zone.</t>
      </section>
      <section anchor="adaptive">
        <name>Downgrade resistance of opportunistic DANE</name>
        <t>Opportunistic mode (<xref target="modes"/>) adapts to what each operator has
deployed, which is what makes it usable across a mixed server
population.  This adaptivity is not itself a downgrade path.</t>
        <t>Against a client that validates DNSSEC, moving a server from
SECURE_USABLE to a weaker class requires forging a denial of
existence in a signed zone, which fails validation; stripping
signatures, which yields ERROR and fails the attempt; or a validated
proof that a delegation above the owner name is unsigned, which the
attacker cannot produce without the parent zone's signing key.</t>
        <t>What remains is replay of a signed denial captured before the
operator deployed DANE, which leaves the client at SECURE_ABSENT or
INSECURE until the captured signatures expire.  <xref target="replay"/> describes
that window and its bound.  A deployment that wants to close it can
adopt the stricter policy of <xref section="6.4" sectionFormat="of" target="RFC9289"/>, whatever
the DNS outcome.</t>
        <t>This is the same argument that supports opportunistic DANE for SMTP
<xref target="RFC7672"/>; on opportunistic security in general, see <xref target="RFC7435"/>.</t>
      </section>
    </section>
    <section anchor="open-issues">
      <name>Open Issues</name>
      <t>This section is to be removed before publishing as an RFC.</t>
      <t>Each item is tracked as an issue in this document's issue tracker,
where the detail and the discussion live.</t>
      <ul spacing="normal">
        <li>
          <t><xref target="probe"/>: whether the partition of AUTH_TLS probe results, and in
particular which of them count as DECLINED, preserves reachability
to the pre-<xref target="RFC9289"/> server population.
<eref target="https://github.com/chucklever/i-d-rpc-tls-dane/issues/3">Issue 3</eref></t>
        </li>
        <li>
          <t><xref target="fallback"/>: whether cleartext operation remains permitted where no
floor has been pinned and the server declines, or opportunistic mode
takes the stricter policy of Section <xref target="RFC9289" section="6.1.1" sectionFormat="bare"/> and Section <xref target="RFC9289" section="6.4" sectionFormat="bare"/> of <xref target="RFC9289"/>; and whether a failed handshake is remembered across
association attempts.
<eref target="https://github.com/chucklever/i-d-rpc-tls-dane/issues/4">Issue 4</eref></t>
        </li>
        <li>
          <t><xref target="usages"/>: whether support for certificate usages PKIX-TA(0) and
PKIX-EE(1) stays optional, or a client always treats records
carrying them as unusable.
<eref target="https://github.com/chucklever/i-d-rpc-tls-dane/issues/5">Issue 5</eref></t>
        </li>
        <li>
          <t><xref target="coherence"/>: how a resumed TLS session, in which the server
presents no certificate, satisfies the DANE authentication the
current attempt's DNS outcome requires.
<eref target="https://github.com/chucklever/i-d-rpc-tls-dane/issues/9">Issue 9</eref></t>
        </li>
        <li>
          <t><xref target="floor"/>: whether a security floor covers connections to other RPC
programs on other ports of the same server, such as RPCBIND, or
only the port it was determined on.
<eref target="https://github.com/chucklever/i-d-rpc-tls-dane/issues/10">Issue 10</eref></t>
        </li>
        <li>
          <t><xref target="refname"/>: how a reference name that is unqualified, or that does
not resolve in the DNS, is handled.
<eref target="https://github.com/chucklever/i-d-rpc-tls-dane/issues/11">Issue 11</eref></t>
        </li>
        <li>
          <t><xref target="provenance"/>: whether a floor is withheld on a port learned from
an unauthenticated source.
<eref target="https://github.com/chucklever/i-d-rpc-tls-dane/issues/12">Issue 12</eref></t>
        </li>
        <li>
          <t><xref target="candidates"/>: whether the client expands a CNAME alias to find
the TLSA base domain, or queries only at the reference name.
<eref target="https://github.com/chucklever/i-d-rpc-tls-dane/issues/13">Issue 13</eref></t>
        </li>
        <li>
          <t><xref target="coherence"/>: whether one evaluation of the DNS outcome is
authoritative for an association attempt.
<eref target="https://github.com/chucklever/i-d-rpc-tls-dane/issues/14">Issue 14</eref></t>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Much of the prose in this document was generated by Claude, a large
language model, working from the editor's design, outline, and
instructions, and was reviewed and revised by the editor, who is
responsible for its content.  Claude is not an author of this
document.</t>
      <t>The editor is grateful to
Bill Baker,
Greg Marsden,
and
Martin Thomson
for their input and support.</t>
      <t>Special thanks to
Area Director
Gorry Fairhurst,
NFSv4 Working Group Chair
Brian Pawlowski,
and
NFSv4 Working Group Secretary
Thomas Haynes
for their guidance and oversight.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA6V963LcRpLufzwFDvXD0mw3LVKSL+TO2aUlecxYmdKK0s5O
zE44wG6QxAoEegE06R5Z8yznWc6TnfzyUpUFdFO2z0RMWCSBQl2y8p5fzufz
bKiGujzK9973VXOVv33zfH5XDdfzd6/Oc/wjf3F2Pv+u6MtlfrIerstmqBbF
ULVN3l7mZ8UN/f4l/W6oyn4vKy4uuvKWBqNh8jjCydnLvYzeKq/abnOU98My
y5btoqG3j/JlV1wO80VZz5vL/vbpvFst5kPdz5dFU84fH2T9+uKm6nv64rBZ
0fOnL999n1Wr7igfunU/HD5+/O3jw2y9WtL4/VH+7eE332b9UDTLn4q6beiF
Tdlnq+oo/+vQLmZ533ZDV1729K/NjfyDpnJTrFa0/L9lNPknWdGVBS3iz+VF
TuPkp81Qdk055O+6oulXNMBedtd2H666dr06ys/KAT/l31d1mZ9v+qG8yf+j
7DDj/Gn2odzQX5dHWT7H5uI/tDH4D7ZFfzzhn8/Oz1/yA+fv3p6+wVPZbdms
S3o312/xFtGPshV/ps/i0P6EP9Jvb4qq1mf+tSqHy/22u6JfF93i+ii/HoZV
f/Tll3gIv6luy3176Ev84suLrr3ryy/5/S/xTTq89cVRvrheLz7U5W3ZfVnN
l8kB0VM19n2I48en92WA/aqdvPflfae+fz3c1FlWELm1HTaOvpLnl+u6Fop5
fl10ddnnr/AR/lvXgoTLZTW08otFu24G0Nr7phqIRM8HzBIke3JTdkTB/FQp
G4ZZYCf+1U2djjvLmra7IVq/5RN4+/3zg8dPnuk/nz5+8kT/+ezwm8f2z2dP
Duyf33xrv/3q8Vdf2T+/+vYb/efXX31tz4Jm7Z/PDu0T337zlF7LquZyPI1v
wrefxhk9e3xg4311EAb5+vDZ4/jP8O2n4TWaxqH989un9s9vvvkmTO7x1zz7
0/kLphcc0aKcL+qKeMEch0STnM/neXHRD12xoH1LmEjR9+sb2vvhuhh+AzPJ
HuJ+PMqrPi9uQbIXdLvowRXRGzakz++uy67MqwGPLMtV3W7K5YwvbFcu2pub
sln2GX+1yGW2ebsqO/oeXZl1syw7eph+hQu9bqqe5pL35WLdVcMmX7V1tdgQ
6ZeLDxl9j8bAPeWhu2V+UdLv6ONEXZUMSEPRSttFxeuZ5RfrgRgLrbtph7wv
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
1ZN6YDloFwGaSG58kF5Nee87lsPJwuAmrZp1UJfgLlg3tjbm8xIR8FwxXUxq
E5uzTj0qQktYVg89Hd4lGvcyFafE+our0klm4W6Yy4gBR51il2Rn/iBcY6aO
JHFcFj3UzSvStRtRsHYzIXYHsLmpLtSPHzkRoCxZJv4h/zNfdE8RC3aRiifu
4PAZ/Wa8RrcTM/bKivfqHrVM90v127iJPCEN00I7VFPpgkyacjQLFROkklVy
DdkjAqVF1j7aiDHZziz0B/69bHGjeR3wszeT2+xXy+73io3ru6peLoqONWf4
iGALVz1PBI/whXtZ9+XdZFPNaxxCqYUFiNQcLsxsIqbmpdMkxgm/NZyh5l5n
mgg2imkqXi8Px69qjmwRFr+UiAcGqDpEM9Y17XuqnJjbM+EAFg+2UKrdd/UL
ps5AFuXiKbSIMocSQ5gMxrN6pNuJRws/iCOCVVURvTjPjx/NmMFPclWDVmHb
ZF5Gv+v7tmjaihZ+nN++6t/sxcSinR+SScaG48vt/Ip4NjoWE3UKD0ZHo/p0
d/r7PuPt2082TMxVcxVFPu904/lolOuiRnSHabBwtqXp1AkHgAQdq4HHyuWd
qj4afqzc5w9Hiv0jrEKYGF1QHhXv0OcaEFuyIvGu9M4HFixMLANq6l1Z13Nl
7cuSvtSQPVH4mKGwkSUpA71ac/4wC+NFSK8JmgPsTSSdNMN+Kl6fjolMucGQ
qqjBw8UZT3HWQealESI59ySuLk6mYNjm+aYq6+U4yFUFG5Tvmts6b/CxM1om
5lXvG9z8wJFvS3EB3o2Naz2EqUEGfTlYIOD0a+L0tA1XZqC7u4mw4lQjOaKH
+C2Q81KsD5GY/Pclbxd7KoRiMwzOMRUljIrNzQtW/cubixryvWtvRLWsC/aU
4nI3PP8z7zbxSzG9zxIUbiV7bZafvHpzNiMBu7rmnAkStLOMfREcpiElatjM
OKwd1N17VDfSt0HrQ58F00kYRGp09hhQ/V/nL5//9Kfzc1aDnwetWCJ6L6BJ
V+JTZO0Vxscdc529H9+fv9ubyX/zs9f877cv//396duXL/Dv8x9OXr0K/8j0
ifMfXr9/9SL+K74ZQiP4kX6bJ7/K9n48+cuekNbe6zfvTl+fnbzam24zVFc5
LvZp0rLF0ZuZ84Jl3nfP3/zf/3PwlHbuf9HWHR4cgGLkh28Ovn5KP+C2yNfa
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
EQEA

-->

</rfc>
