<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.4.18 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>

<rfc ipr="trust200902" docName="draft-ietf-dprive-unauth-to-authoritative-03" category="exp">

  <front>
    <title abbrev="Resolving with Unauth. Encryption">Recursive to Authoritative DNS with Unauthenticated Encryption</title>

    <author initials="P." surname="Hoffman" fullname="Paul Hoffman">
      <organization>ICANN</organization>
      <address>
        <email>paul.hoffman@icann.org</email>
      </address>
    </author>
    <author initials="P." surname="van Dijk" fullname="Peter van Dijk">
      <organization>PowerDNS</organization>
      <address>
        <email>peter.van.dijk@powerdns.com</email>
      </address>
    </author>

    <date year="2021" month="July" day="12"/>

    
    
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>This document describes a use case and a method for a DNS recursive resolver to use unauthenticated encryption
when communicating with authoritative servers.
The motivating use case for this method is that more encryption on the Internet is better,
and some resolver operators believe that unauthenticated encryption is better than no encryption at all.
The method described here is optional for both the recursive resolver and the authoritative server.
This method supports unauthenticated encryption using
the same mechanism for discovery of encryption support for the server as <xref target="FULL-AUTH"/>.</t>

<!-- TODOs

Add "ADoT" back to the document, after adding "ADoH" and "ADoQ" to 8499bis
   On second thought, it might be better to not use "ADoX" at all. I doubt DNSOP will want to add these to 8499bis.

Look into whether ALPN in the server is required for using SVCB records; if so, maybe carve out an exception here.

Some of the mentions of TCP in this document ignore DoQ (which, presumably, also involves some roundtrips):
 * 0 round-trips to a known server (common)
 * 1 round-trip if crypto keys are not new
 * 2 round-trips if QUIC version negotiation needed

-->



    </abstract>


  </front>

  <middle>


<section anchor="introduction" title="Introduction">

<t>A recursive resolver using traditional DNS over port 53 may wish instead to use encrypted
communication with authoritative servers in order to limit snooping of its DNS traffic by passive or on-path attackers.
The recursive resolver can use unauthenticated encryption (defined in <xref target="OPPORTUN"/>) to achieve
this goal.</t>

<t>This document describes the use case for unauthenticated encryption in recursive resolvers
in <xref target="opp_use_case"/>.
The encryption method with authoritative servers can be
DNS-over-TLS <xref target="DNSOTLS"/> (DoT),
DNS-over-HTTPS <xref target="DNSOHTTPS"/> (DoH), and/or
DNS-over-QUIC <xref target="DNSOQUIC"/> (DoQ).</t>

<t>The document also describes a discovery method that shows if an authoritative server
supports encryption in <xref target="disc"/>.</t>

<t>See <xref target="FULL-AUTH"/> for a description of the use case and a proposed mechanism
for fully-authenticated encryption.</t>

<t>NOTE: The draft uses the SVCB record as a discovery mechanism for encryption by a particular authoritative server.
Any record type that can show multiple types of encryption (currently DoT, DoH, and DoQ) can be used for discovery.
Thus, this record type might change in the future, depending on the discussion in the DPRIVE WG.</t>

<section anchor="opp_use_case" title="Use Case for Unauthenticated Encryption">

<t>The use case in this document for unauthenticated encryption is recursive resolver operators who are happy to use
encryption with authoritative servers if doing so doesn’t significantly slow down getting answers, and
authoritative server operators that are happy to use encryption with recursive resolvers if it
doesn’t cost much.
In this use case, resolvers do not want to return an error for requests that were sent over an
encrypted channel if they would have been able to give a correct answer using unencrypted transport.</t>

<t>Resolvers and authoritative servers understand that using encryption costs something, but are willing to absorb the costs
for the benefit of more Internet traffic being encrypted.
The extra costs (compared to using traditional DNS on port 53) include:</t>

<t><list style="symbols">
  <t>Extra round trips to establish TCP for every session (but not necessarily for every query)</t>
  <t>Extra round trips for TLS establishment</t>
  <t>Greater CPU use for TLS establishment</t>
  <t>Greater CPU use for encryption after TLS establishment</t>
  <t>Greater memory use for holding TLS state</t>
</list></t>

<t>This use case is not expected to apply to all resolvers or authoritative servers.
For example, according to <xref target="RSO_STATEMENT"/>, some root server operators do not want
to be the early adopters for DNS with encryption.
The protocol in this document explicitly allows authoritative servers to signal when they are ready
to begin offering DNS with encryption.</t>

</section>
<section anchor="summary-of-protocol" title="Summary of Protocol">

<t>This summary gives an overview of how the parts of the protocol work together.</t>

<t><list style="symbols">
  <t>The resolver discovers whether any authoritative server of interest supports DNS with encryption
by querying for the SVCB records <xref target="SVCB"/>.
As described in <xref target="DNS-SVCB"/>, SVCB records can indicate that a server supports
encrypted transport of DNS queries.  <vspace blankLines='1'/>
NOTE: In this document, the term “SVCB record” is used <spanx style="emph">only</spanx> for SVCB records that indicate encryption
 as described in <xref target="DNS-SVCB"/>.
 SVCB records that do not have these indicators in the RDATA are not included in the term “SVCB record” in this document.</t>
  <t>The resolver uses any authoritative server with a SVCB record that indicates encryption to perform unauthenticated encryption.</t>
  <t>The resolver does not fail to set up encryption if the authentication in the TLS session fails.</t>
</list></t>

</section>
<section anchor="definitions" title="Definitions">

<t>The terms “recursive resolver”, “authoritative server”, and “classic DNS” are defined in
<xref target="DNS-TERM"/>.</t>

<t>“DNS with encryption” means transport of DNS over any of DoT, DoH, or DoQ.
A server that supports DNS with encryption supports transport over one or more
of DoT, DoH, or DoQ.</t>

<t>The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”,
“SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “NOT RECOMMENDED”, “MAY”,
and “OPTIONAL” in this document are to be interpreted as described in
BCP 14 <xref target="MUSTSHOULD1"/> <xref target="MUSTSHOULD2"/> when, and only when, they
appear in all capitals, as shown here.</t>

</section>
</section>
<section anchor="disc" title="Discovery of Authoritative Server Encryption">

<t>An authoritative server that supports DNS with encryption makes itself discoverable by publishing
one or more DNS SVCB records that contain “alpn” parameter keys.
SVCB records are defined in <xref target="SVCB"/>, and the DNS extension to those records is defined in <xref target="DNS-SVCB"/>.</t>

<t>A recursive resolver discovers whether an authoritative server supports DNS with encryption by
looking for cached SVCB records for the name of the authoritative server with a positive answer.
A cached DNS SVCB record with a negative answer indicates that the authoritative server does not support any encrypted transport.</t>

<t>A resolver MAY also use port probing, although the mechanism for that is not described here.</t>

<t>If the cache has no positive or negative answers for any SVCB record for any of a zone’s authoritative servers,
the resolver MAY send queries for the SVCB records (and for the A/AAAA records of names mentioned in those SVCB records) for some or all of the zone’s authoritative servers
and wait for a positive response so that the resolver can use DNS with encryption for the original query.
In this situation, the resolver MAY instead just use classic DNS for the original query
but simultaneously queue queries for the SVCB (and subsequent A/AAAA) records for some or all of the zone’s authoritative servers
so that future queries might be able to use DNS with encryption.</t>

<t>DNSSEC validation of SVCB RRsets used strictly for this discovery mechanism is not mandated.</t>

</section>
<section anchor="proc" title="Processing Discovery Responses">

<t>After a resolver has DNS SCVB records in its cache (possibly due to having just queried for them),
it needs to use those records to try to find an authoritative server that uses DNS with encryption.
This section describes how the resolver can make that selection.</t>

<t>A resolver MUST NOT attempt encryption for a server that has a negative response in its cache for the associated
DNS SVCB record.</t>

<t>After sending out all requests for SVCB records for the authoritative servers in the NS RRset for a name,
if all of the SVCB records for those authoritative servers in the cache are negative responses,
the resolver MUST use classic (unencrypted) DNS instead of encryption.
Similarly, if none of the DNS SVCB records for the authoritative servers in the cache have supported “alpn” parameters,
the resolver MUST use classic (unencrypted) DNS instead of encryption.</t>

<t>If there are any DNS SVCB records in the cache for the authoritative servers for a zone with supported “alpn” parameters,
the resolver MUST try each indicated authoritative server using DNS with encryption until it successfully sets up a connection.
The resolver only attempts to use the encrypted transports that are in the associated SVCB record for the authoritative server.
(( Note that this completely prohibits “simple port 853 probing” even though that is what some operators are currently doing.
Does the WG want to be this strict? ))</t>

<t>A resolver SHOULD keep a DNS with encryption session to a particular server open if it expects to send additional queries
to that server in a short period of time.
<xref target="DNS-OVER-TCP"/> says “both clients and servers SHOULD support connection reuse” for TCP
connections, and that advice could apply as well for DNS with encryption,
especially as DNS with encryption has far greater overhead for re-establishing a connection.
If the server closes the DNS with encryption session, the resolver can possibly re-establish a DNS with encryption session
using encrypted session resumption.</t>

<t>For any DNS with encryption protocols, TLS version 1.3 <xref target="TLS-13"/> or later MUST be used.</t>

<t>A resolver following this protocol does not need to authenticate TLS servers.
Thus, when setting up a TLS connection, if the server’s authentication credentials do not match those
expected by the resolver, the resolver continues with the TLS connection.
Privacy-oriented resolvers (defined in <xref target="PRIVACY-REC"/>) following this protocol MUST NOT indicate that they are using
encryption because this protocol is susceptible to on-path attacks.</t>

<section anchor="resolver_pseudocode" title="Resolver Process as Pseudocode">

<t>This section is meant as an informal clarification of the protocol, and is not normative.
The pseudocode here is designed to show the intent of the protocol,
so it is not optimized for things like intersection of sets and other shortcuts.</t>

<t>In this code, <spanx style="verb">signal_rrset(this_name)</spanx> means an <spanx style="verb">SVCB</spanx> query for the <spanx style="verb">'_dns'</spanx> prefix of <spanx style="verb">this_name</spanx>.
The <spanx style="verb">Query over secure transport until successful</spanx> section ignores differences in name server selection and retry behaviour in different resolvers.</t>

<figure><artwork><![CDATA[
# Inputs
ns_names = List of NS Rdatas from the NS RRset for the queried name
can_do_secure = List of secure transports supported by resolver
secure_names_and_transports = Empty list, filled in below

# Fill secure_names_and_transports with (name, transport) tuples
for this_name in ns_names:
  if signal_rrset(this_name) is in the resolver cache:
    if signal_rrset(this_name) positively does not exist:
      continue
    for this_transport in signal_rrset(this_name):
      if this_transport in can_do_secure:
        add (this_name, this_transport) to secure_names_and_transports
  else: # signal_rrset(this_name) is not in the resolver cache
    queue a query for signal_rrset(this_name) for later caching

# Query over secure transport until successful
for (this_name, this_transport) tuple in secure_names_and_transports:
  query using this_transport on this_name 
  if successful:
    finished

# Got here if no this_name/this_transport query was successful
#   or if secure_names_and_transports was empty
query using classic DNS on any/all ns_names; finished
]]></artwork></figure>

</section>
<section anchor="tls_failures" title="Resolver Session Failures">

<t>The following are some of the reasons that a DNS with encryption session might fail to be set up:</t>

<t><list style="symbols">
  <t>The resolver receives a TCP RST response</t>
  <t>The resolver does not receive replies to TCP or TLS setup (such as getting the
TCP SYN message, the first TLS message, or completing TLS handshakes)</t>
  <t>The TLS handshake gets a definitive failure</t>
  <t>The encrypted session fails for reasons other than for authentication, such as incorrect algorithm choices or TLS record
failures</t>
</list></t>

</section>
</section>
<section anchor="serving-with-encryption" title="Serving with Encryption">

<t>An operator of an authoritative server following this protocol SHOULD publish SVCB records as described in <xref target="disc"/>.
If they cannot publish such records, the security properties of their authoritative servers will not be found.
If an operator wants to test serving using encryption, they can publish SVCB records with short TTLs
and then stop serving with encryption after removing the SVCB records and waiting for the TTLs to expire.</t>

<t>It is acceptable for an operator of authoritative servers to only offer encryption on some of the named authoritative servers,
such as when the operator is determining how far to roll out encrypted service.</t>

<t>A server MAY close an encrypted connection at any time. For example, it can close the session
if it has not received a DNS query in a defined length of time.
The server MAY close an encrypted session after it sends a DNS response;
however, it might also want to keep the session open waiting for another DNS query from the resolver.
<xref target="DNS-OVER-TCP"/> says “both clients and servers SHOULD support connection reuse” for TCP
connections, and that advice could apply as well for DNS with encryption,
especially as DNS with encryption has far greater overhead for re-establishing a connection.
If the server closes the DNS with encryption session, the resolver can possibly re-establish a DNS with encryption session
using encrypted session resumption.</t>

<t>For any DNS with encryption protocols, TLS version 1.3 <xref target="TLS-13"/> or later MUST be used.</t>

</section>
<section anchor="iana-considerations" title="IANA Considerations">

<t>(( Update registration for TCP/853 to also include ADoT ))</t>

<t>(( Maybe other updates for DoH and DoQ ))</t>

</section>
<section anchor="security-considerations" title="Security Considerations">

<t>The method described in this document explicitly allows a resolver to perform DNS communications over
traditional unencrypted, unauthenticated DNS on port 53, if it cannot find an authoritative server
that advertises that it supports encryption.
The method described in this document explicitly allows a resolver using encryption
to choose to allow unauthenticated encryption.
In either of these cases, the resulting communication will be susceptible to obvious and well-understood
attacks from an attacker in the path of the communications.</t>

</section>
<section anchor="acknowledgements" title="Acknowledgements">

<t>Puneet Sood contributed many ideas to early drafts of this document.</t>

<t>The DPRIVE Working Group has contributed many ideas that keep shifting the focus and content of this document.</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>




<reference anchor='DNS-SVCB'>
   <front>
      <title>Service Binding Mapping for DNS Servers</title>
      <author fullname='Benjamin Schwartz'>
	 <organization>Google LLC</organization>
      </author>
      <date day='19' month='April' year='2021'/>
      <abstract>
	 <t>   The SVCB DNS record type expresses a bound collection of endpoint
   metadata, for use when establishing a connection to a named service.
   DNS itself can be such a service, when the server is identified by a
   domain name.  This document provides the SVCB mapping for named DNS
   servers, allowing them to indicate support for new transport
   protocols.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-schwartz-svcb-dns-03'/>
   <format target='https://www.ietf.org/archive/id/draft-schwartz-svcb-dns-03.txt' type='TXT'/>
</reference>


<reference anchor='DNS-TERM'>
   <front>
      <title>DNS Terminology</title>
      <author fullname='Paul Hoffman'>
	 <organization>ICANN</organization>
      </author>
      <author fullname='Kazunori Fujiwara'>
	 <organization>JPRS</organization>
      </author>
      <date day='24' month='June' year='2021'/>
      <abstract>
	 <t>   The Domain Name System (DNS) is defined in literally dozens of
   different RFCs.  The terminology used by implementers and developers
   of DNS protocols, and by operators of DNS systems, has sometimes
   changed in the decades since the DNS was first defined.  This
   document gives current definitions for many of the terms used in the
   DNS in a single document.

   This document obsoletes RFC 8499 and updates RFC 2308.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-dnsop-rfc8499bis-02'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-dnsop-rfc8499bis-02.txt' type='TXT'/>
</reference>


<reference anchor='FULL-AUTH'>
   <front>
      <title>Signaling Authoritative DNS Encryption</title>
      <author fullname='Tommy Pauly'>
	 <organization>Apple Inc.</organization>
      </author>
      <author fullname='Eric Rescorla'>
	 <organization>Mozilla</organization>
      </author>
      <author fullname='David Schinazi'>
	 <organization>Google LLC</organization>
      </author>
      <author fullname='Christopher A. Wood'>
	 <organization>Cloudflare</organization>
      </author>
      <date day='26' month='February' year='2021'/>
      <abstract>
	 <t>   This document defines a mechanism for signaling that a given
   authoritative DNS server is reachable by encrypted DNS.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Discussion of this document takes place on the DNS PRIVate Exchange
   Working Group mailing list (dns-privacy@ietf.org), which is archived
   at https://mailarchive.ietf.org/arch/browse/dns-privacy/.

   Source for this draft and an issue tracker can be found at
   https://github.com/ekr/draft-rescorla-dprive-adox.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-rescorla-dprive-adox-latest-00'/>
   <format target='https://www.ietf.org/archive/id/draft-rescorla-dprive-adox-latest-00.txt' type='TXT'/>
</reference>



<reference anchor='MUSTSHOULD1' target='https://www.rfc-editor.org/info/rfc2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author fullname='S. Bradner' initials='S.' surname='Bradner'><organization/></author>
<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='MUSTSHOULD2' target='https://www.rfc-editor.org/info/rfc8174'>
<front>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
<author fullname='B. Leiba' initials='B.' surname='Leiba'><organization/></author>
<date month='May' year='2017'/>
<abstract><t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='8174'/>
<seriesInfo name='DOI' value='10.17487/RFC8174'/>
</reference>



<reference anchor='OPPORTUN' target='https://www.rfc-editor.org/info/rfc7435'>
<front>
<title>Opportunistic Security: Some Protection Most of the Time</title>
<author fullname='V. Dukhovni' initials='V.' surname='Dukhovni'><organization/></author>
<date month='December' year='2014'/>
<abstract><t>This document defines the concept &quot;Opportunistic Security&quot; 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='SVCB'>
   <front>
      <title>Service binding and parameter specification via the DNS (DNS SVCB and HTTPS RRs)</title>
      <author fullname='Ben Schwartz'>
	 <organization>Google</organization>
      </author>
      <author fullname='Mike Bishop'>
	 <organization>Akamai Technologies</organization>
      </author>
      <author fullname='Erik Nygren'>
	 <organization>Akamai Technologies</organization>
      </author>
      <date day='16' month='June' year='2021'/>
      <abstract>
	 <t>   This document specifies the &quot;SVCB&quot; and &quot;HTTPS&quot; DNS resource record
   (RR) types to facilitate the lookup of information needed to make
   connections to network services, such as for HTTPS origins.  SVCB
   records allow a service to be provided from multiple alternative
   endpoints, each with associated parameters (such as transport
   protocol configuration and keys for encrypting the TLS ClientHello).
   They also enable aliasing of apex domains, which is not possible with
   CNAME.  The HTTPS RR is a variation of SVCB for HTTPS and HTTP
   origins.  By providing more information to the client before it
   attempts to establish a connection, these records offer potential
   benefits to both performance and privacy.

   TO BE REMOVED: This document is being collaborated on in Github at:
   https://github.com/MikeBishop/dns-alt-svc
   (https://github.com/MikeBishop/dns-alt-svc).  The most recent working
   version of the document, open issues, etc. should all be available
   there.  The authors (gratefully) accept pull requests.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-dnsop-svcb-https-06'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-dnsop-svcb-https-06.txt' type='TXT'/>
</reference>



<reference anchor='TLS-13' target='https://www.rfc-editor.org/info/rfc8446'>
<front>
<title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
<author fullname='E. Rescorla' initials='E.' surname='Rescorla'><organization/></author>
<date month='August' year='2018'/>
<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 updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961.  This document also specifies new requirements for TLS 1.2 implementations.</t></abstract>
</front>
<seriesInfo name='RFC' value='8446'/>
<seriesInfo name='DOI' value='10.17487/RFC8446'/>
</reference>




    </references>

    <references title='Informative References'>





<reference anchor='DNSOHTTPS' target='https://www.rfc-editor.org/info/rfc8484'>
<front>
<title>DNS Queries over HTTPS (DoH)</title>
<author fullname='P. Hoffman' initials='P.' surname='Hoffman'><organization/></author>
<author fullname='P. McManus' initials='P.' surname='McManus'><organization/></author>
<date month='October' year='2018'/>
<abstract><t>This document defines a protocol for sending DNS queries and getting DNS responses over HTTPS.  Each DNS query-response pair is mapped into an HTTP exchange.</t></abstract>
</front>
<seriesInfo name='RFC' value='8484'/>
<seriesInfo name='DOI' value='10.17487/RFC8484'/>
</reference>


<reference anchor='DNSOQUIC'>
   <front>
      <title>Specification of DNS over Dedicated QUIC Connections</title>
      <author fullname='Christian Huitema'>
	 <organization>Private Octopus Inc.</organization>
      </author>
      <author fullname='Allison Mankin'>
	 <organization>Salesforce</organization>
      </author>
      <author fullname='Sara Dickinson'>
	 <organization>Sinodun IT</organization>
      </author>
      <date day='22' month='February' year='2021'/>
      <abstract>
	 <t>   This document describes the use of QUIC to provide transport privacy
   for DNS.  The encryption provided by QUIC has similar properties to
   that provided by TLS, while QUIC transport eliminates the head-of-
   line blocking issues inherent with TCP and provides more efficient
   error corrections than UDP.  DNS over QUIC (DoQ) has privacy
   properties similar to DNS over TLS (DoT) specified in RFC7858, and
   latency characteristics similar to classic DNS over UDP.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-dprive-dnsoquic-02'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-dprive-dnsoquic-02.txt' type='TXT'/>
</reference>



<reference anchor='DNS-OVER-TCP' target='https://www.rfc-editor.org/info/rfc7766'>
<front>
<title>DNS Transport over TCP - Implementation Requirements</title>
<author fullname='J. Dickinson' initials='J.' surname='Dickinson'><organization/></author>
<author fullname='S. Dickinson' initials='S.' surname='Dickinson'><organization/></author>
<author fullname='R. Bellis' initials='R.' surname='Bellis'><organization/></author>
<author fullname='A. Mankin' initials='A.' surname='Mankin'><organization/></author>
<author fullname='D. Wessels' initials='D.' surname='Wessels'><organization/></author>
<date month='March' year='2016'/>
<abstract><t>This document specifies the requirement for support of TCP as a transport protocol for DNS implementations and provides guidelines towards DNS-over-TCP performance on par with that of DNS-over-UDP. This document obsoletes RFC 5966 and therefore updates RFC 1035 and RFC 1123.</t></abstract>
</front>
<seriesInfo name='RFC' value='7766'/>
<seriesInfo name='DOI' value='10.17487/RFC7766'/>
</reference>



<reference anchor='DNSOTLS' target='https://www.rfc-editor.org/info/rfc7858'>
<front>
<title>Specification for DNS over Transport Layer Security (TLS)</title>
<author fullname='Z. Hu' initials='Z.' surname='Hu'><organization/></author>
<author fullname='L. Zhu' initials='L.' surname='Zhu'><organization/></author>
<author fullname='J. Heidemann' initials='J.' surname='Heidemann'><organization/></author>
<author fullname='A. Mankin' initials='A.' surname='Mankin'><organization/></author>
<author fullname='D. Wessels' initials='D.' surname='Wessels'><organization/></author>
<author fullname='P. Hoffman' initials='P.' surname='Hoffman'><organization/></author>
<date month='May' year='2016'/>
<abstract><t>This document describes the use of Transport Layer Security (TLS) to provide privacy for DNS.  Encryption provided by TLS eliminates opportunities for eavesdropping and on-path tampering with DNS queries in the network, such as discussed in RFC 7626.  In addition, this document specifies two usage profiles for DNS over TLS and provides advice on performance considerations to minimize overhead from using TCP and TLS with DNS.</t><t>This document focuses on securing stub-to-recursive traffic, as per the charter of the DPRIVE Working Group.  It does not prevent future applications of the protocol to recursive-to-authoritative traffic.</t></abstract>
</front>
<seriesInfo name='RFC' value='7858'/>
<seriesInfo name='DOI' value='10.17487/RFC7858'/>
</reference>



<reference anchor='PRIVACY-REC' target='https://www.rfc-editor.org/info/rfc8932'>
<front>
<title>Recommendations for DNS Privacy Service Operators</title>
<author fullname='S. Dickinson' initials='S.' surname='Dickinson'><organization/></author>
<author fullname='B. Overeinder' initials='B.' surname='Overeinder'><organization/></author>
<author fullname='R. van Rijswijk-Deij' initials='R.' surname='van Rijswijk-Deij'><organization/></author>
<author fullname='A. Mankin' initials='A.' surname='Mankin'><organization/></author>
<date month='October' year='2020'/>
<abstract><t>This document presents operational, policy, and security considerations for DNS recursive resolver operators who choose to offer DNS privacy services.  With these recommendations, the operator can make deliberate decisions regarding which services to provide, as well as understanding how those decisions and the alternatives impact the privacy of users. </t><t>This document also presents a non-normative framework to assist writers of a Recursive operator Privacy Statement, analogous to DNS Security Extensions (DNSSEC) Policies and DNSSEC Practice Statements described in RFC 6841.</t></abstract>
</front>
<seriesInfo name='BCP' value='232'/>
<seriesInfo name='RFC' value='8932'/>
<seriesInfo name='DOI' value='10.17487/RFC8932'/>
</reference>


<reference anchor="RSO_STATEMENT" target="https://root-servers.org/media/news/Statement_on_DNS_Encryption.pdf">
  <front>
    <title>Statement on DNS Encryption</title>
    <author >
      <organization></organization>
    </author>
    <date year="2021"/>
  </front>
</reference>


    </references>



  </back>

<!-- ##markdown-source:
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
E8s8zfMtj7VLT6MR/+4n+i8/62BxhzoAAA==

-->

</rfc>

