<?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-rfc2629 version  -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-dkgjsal-dprive-unilateral-probing-00" category="info" obsoletes="" updates="" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.10.0 -->
  <front>
    <title abbrev="Unilateral Encrypted Authoritative DNS">Unilateral Opportunistic Deployment of Encrypted Recursive-to-Authoritative DNS</title>
    <seriesInfo name="Internet-Draft" value="draft-dkgjsal-dprive-unilateral-probing-00"/>
    <author initials="D.K." surname="Gillmor" fullname="Daniel Kahn Gillmor">
      <organization abbrev="ACLU">American Civil Liberties Union</organization>
      <address>
        <postal>
          <street>125 Broad St.</street>
          <city>New York, NY</city>
          <code>10004</code>
          <country>USA</country>
        </postal>
        <email>dkg@fifthhorseman.net</email>
      </address>
    </author>
    <author initials="J." surname="Salazar" fullname="Joey Salazar">
      <organization abbrev="A19">ARTICLE 19</organization>
      <address>
        <postal>
          <street>108-114 Golden Lane</street>
          <city>London</city>
          <code>EC1Y 0TL</code>
          <country>UK</country>
        </postal>
        <email>joeygsal@gmail.com</email>
      </address>
    </author>
    <date year="2021" month="November" day="18"/>
    <area>int</area>
    <workgroup>dprive</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This draft sets out steps that DNS servers (recursive resolvers and authoritative servers) can take unilaterally (without any coordination with other peers) to defend DNS query privacy against a passive network monitor.
The steps in this draft can be defeated by an active attacker, but should be simpler and less risky to deploy than more powerful defenses.
The draft also introduces (but does not try to specify) the semantics of signalling that would permit defense against an active attacker.</t>
      <t>The goal of this draft is to simplify and speed deployment of opportunistic encrypted transport in the recursive-to-authoritative hop of the DNS ecosystem.
With wider easy deployment of the underlying transport on an opportunistic basis, we hope to facilitate the future specification of stronger cryptographic protections against more powerful attacks.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction" numbered="true" toc="default">
      <name>Introduction</name>
      <section anchor="requirements-language" numbered="true" toc="default">
        <name>Requirements Language</name>
        <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="RFC2119" format="default"/> and <xref target="RFC8174" format="default"/>) when, and only when, they appear in all capitals, as shown here.</t>
      </section>
      <section anchor="terminology" numbered="true" toc="default">
        <name>Terminology</name>
        <ul spacing="normal">
          <li>"unilateral" means capable of opportunistic probing deployment without external coordination with any of the other parties</li>
          <li>Do53 refers to traditional cleartext DNS over port 53 (<xref target="RFC1035" format="default"/>)</li>
          <li>DoQ refers to DNS-over-QUIC (<xref target="I-D.ietf-dprive-dnsoquic" format="default"/>)</li>
          <li>DoT refers to DNS-over-TLS (<xref target="RFC7858" format="default"/>)</li>
          <li>DoH refers to DNS-over-HTTPS (<xref target="RFC8484" format="default"/>)</li>
          <li>Encrypted transports refers to DoQ, DoT, and DoH collectively</li>
        </ul>
      </section>
    </section>
    <section anchor="priorities" numbered="true" toc="default">
      <name>Priorities</name>
      <t>This document aims to provide guidance to implementers who want to simply enable protection against passive network observers.</t>
      <t>In particular, it focuses on mechanisms that can be adopted unilaterally by recursive resolvers and authoritative servers, without any explicit coordination with the other parties.
This guidance provides opportunistic security (see <xref target="RFC7435" format="default"/>) -- encrypting things that would otherwise be in the clear, without interfering with or weakening stronger forms of security.</t>
      <section anchor="minimizing-negative-impacts" numbered="true" toc="default">
        <name>Minimizing Negative Impacts</name>
        <t>It also aims to minimize potentially negative impacts caused by the probing of encrypted transports -- for the systems that adopt these guidelines, for the parties that they communicate with in the "second hump" of the DNS camel, and for uninvolved third parties.
The negative impacts that we specifically try to minimize are:</t>
        <ul spacing="normal">
          <li>excessive bandwidth use</li>
          <li>excessive computational resources (CPU and memory in particular)</li>
          <li>amplification attacks (where DNS resolution infrastructure is wielded as part of a DoS attack)</li>
        </ul>
      </section>
      <section anchor="protocol-choices" numbered="true" toc="default">
        <name>Protocol Choices</name>
        <t>While this document focuses specifically on strategies used by DNS servers, it does not go into detail on the specific protocols used, as those protocols --- in particular, DoT and DoQ --- are described in other documents.</t>
        <t>This document does not pursue the use of DoH in this context, because a DoH client needs to know the path part of a DoH endpoint URL, and there are currently no mechanisms for a DNS resolver to predict the path on its own, in an opportunistic or unilateral fashion, without incurring in excessive use of resources.
For instance, a recursive resolver in theory could guess the full path to a queried IP address by trying all the URL paths that the client has in records and see if one of those works, but even though it can be expected that this would work 99% of the time with fewer than 100 probes, this technique would likely incur in excessive resource consumption potentially leading to vulnerabilities and amplification attacks.
The authors of this draft particularly welcome ideas and contributions from the community that lead to a suitable mechanism for unilaterally probing for DoH-capable authoritative servers, for later consideration in this or other drafts.</t>
      </section>
    </section>
    <section anchor="guidance-for-authoritative-servers" numbered="true" toc="default">
      <name>Guidance for Authoritative Servers</name>
      <t>An authoritative server SHOULD implement and deploy  DNS-over-TLS (DoT) on TCP port 853.</t>
      <t>An authoritative server MAY implement and deploy DNS-over-QUIC (DoQ) on UDP port 853.</t>
      <section anchor="authentication" numbered="true" toc="default">
        <name>Authentication</name>
        <t>For unilateral deployment, an authoritative server does not need to offer any particular form of authentication.</t>
        <t>The simplest deployment would simply provide a self-issued, regularly-updated X.509 certificate.
This mechanism is supported by many TLS and QUIC clients, and will be acceptable for any opportunistic connection.</t>
        <t>Possible alternate forms of server authentication include:</t>
        <ul spacing="normal">
          <li>an X.509 Certificate issued by a widely-known certification authority associated with the common NS names used for this authoritative server</li>
          <li>DANE authentication (potentially including the TLS handshake)</li>
        </ul>
        <t>An authoritative DNS server that wants to handle unilateral queries MUST NOT rely on SNI to multiplex distinct authoritative DNS services on a single IP address.</t>
      </section>
      <section anchor="authoritative-resource-exhaustion" numbered="true" toc="default">
        <name>Resource Exhaustion</name>
        <t>A well-behaved recursive resolver may keep an encrypted connection open to an authoritative server, to amortize the costs of connection setup for both parties.</t>
        <t>However, some authoritative servers may have insufficient resources available to keep many connections open concurrently.</t>
        <t>An authoritative server facing resource exhaustion SHOULD cleanly close open connections from recursive resolvers based on the authoritative's preferred prioritization.</t>
        <t>A reasonable prioritization scheme would be to close connections in this order, until resources are back in control:</t>
        <ul spacing="normal">
          <li>connections with no outstanding queries, ordered by idle time (longest idle time gets closed first)</li>
          <li>connections with outstanding queries, ordered by age of outstanding query (oldest outstanding query gets closed first)</li>
        </ul>
      </section>
    </section>
    <section anchor="guidance-for-recursive-resolvers" numbered="true" toc="default">
      <name>Guidance for recursive resolvers</name>
      <t>This section outlines a probing policy suitable for unilateral adoption by any recursive resolver.
Following this policy should not result in failed resolutions or significant delay.</t>
      <section anchor="overall-recursive-resolver-settings" numbered="true" toc="default">
        <name>Overall recursive resolver Settings</name>
        <t>A recursive resolver implementing this draft must set system-wide values for some default parameters.
These parameters may be set independently for each supported encrypted transport, though a simple implementation may keep the parameters constant across encrypted transports.</t>
        <table align="center">
          <name>recursive resolver system parameters per encrypted transport</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Description</th>
              <th align="left">Suggested Default</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>persistence</tt></td>
              <td align="left">How long should the recursive resolver remember successful encrypted transport connections?</td>
              <td align="left">3 days (259200 seconds)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>damping</tt></td>
              <td align="left">How long should the recursive resolver remember unsuccessful encrypted transport connections?</td>
              <td align="left">1 day (86400 seconds)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>timeout</tt></td>
              <td align="left">How long should the recursive resolver wait for an initiated encrypted connection to complete?</td>
              <td align="left">30 seconds</td>
            </tr>
          </tbody>
        </table>
        <t>This document uses the notation <tt>E-foo</tt> to refer to the <tt>foo</tt> parameter for the encrypted transport <tt>E</tt>.</t>
        <t>For example <tt>DoT-persistence</tt> would indicate the length of time that the recursive resolver will remember that an authoritative server had a successful connection over <tt>DoT</tt>.</t>
        <t>This document also assumes that the resolver maintains a list of outstanding cleartext queries destined for the authoritative resolver's IP address <tt>X</tt>.
This list is referred to as <tt>Do53-queries[X]</tt>.
This document does not attempt to describe the specific operation of sending and receiving cleartext DNS queries (Do53) for a recursive resolver.
Instead it describes a "bolt-on" mechanism that extends the recursive resolver's operation on a few simple hooks into the recursive resolver's existing handling of Do53.</t>
        <t>Implementers or deployers of DNS recursive resolvers that follow the strategies in this document are encouraged to report their preferred values of these parameters.</t>
      </section>
      <section anchor="recursive-resolver-requirements" numbered="true" toc="default">
        <name>Recursive Resolver Requirements</name>
        <t>To follow this guidance, a recursive resolver MUST implement at least one of either DoT or DoQ in its capacity as a client of authoritative nameservers.</t>
        <t>A recursive resolver SHOULD implement the client side of DNS-over-TLS (DoT).
A recursive resolver MAY implement the client side of DNS-over-QUIC (DoQ).</t>
        <t>While this document focuses on the recursive-to-authoritative hop, a recursive resolver implementing these strategies SHOULD also accept queries from its clients over some encrypted transport (current common transports are DoH or DoT).</t>
      </section>
      <section anchor="authoritative-server-encrypted-transport-connection-state" numbered="true" toc="default">
        <name>Authoritative Server Encrypted Transport Connection State</name>
        <t>The recursive resolver SHOULD keep a record of the state for each authoritative server it contacts, indexed by the IP address of the authoritative server and the encrypted transports supported by the recursive resolver.</t>
        <t>Each record should contain the following fields for each supported encrypted transport, each of which would initially be <tt>null</tt>:</t>
        <table align="center">
          <name>recursive resolver state per authoritative IP, per encrypted transport</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Description</th>
              <th align="left">Retain Across Reset</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>session</tt></td>
              <td align="left">The associated state of any existing, established session (the structure of this value is dependent on the encrypted transport implementation).  If <tt>session</tt> is not <tt>null</tt>, it may be in one of two states: <tt>pending</tt> or <tt>established</tt></td>
              <td align="left">N</td>
            </tr>
            <tr>
              <td align="left">
                <tt>initiated</tt></td>
              <td align="left">Timestamp of most recent connection attempt</td>
              <td align="left">Y</td>
            </tr>
            <tr>
              <td align="left">
                <tt>completed</tt></td>
              <td align="left">Timestamp of most recent completed handshake</td>
              <td align="left">Y</td>
            </tr>
            <tr>
              <td align="left">
                <tt>status</tt></td>
              <td align="left">Enumerated value of <tt>success</tt> or <tt>fail</tt> or <tt>timeout</tt>, associated with the <tt>completed</tt> handshake</td>
              <td align="left">Y</td>
            </tr>
            <tr>
              <td align="left">
                <tt>resumptions</tt></td>
              <td align="left">A stack of resumption tickets (and associated parameters) that could be used to resume a prior successful connection</td>
              <td align="left">Y</td>
            </tr>
            <tr>
              <td align="left">
                <tt>queries</tt></td>
              <td align="left">A queue of queries intended for this authoritative server, each of which has additional status <tt>early</tt>, <tt>unsent</tt>, or <tt>sent</tt></td>
              <td align="left">N</td>
            </tr>
            <tr>
              <td align="left">
                <tt>last-activity</tt></td>
              <td align="left">A timestamp of the most recent activity on the connection</td>
              <td align="left">N</td>
            </tr>
          </tbody>
        </table>
        <t>Note that the <tt>session</tt> fields in aggregate constitute a pool of open connections to different servers.</t>
        <t>With the exception of the <tt>session</tt>, <tt>queries</tt>, and <tt>last-activity</tt> fields, this cache information should be kept across restart of the server unless explicitly cleared by administrative action.</t>
        <t>This document uses the notation <tt>E-foo[X]</tt> to indicate the value of field <tt>foo</tt> for encrypted transport <tt>E</tt> to IP address <tt>X</tt>.</t>
        <t>For example, <tt>DoT-initiated[192.0.2.4]</tt> represents the timestamp when the most recent DoT connection packet was sent to IP address 192.0.2.4.</t>
      </section>
      <section anchor="probing-policy" numbered="true" toc="default">
        <name>Probing Policy</name>
        <t>When a recursive resolver discovers the need for an authoritative lookup to an authoritative DNS server using IP address <tt>X</tt>, it retrieves the records associated with <tt>X</tt> from its cache.</t>
        <t>The following sections presume that the time of the discovery of the need for lookup is time <tt>T0</tt>.</t>
        <t>If any of the records discussed here are absent, they are treated as <tt>null</tt>.</t>
        <t>The recursive resolver must know to decide whether to initially send a query over Do53, or over any of the supported encrypted transports (DoT or DoQ).</t>
        <t>Note that a resolver might initiate this query via any or all of the known transports.
When multiple queries are sent, the initial packets for each connection can be sent concurrently, similar to "Happy Eyeballs" (<xref target="RFC8305" format="default"/>).
However, unlike Happy Eyeballs, when one transport succeeds, the other connections do not need to be terminated, but can instead be continued to establish whether the IP address <tt>X</tt> is capable of corresponding on the relevant transport.</t>
        <section anchor="sending-a-query-over-do53" numbered="true" toc="default">
          <name>Sending a query over Do53</name>
          <t>For any of the supported encrypted transports <tt>E</tt>, if either of the following holds true, the resolver SHOULD NOT send a query to <tt>X</tt> over Do53:</t>
          <ul spacing="normal">
            <li>
              <tt>E-session[X]</tt> is in the <tt>established</tt> state, or</li>
            <li>
              <tt>E-status[X]</tt> is <tt>success</tt>, and <tt>(T - E-completed[X]) &lt; persistence</tt></li>
          </ul>
          <t>Otherwise, if there is no outstanding session for any encrypted transport, and the last successful encrypted transport connection was long ago, the resolver sends a query to <tt>X</tt> over Do53.
When it does so, it inserts a handle for the query in <tt>Do53-queries[X]</tt>.</t>
        </section>
        <section anchor="receiving-a-response-over-do53" numbered="true" toc="default">
          <name>Receiving a response over Do53</name>
          <t>When a successful response <tt>R</tt> is received in cleartext from authoritative server <tt>X</tt> for a query <tt>Q</tt> that was sent over Do53, the recursive resolver should:</t>
          <ul spacing="normal">
            <li>
              <t>If <tt>Q</tt> is in <tt>Do53-queries[X]</tt>:
              </t>
              <ul spacing="normal">
                <li>Return <tt>R</tt> to the requesting client</li>
              </ul>
            </li>
            <li>Remove <tt>Q</tt> from <tt>Do53-queries[X]</tt></li>
            <li>
              <t>For each supported encrypted transport <tt>E</tt>:
              </t>
              <ul spacing="normal">
                <li>
                  <t>If <tt>Q</tt> is in <tt>E-queries[X]</tt>:
                  </t>
                  <ul spacing="normal">
                    <li>Remove <tt>Q</tt> from <tt>E-queries[X]</tt></li>
                  </ul>
                </li>
              </ul>
            </li>
          </ul>
          <t>But if <tt>R</tt> is unsuccessful (e.g. <tt>SERVFAIL</tt>):</t>
          <ul spacing="normal">
            <li>
              <t>if <tt>Q</tt> is not in any of <tt>*-queries[X]</tt>:
              </t>
              <ul spacing="normal">
                <li>Return <tt>SERVFAIL</tt> to the client</li>
              </ul>
            </li>
          </ul>
        </section>
        <section anchor="initiating-a-connection-over-encrypted-transport" numbered="true" toc="default">
          <name>Initiating a connection over encrypted transport</name>
          <t>If any <tt>E-session[X]</tt> is in the <tt>established</tt>, the recursive resolver SHOULD NOT initiate a new connection to <tt>X</tt> over any other transport, but should instead send a query through the existing session (see <xref target="sending" format="default"/>).
FIXME: What if there's a preferred transport, but the <tt>established</tt> session does not correspond to that preferred transport?</t>
          <t>Otherwise, the timer should examine and possibly refresh its state for encrypted transport <tt>E</tt> to authoritative IP address <tt>X</tt>:</t>
          <ul spacing="normal">
            <li>if <tt>E-session[X]</tt> is in state <tt>pending</tt>, and</li>
            <li>
              <t><tt>T - E-initiated[X] &gt; E-timeout</tt>, then
              </t>
              <ul spacing="normal">
                <li>set <tt>E-session[X]</tt> to <tt>null</tt> and</li>
                <li>set <tt>E-status[X]</tt> to <tt>timeout</tt></li>
              </ul>
            </li>
          </ul>
          <t>When resources are available to attempt a new encrypted transport, the resolver should only initiate a new connection to <tt>X</tt> over <tt>E</tt> as long as one of the following holds true:</t>
          <ul spacing="normal">
            <li>
              <tt>E-status[X]</tt> is <tt>success</tt>, or</li>
            <li>
              <tt>E-status[X]</tt> is <tt>fail</tt> or <tt>timeout</tt> and <tt>(T - E-completed[X]) &gt; damping</tt>, or</li>
            <li>
              <tt>E-status[X]</tt> is <tt>null</tt> and <tt>E-initiated[X]</tt> is <tt>null</tt></li>
          </ul>
          <t>When initiating a session to <tt>X</tt> over encrypted transport <tt>E</tt>, if <tt>E-resumptions[X]</tt> is not empty, one ticket should be popped off the stack and used to try to resume a previous session.
Otherwise, the initial Client Hello handshake should not try to resume any session.</t>
          <t>When initiating a connection, the resolver should take the following steps:</t>
          <ul spacing="normal">
            <li>set <tt>E-initiated[X]</tt> to <tt>T0</tt></li>
            <li>store a handle for the new session (which should have <tt>pending</tt> state)  in <tt>E-session[X]</tt></li>
            <li>insert a handle for the query that prompted this connection in <tt>E-queries[X]</tt>, with status <tt>unsent</tt> or <tt>early</tt>, as appropriate (see below).</li>
          </ul>
          <section anchor="early-data" numbered="true" toc="default">
            <name>Early Data</name>
            <t>Modern encrypted transports like TLS 1.3 offer the chance to store "early data" from the client into the initial Client Hello in some contexts.
A resolver that initiates a connection over a encrypted transport according to this guidance in a context where early data is possible SHOULD send the DNS query that prompted the connection in the early data, according to the sending guidance in <xref target="sending" format="default"/>.</t>
            <t>If it does so, the status of <tt>Q</tt> in <tt>E-queries[X]</tt> should be set to <tt>early</tt> instead of <tt>unsent</tt>.</t>
          </section>
          <section anchor="resumption-tickets" numbered="true" toc="default">
            <name>Resumption Tickets</name>
            <t>When initiating a new connection (whether by resuming an old session or not), the recursive resolver SHOULD request a session resumption ticket from the authoritative server.
If the authoritative server supplies a resumption ticket, the recursive resolver pushes it into the stack at <tt>E-resumptions[X]</tt>.</t>
          </section>
          <section anchor="sni" numbered="true" toc="default">
            <name>Server Name Indication</name>
            <t>For modern encrypted transports like TLS 1.3, most client implementations expect to send a Server Name Indication (SNI) in the Client Hello.</t>
            <t>There are two complications with selecting or sending SNI in this unilateral probing:</t>
            <ul spacing="normal">
              <li>Some authoritative servers are known by more than one name; selecting a single name to use for a given connection may be difficult or impossible.</li>
              <li>In most configurations, the contents of the SNI field is exposed on the wire to a passive adversary.
This potentially reveals additional information about which query is being made, based on the NS of the query itself.</li>
            </ul>
            <t>To avoid additional leakage and complexity, a recursive resolver using only this guidance SHOULD NOT send any SNI to the authoritative when attempting encrypted transport.</t>
            <t>Alternately, if the recursive resolver implements Encrypted Client Hello (<xref target="I-D.ietf-tls-esni" format="default"/> and the appropriate records are available for the NS in question, the recursive resolver MAY send an SNI under encryption.</t>
          </section>
          <section anchor="authoritative-server-authentication" numbered="true" toc="default">
            <name>Authoritative Server Authentication</name>
            <t>A recursive resolver following this guidance MAY attempt to verify the server's identity by X.509 certificate or DANE.
When doing so, the identity would presumably be based on the NS name used for a given query.</t>
            <t>However, since this probing policy is unilateral and opportunistic, the client SHOULD NOT consider it a failure if an encrypted transport handshake that does not authenticate to any particular expected name.</t>
            <t>To avoid the complexity of authoritative servers with multiple simultaneous names, or multiple names over time, this draft does not attempt to describe what name a recursive resolver should use when validating an authoritative server, or what the recursive resolver should do with an authentication success.</t>
          </section>
        </section>
        <section anchor="establishing-an-encrypted-transport-connection" numbered="true" toc="default">
          <name>Establishing an encrypted transport connection</name>
          <t>When an encrypted transport connection actually completes (e.g., the TLS handshake completes) at time <tt>T1</tt>, the resolver sets <tt>E-completed[X]</tt> to <tt>T1</tt> and does the following:</t>
          <t>If the handshake completed successfully:</t>
          <ul spacing="normal">
            <li>update <tt>E-session[X]</tt> so that it is in state <tt>established</tt></li>
            <li>set <tt>E-status[X]</tt> to <tt>success</tt></li>
            <li>
              <t>for each query <tt>Q</tt> in <tt>E-queries[X]</tt>:
              </t>
              <ul spacing="normal">
                <li>
                  <t>if early data was accepted and <tt>Q</tt> is <tt>early</tt>,
                  </t>
                  <ul spacing="normal">
                    <li>set the status of <tt>Q</tt> to <tt>sent</tt></li>
                  </ul>
                </li>
                <li>
                  <t>otherwise:
                  </t>
                  <ul spacing="normal">
                    <li>send <tt>Q</tt> through the session (see <xref target="sending" format="default"/>), and set the status of <tt>Q</tt> to <tt>sent</tt></li>
                  </ul>
                </li>
              </ul>
            </li>
            <li>set <tt>E-last-activity[X]</tt> to <tt>T1</tt></li>
          </ul>
        </section>
        <section anchor="failing-to-establish-an-encrypted-transport-connection" numbered="true" toc="default">
          <name>Failing to establish an encrypted transport connection</name>
          <t>If, at time <tt>T2</tt> an encrypted transport handshake completes with a failure (e.g. a TLS alert),</t>
          <ul spacing="normal">
            <li>set <tt>E-session[X]</tt> to <tt>null</tt></li>
            <li>set <tt>E-status[X]</tt> to <tt>fail</tt></li>
            <li>set <tt>E-completed[X]</tt> to <tt>T2</tt></li>
            <li>
              <t>for each query <tt>Q</tt> in <tt>E-queries[X]</tt>:
              </t>
              <ul spacing="normal">
                <li>if <tt>Q</tt>  is not present in any other <tt>*-queries[X]</tt> or in <tt>Do53-queries[X]</tt>, report <tt>SERVFAIL</tt> to the requesting client.
FIXME: should there be retries in this scenario? Or should the recursive then try a different encrypted transport?</li>
              </ul>
            </li>
          </ul>
        </section>
        <section anchor="encrypted-transport-failure" numbered="true" toc="default">
          <name>Encrypted transport failure</name>
          <t>Once established, an encrypted transport might fail for a number of reasons (e.g., decryption failure, or improper protocol sequence).</t>
          <t>If this happens:</t>
          <ul spacing="normal">
            <li>set <tt>E-session[X]</tt> to <tt>null</tt></li>
            <li>set <tt>E-status[X]</tt> to <tt>fail</tt></li>
            <li>
              <t>for each query <tt>Q</tt> in <tt>E-queries[X]</tt>:
              </t>
              <ul spacing="normal">
                <li>if <tt>Q</tt>  is not present in any other <tt>*-queries[X]</tt> or in <tt>Do53-queries[X]</tt>, report <tt>SERVFAIL</tt> to the requesting client.
FIXME: should a resumption ticket be used here for this previously successful connection? Or a retry?</li>
              </ul>
            </li>
          </ul>
          <t>FIXME: are there specific forms of failure that we might handle differently?
For example, What if a TCP timeout closes an idle DoT connection?
What if a QUIC stream ends up timing out but other streams on the same QUIC connection are going through?
Do the described scenarios cover the case when an encrypted transport's port is made unavailable/closed?</t>
        </section>
        <section anchor="handling-clean-shutdown-of-encrypted-transport-connection" numbered="true" toc="default">
          <name>Handling clean shutdown of encrypted transport connection</name>
          <t>At time <tt>T3</tt>, the recursive resolver may find that authoritative server <tt>X</tt> cleanly closes an existing outstanding connection (most likely due to resource exhaustion, see <xref target="authoritative-resource-exhaustion" format="default"/>).</t>
          <t>When this happens:</t>
          <ul spacing="normal">
            <li>set <tt>E-session[X]</tt> to <tt>null</tt></li>
            <li>
              <t>for each query <tt>Q</tt> in <tt>E-queries[X]</tt>:
              </t>
              <ul spacing="normal">
                <li>if <tt>Q</tt>  is not present in any other <tt>*-queries[X]</tt> or in <tt>Do53-queries[X]</tt>, report <tt>SERVFAIL</tt> to the requesting client.</li>
              </ul>
            </li>
          </ul>
        </section>
        <section anchor="sending" numbered="true" toc="default">
          <name>Sending a query over encrypted transport</name>
          <t>When sending a query to an authoritative server over encrypted transport at time <tt>T4</tt>, the recursive resolver should take a few reasonable steps to ensure privacy and efficiency.</t>
          <t>When sending query <tt>Q</tt>, the recursive resolver should ensure that its state in <tt>E-queries[X]</tt> is set to <tt>sent</tt>.</t>
          <t>The recursive resolver also sets <tt>E-last-activity[X]</tt> to <tt>T4</tt>.</t>
          <t>In addition, the recursive resolver should consider the following guidance:</t>
          <section anchor="avoid-edns-client-subnet" numbered="true" toc="default">
            <name>Avoid EDNS client subnet</name>
            <t>To protect the privacy of the client, the recursive resolver SHOULD NOT send EDNS(0) Client Subnet information to the authoritative server (<xref target="RFC7871" format="default"/>) unless explicitly authorized to do so by the client.</t>
          </section>
          <section anchor="pad-to-standard-policy" numbered="true" toc="default">
            <name>Pad to standard policy</name>
            <t>To increase the anonymity set for each query, the recursive resolver SHOULD use EDNS(0) padding according to policies described in <xref target="RFC8467" format="default"/>.</t>
          </section>
          <section anchor="send-queries-in-separate-channels" numbered="true" toc="default">
            <name>Send queries in separate channels</name>
            <t>When multiple queries are multiplexed on a single encrypted transport to a single authoritative server, the recursive resolver MUST offer distinct query ID fields for every outstanding query on a connection, and MUST be capable of receiving responses out of order.</t>
            <t>To the extent that the encrypted transport can avoid head-of-line blocking (e.g. QUIC can use a separate stream per query) the recursive resolver SHOULD avoid head-of-line blocking.</t>
          </section>
        </section>
        <section anchor="receiving-a-response-over-encrypted-transport" numbered="true" toc="default">
          <name>Receiving a response over encrypted transport</name>
          <t>When a response <tt>R</tt> for query <tt>Q</tt> arrives at the recursive resolver over encrypted transport <tt>E</tt> from authoritative server with IP address <tt>X</tt> at time <tt>T5</tt>, if <tt>Q</tt> is in <tt>E-queries[X]</tt>, the recursive resolver takes the following steps:</t>
          <ul spacing="normal">
            <li>Remove <tt>R</tt> from <tt>E-queries[X]</tt></li>
            <li>Set <tt>E-last-activity[X]</tt> to <tt>T5</tt></li>
            <li>
              <t>If <tt>R</tt> is successful:
              </t>
              <ul spacing="normal">
                <li>send <tt>R</tt> to the requesting client</li>
                <li>
                  <t>For each supported encrypted transport <tt>N</tt> other than <tt>E</tt>:
                  </t>
                  <ul spacing="normal">
                    <li>
                      <t>If <tt>Q</tt> is in <tt>N-queries[X]</tt>:
                      </t>
                      <ul spacing="normal">
                        <li>Remove <tt>Q</tt> from <tt>N-queries[X]</tt></li>
                      </ul>
                    </li>
                  </ul>
                </li>
                <li>
                  <t>If <tt>Q</tt> is in <tt>Do53-queries[X]</tt>:
                  </t>
                  <ul spacing="normal">
                    <li>Remove <tt>Q</tt> from <tt>Do53-queries[X]</tt></li>
                  </ul>
                </li>
              </ul>
            </li>
            <li>
              <t>Otherwise (<tt>R</tt> is unsuccessful, e.g., <tt>SERVFAIL</tt>):
              </t>
              <ul spacing="normal">
                <li>
                  <t>If <tt>Q</tt> is not in <tt>Do53-queries[X]</tt> or any other <tt>*-queries[X]</tt>:
                  </t>
                  <ul spacing="normal">
                    <li>Return <tt>SERVFAIL</tt> to the requesting client
FIXME: What response should be sent to the clients in the case that extended DNS errors are used in an authoritative's response?</li>
                  </ul>
                </li>
              </ul>
            </li>
          </ul>
        </section>
        <section anchor="recursive-resource-exhaustion" numbered="true" toc="default">
          <name>Resource Exhaustion</name>
          <t>Over time, a recursive resolver following this policy may find that it is limited in resources, and may prefer to close some outstanding connections.</t>
          <t>This could be done by checking available/consumed resources on a fixed schedule, by having a policy of only keeping a fixed number of connections open, by checking resources when activity occurs, or by some other cadence.</t>
          <t>When existing connections should be closed, the recursive resolver should use a reasonable prioritization scheme to close outstanding connections.</t>
          <t>One reasonable prioritization scheme would be:</t>
          <ul spacing="normal">
            <li>close outstanding <tt>established</tt> sessions based on <tt>E-last-activity[X]</tt> (oldest timestamp gets closed first)</li>
          </ul>
          <t>Note that when resources are limited, a recursive resolver following this guidance may also choose not to initiate new connections for encrypted transport.</t>
        </section>
        <section anchor="maintaining-connections" numbered="true" toc="default">
          <name>Maintaining connections</name>
          <t>Some recursive resolvers looking to amortize connection costs, and to minimize latency MAY choose to synthesize queries to a particular resolver to keep a encrypted transport session active.</t>
          <t>A recursive resolver that adopts this approach should try to align the synthesized queries with other optimizations.
For example, a recursive resolver that "pre-fetches" a particular resource record to keep its cache "hot" can send that query over an established encrypted transport session.</t>
        </section>
      </section>
    </section>
    <section anchor="signalling-for-stronger-defense" numbered="true" toc="default">
      <name>Signalling for Stronger Defense</name>
      <t>This draft <em>does not</em> contemplate the specification of any form of coordinated signalling between authoritative servers and recursive resolvers, as such measures would not be unilateral.</t>
      <t>However, the draft highlights the needs of a signaling mechanism for stronger defense.</t>
      <t>We highlight the following questions for other specifications to solve:</t>
      <ul spacing="normal">
        <li>
          <t>What does the signal need to contain?
          </t>
          <ul spacing="normal">
            <li>type of transport? (DoQ? DoT? DoH?)</li>
            <li>error reporting if secure, authenticated connection fails (how to report? similar to TLSRPT?)</li>
            <li>whether to hard-fail if encrypted communication isn't available</li>
            <li>cryptographic authentication of authoritative server (e.g. pubkeys) vs. names vs. domain?</li>
          </ul>
        </li>
        <li>
          <t>How should the signal be presented?
          </t>
          <ul spacing="normal">
            <li>SVCB RR or "surprising" DS RR</li>
          </ul>
        </li>
        <li>
          <t>How should the signal be scoped?
          </t>
          <ul spacing="normal">
            <li>per-nameserver (by NS), per-nameserver (by IP address, via <tt>in-addr.arpa</tt>), or per-domain?</li>
          </ul>
        </li>
      </ul>
      <section anchor="combining-signals-with-opportunistic-probing" numbered="true" toc="default">
        <name>Combining Signals with Opportunistic Probing</name>
        <t>FIXME: How do the signals get combined with the above opportunistic probing policy?
Can we specify that without needing to specify the signalling mechanism itself?</t>
      </section>
    </section>
    <section anchor="iana-considerations" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>IANA does not need to do anything for implementers to adopt the guidance found in this draft.</t>
    </section>
    <section anchor="security-considerations" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>The guidance in this draft provides defense against passive network monitors for most queries.
It does not defend against active attackers.
It can also leak some queries and their responses due to "happy eyeballs" optimizations when the resolver's cache is cold.</t>
      <t>Implementation of the guidance in this draft should increase deployment of opportunistic encrypted DNS transport between recursive resolvers and authoritative servers at little operational risk.</t>
      <t>However, implementers should not rely on the guidance in this draft for robust defense against active attackers, but should treat it as a stepping stone en route to stronger defense.</t>
      <t>This guidance is only one part of operating a privacy-preserving DNS ecosystem.
A privacy-preserving recursive resolver should adopt other practices as well, such as QNAME minimization, local root zone, etc, to reduce the overall leakage of query information that could infringe on the client's privacy.</t>
    </section>
    <section anchor="acknowledgements" numbered="true" toc="default">
      <name>Acknowledgements</name>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119" 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="RFC8174" 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>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC1035" target="https://www.rfc-editor.org/info/rfc1035">
          <front>
            <title>Domain names - implementation and specification</title>
            <author fullname="P.V. Mockapetris" initials="P.V." surname="Mockapetris">
              <organization/>
            </author>
            <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="I-D.ietf-dprive-dnsoquic" target="https://www.ietf.org/archive/id/draft-ietf-dprive-dnsoquic-06.txt">
          <front>
            <title>DNS over Dedicated QUIC Connections</title>
            <author fullname="Christian Huitema">
              <organization>Private Octopus Inc.</organization>
            </author>
            <author fullname="Sara Dickinson">
              <organization>Sinodun IT</organization>
            </author>
            <author fullname="Allison Mankin">
              <organization>Salesforce</organization>
            </author>
            <date day="20" month="October" 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
   packet loss recovery 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-06"/>
        </reference>
        <reference anchor="I-D.ietf-tls-esni" target="https://www.ietf.org/archive/id/draft-ietf-tls-esni-13.txt">
          <front>
            <title>TLS Encrypted Client Hello</title>
            <author fullname="Eric Rescorla">
              <organization>RTFM, Inc.</organization>
            </author>
            <author fullname="Kazuho Oku">
              <organization>Fastly</organization>
            </author>
            <author fullname="Nick Sullivan">
              <organization>Cloudflare</organization>
            </author>
            <author fullname="Christopher A. Wood">
              <organization>Cloudflare</organization>
            </author>
            <date day="12" month="August" year="2021"/>
            <abstract>
              <t>   This document describes a mechanism in Transport Layer Security (TLS)
   for encrypting a ClientHello message under a server public key.

Discussion Venues

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

   Source for this draft and an issue tracker can be found at
   https://github.com/tlswg/draft-ietf-tls-esni
   (https://github.com/tlswg/draft-ietf-tls-esni).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-esni-13"/>
        </reference>
        <reference anchor="RFC7435" 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 "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="RFC7858" 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="RFC7871" target="https://www.rfc-editor.org/info/rfc7871">
          <front>
            <title>Client Subnet in DNS Queries</title>
            <author fullname="C. Contavalli" initials="C." surname="Contavalli">
              <organization/>
            </author>
            <author fullname="W. van der Gaast" initials="W." surname="van der Gaast">
              <organization/>
            </author>
            <author fullname="D. Lawrence" initials="D." surname="Lawrence">
              <organization/>
            </author>
            <author fullname="W. Kumari" initials="W." surname="Kumari">
              <organization/>
            </author>
            <date month="May" year="2016"/>
            <abstract>
              <t>This document describes an Extension Mechanisms for DNS (EDNS0) option that is in active use to carry information about the network that originated a DNS query and the network for which the subsequent response can be cached.  Since it has some known operational and privacy shortcomings, a revision will be worked through the IETF for improvement.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7871"/>
          <seriesInfo name="DOI" value="10.17487/RFC7871"/>
        </reference>
        <reference anchor="RFC8305" target="https://www.rfc-editor.org/info/rfc8305">
          <front>
            <title>Happy Eyeballs Version 2: Better Connectivity Using Concurrency</title>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi">
              <organization/>
            </author>
            <author fullname="T. Pauly" initials="T." surname="Pauly">
              <organization/>
            </author>
            <date month="December" year="2017"/>
            <abstract>
              <t>Many communication protocols operating over the modern Internet use hostnames.  These often resolve to multiple IP addresses, each of which may have different performance and connectivity characteristics.  Since specific addresses or address families (IPv4 or IPv6) may be blocked, broken, or sub-optimal on a network, clients that attempt multiple connections in parallel have a chance of establishing a connection more quickly.  This document specifies requirements for algorithms that reduce this user-visible delay and provides an example algorithm, referred to as "Happy Eyeballs".  This document obsoletes the original algorithm description in RFC 6555.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8305"/>
          <seriesInfo name="DOI" value="10.17487/RFC8305"/>
        </reference>
        <reference anchor="RFC8467" target="https://www.rfc-editor.org/info/rfc8467">
          <front>
            <title>Padding Policies for Extension Mechanisms for DNS (EDNS(0))</title>
            <author fullname="A. Mayrhofer" initials="A." surname="Mayrhofer">
              <organization/>
            </author>
            <date month="October" year="2018"/>
            <abstract>
              <t>RFC 7830 specifies the "Padding" option for Extension Mechanisms for DNS (EDNS(0)) but does not specify the actual padding length for specific applications.  This memo lists the possible options ("padding policies"), discusses the implications of each option, and provides a recommended (experimental) option.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8467"/>
          <seriesInfo name="DOI" value="10.17487/RFC8467"/>
        </reference>
        <reference anchor="RFC8484" 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>
      </references>
    </references>
    <section anchor="document-considerations" numbered="true" toc="default">
      <name>Document Considerations</name>
      <t>[ RFC Editor: please remove this section before publication ]</t>
      <t>This document is currently edited as markdown.
Minor editorial changes can be suggested via merge requests at https://gitlab.com/dkg/dprive-unilateral-probing or by e-mail to the editor.
Please direct all significant commentary to the public IETF DPRIVE mailing list: dprive@ietf.org</t>
      <t>The authors' latest draft can be read online in <eref target="https://dkg.gitlab.io/dprive-unilateral-probing/">html</eref> or <eref target="https://dkg.gitlab.io/dprive-unilateral-probing/unilateral-probing.pdf">pdf</eref> or <eref target="https://dkg.gitlab.io/dprive-unilateral-probing/unilateral-probing.txt">text</eref> formats.</t>
      <section anchor="document-history" numbered="true" toc="default">
        <name>Document History</name>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAKlllmEAA9VdbXPbRpL+zl8xJddVpC2SkR17Y+vu1qtIylq7tmxL8iap
XOoIEkMSKxDgYgDJTOL/fv10zxtAULK37sPdfsjSwGBeevr16Z7RaDQa1Fmd
6yP1ocjypNZVkqu363VZ1U2RmTqbqVO9zsvNShe1KufqrJhVm3WtU3WpZ01l
sls9qsvRcVMvyyqrk5oeqNOLq0EynVb6ttVv+Ha7eVrOimRF80irZF6P0pvF
P0ySj9J1hREa38loXZXTrFiMDg8HM3q0KKvNkcqKeTkYZOvqSNVVY+onh4cv
Dp8MkkoneFkP7srqZlGVzZoG4C4HN3pDD9MjdV5Qx4WuR6cYeTAwdVKk/53k
ZUGz2WgzGCQ826OBUiNF/1HUozlSp2P1t7H6S5bnq7Lix7KA06TIdK7+liyL
1tuyWhyp45WusllSqJPsNsvV62yqqzrTBmQqC25n6krr+kg9fvJMfVeVSaqu
6jG/mWU1rfVC36mfaDlDdfGTPC5TGvbx4eHhU/vvpqhBlQ9Xx/zAbcXxyesP
/ECvkiwnStws/jzP5vWSVmfoWTEmMmCVYZF/HaurJE9+TeIV/rXUm9ZjWdrl
9fnJ6zP1+EV7GYfPR48fP1V/KfNUF+p1UuhoMa/LIrXrlmWcnTz+SR1ev+6s
5G/thdgx7Dr+QfNZELf8eYF/j2flagCGqFbMXti3y+9PHh9+8ww/z0en40zX
c8daaWHKfzbZrPWuzs1ImyKz3377VL7Fz+fPnvuf3z62P59/c+gaPH/6x2/9
z+dPjwZFZyJPHj9+4Ro8/pYajEYjWhnRK5kR+10vMyNCoIyujSob+lHrtVH1
MqkhK/S8utWVUfuVE0FVaVPm/JCYVyUt8bLNDxT4rk5utArilG/U/l1GrWmU
pNgQxUkmsoI+LAuFF6qsl7pSa8091KVK9VzTEJjHPxtdbRTImMw2KlkkxDLU
jVonhidF3AS5U6uyyOqyGtPatF1LRjMJC8XEppq7TqAeptRboYgc6CWp62R2
o6uhmoIUNNU8RWuTrdY5TQ0LzrUxqsrMzUamCI0FehU0dqXVurzT1bzJZfJG
G5mKDJ7kpoSOqMq0mZEk7mOYtKRfRVmTOuEuzVrPsvmGKIAlQFZINRooRJMt
CqIjqSTZoDue31pXq6x24wXabK1qPOCpLErSj9RbRBT6gYGxShqZl0mzIOqk
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
iHjbXnvj2fFVhuLvzWDwP99K0zcDaQAA

-->

</rfc>
