<?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.30 (Ruby 3.4.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-schinazi-masque-proxy-08" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title>The MASQUE Architecture</title>
    <seriesInfo name="Internet-Draft" value="draft-schinazi-masque-proxy-08"/>
    <author initials="D." surname="Schinazi" fullname="David Schinazi">
      <organization>Google LLC</organization>
      <address>
        <email>dschinazi.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2026" month="March" day="02"/>
    <keyword>masque</keyword>
    <keyword>proxy</keyword>
    <keyword>kuzh</keyword>
    <abstract>
      <?line 33?>

<t>MASQUE (Multiplexed Application Substrate over QUIC Encryption) is a set of
protocols and extensions to HTTP that allow proxying all kinds of Internet
traffic over HTTP. This document describes the architectural principles
behind MASQUE, and the properties that MASQUE can provide.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://davidschinazi.github.io/masque-drafts/draft-schinazi-masque-proxy.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-schinazi-masque-proxy/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/DavidSchinazi/masque-drafts"/>.</t>
    </note>
  </front>
  <middle>
    <?line 40?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>In the early days of HTTP (<xref target="HTTP"/>)), requests and responses weren't encrypted. In order
to add features such as caching, HTTP proxies were developed to parse HTTP
requests from clients and forward them on to other HTTP servers. As SSL/TLS (<xref target="TLS"/>)
became more common, the CONNECT method was introduced (<xref target="CONNECT"/>) to
allow proxying SSL/TLS over HTTP. That gave HTTP the ability to create tunnels
that allow proxying any TCP-based protocol. While non-TCP-based protocols were
always prevalent on the Internet, the large-scale deployment of QUIC
(<xref target="QUIC"/>) meant that TCP no longer represented the majority of Internet
traffic. Simultaneously, the creation of HTTP/3 (<xref target="HTTP3"/>) allowed running HTTP
over a non-TCP-based protocol. In particular, QUIC allows disabling loss
recovery (<xref target="DGRAM"/>) and that can then be used in HTTP
(<xref target="HTTP-DGRAM"/>). This confluence of events created both the possibility
and the necessity for new proxying technologies in HTTP. This led to the
creation of MASQUE (Multiplexed Application Substrate over QUIC Encryption)
in 2019.</t>
    </section>
    <section anchor="architectural-principles">
      <name>Architectural Principles</name>
      <t>Fundamentally, the main design choice for MASQUE was to run atop HTTP. While
this choice was initially motivated by privacy benefits (making it harder to
distinguish MASQUE traffic from Web browsing), it also facilitated the
deployment of MASQUE given the wide availability of HTTP implementations.</t>
      <section anchor="benefits-of-http">
        <name>Benefits of HTTP</name>
        <t>A large number of Internet-connected services use HTTP. That has led to
widespread implementation and adoption of HTTP. For existing deployments of
HTTP, adding MASQUE capabilities was possible without reimplementing
security or cryptographic protocols, as would have been necessary for other
proxying technologies. Similarly, many aspects of the HTTP ecosystem, such
as Denial-of-Service protection, load balancing, and monitoring were
reused with minimal changes.</t>
        <t>Another benefit is the ease of integration with other components of HTTP
(such as HTTP Authentication) and extension points (such as HTTP header
fields).</t>
      </section>
      <section anchor="capabilities">
        <name>Capabilities</name>
        <t>MASQUE allows proxying UDP (<xref target="CONNECT-UDP"/>), IP
(<xref target="CONNECT-IP"/>), and even Ethernet
(<xref target="CONNECT-ETHERNET"/>) over HTTP.
There are also a variety of extensions to these MASQUE protocols to
support a wide range of proxying needs.</t>
        <t>In the rest of this document, we use the term "MASQUE proxy" to refer to
an HTTP proxy (as defined in <xref section="3.7" sectionFormat="of" target="HTTP"/>) that implements
MASQUE capabilities.</t>
      </section>
      <section anchor="privacy-protections">
        <name>Privacy Protections</name>
        <t>There are currently multiple usage scenarios that can benefit from using
MASQUE.</t>
        <section anchor="protection-from-web-servers">
          <name>Protection from Web Servers</name>
          <t>Connecting directly to Web servers allows them to access the public IP address
of the user. There are many privacy concerns relating to user IP addresses
(<xref target="IP-PRIVACY"/>). Because of
these, many user agents would rather not establish a direct connection to Web
servers. They can do that by running their traffic through a MASQUE proxy. The
Web server will only see the IP address of the MASQUE proxy, not that of the
client.</t>
        </section>
        <section anchor="protection-from-network-providers">
          <name>Protection from Network Providers</name>
          <t>Some users may wish to obfuscate the destination of their network traffic from
their network provider. This prevents network providers from using data
harvested from this network traffic in ways the user did not intend.</t>
        </section>
        <section anchor="partitioning">
          <name>Partitioning</name>
          <t>While routing traffic through a MASQUE proxy reduces the network provider's
ability to observe traffic, that information is transfered to the proxy
operator. This can be suitable for some threat models, but for the majority of
users transferring trust from their network provider to their proxy (or VPN)
provider is not a meaningful security improvement.</t>
          <t>There is a technical solution that allows resolving this issue: it is possible
to nest MASQUE tunnels such that traffic flows through multiple MASQUE proxies.
This has the advantage of partitioning sensitive information to prevent
correlation <xref target="PARTITION"/>.</t>
          <t>Though the idea of nested tunnels dates back decades (<xref target="TODO"/>), MASQUE now
allows running HTTP/3 end-to-end from a user agent to an origin via multiple
nested CONNECT-UDP tunnels. The proxy closest to the user can see the user's IP
address but not the origin, whereas the other proxy can see the origin without
knowing the user's IP address. If the two proxies are operated by non-colluding
entities, this allows hiding the user's IP address from the origin without the
proxies knowing the user's browsing history.</t>
        </section>
        <section anchor="obfuscation">
          <name>Obfuscation</name>
          <t>The fact that MASQUE is layered over HTTP makes it much more resilient to
detection. To network observers, the unencrypted bits in a QUIC connection used
for MASQUE are indistinguishable from those of a regular Web browsing
connection. Separately, if paired with a non-probeable HTTP authentication
scheme (e.g., <xref target="CONCEALED-AUTH"/>), any Web server can also become a MASQUE
proxy while remaining indistinguishable from a regular Web server. This defeats
detection tools that operate solely on packet formats.</t>
          <t>However, it is still possible to perform statitiscal analyses on the encrypted
data. There exist commercially available products that are able to identify
visited websites based solely on the timing and size of encrypted packets.
While MASQUE increases the cost of such traffic analysis efforts, it doesn't
prevent them from being used at scale.</t>
          <t>MASQUE implementations can leverage the ability for HTTP/2 (<xref target="HTTP2"/>), HTTP/3, TLS, or
QUIC to introduce padding inside the encryption. That enables many defensive
strategies such as ensuring that all packets are the same size, or introducing
variable amounts of cover traffic. From a theoretical perspective, sending data
at a constant bitrate is the only way to fully prevent statistical analysis,
but it likely introduces too much overhead to be deployable at scale. Finding
padding strategies that balance resistance against statistical analysis with
overheads remains an open research problem.</t>
        </section>
      </section>
    </section>
    <section anchor="related-technologies">
      <name>Related Technologies</name>
      <t>This section discusses how MASQUE fits in with other contemporary
privacy-focused IETF protocols.</t>
      <section anchor="ohttp">
        <name>OHTTP</name>
        <t>Oblivious HTTP (<xref target="OHTTP"/>) uses a cryptographic primitive
(<xref target="HPKE"/>) that is more lightweight than TLS, making it
a great fit for decorrelating HTTP requests. In traditional Web browsing, the
user agent will often make many requests to the same origin (e.g., to load
HTML, style sheets, images, scripts) and those requests are correlatable since
the origin can include identifying query parameters to join separate requests.
In such scenarios, MASQUE is a better fit since it operates at the granularity
of a connection. However, there are scenarios where a user agent might want to
make non-correlatable requests (e.g., to anonymously report telemetry); for
those, OHTTP provides better efficiency than using MASQUE with a separate
connection per request. While OHTTP and MASQUE are separate technologies that
serve different use cases, they can be colocated on the same HTTP server that
acts as both a MASQUE proxy and an OHTTP Relay.</t>
      </section>
      <section anchor="doh">
        <name>DoH</name>
        <t>DNS over HTTPS (<xref target="DoH"/>) allows encrypting DNS traffic by sending it
through an encrypted HTTP connection. Colocating a DoH server with a MASQUE IP
proxy provides better performance than using DNS over port 53 inside the
encrypted tunnel.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Implementers of a MASQUE proxy need to review the Security Considerations of
the documents referenced by this one.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <displayreference target="HTTP2" to="HTTP/2"/>
    <displayreference target="HTTP3" to="HTTP/3"/>
    <references anchor="sec-informative-references">
      <name>Informative References</name>
      <reference anchor="HTTP2">
        <front>
          <title>HTTP/2</title>
          <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
          <author fullname="C. Benfield" initials="C." role="editor" surname="Benfield"/>
          <date month="June" year="2022"/>
          <abstract>
            <t>This specification describes an optimized expression of the semantics of the Hypertext Transfer Protocol (HTTP), referred to as HTTP version 2 (HTTP/2). HTTP/2 enables a more efficient use of network resources and a reduced latency by introducing field compression and allowing multiple concurrent exchanges on the same connection.</t>
            <t>This document obsoletes RFCs 7540 and 8740.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9113"/>
        <seriesInfo name="DOI" value="10.17487/RFC9113"/>
      </reference>
      <reference anchor="HTTP3">
        <front>
          <title>HTTP/3</title>
          <author fullname="M. Bishop" initials="M." role="editor" surname="Bishop"/>
          <date month="June" year="2022"/>
          <abstract>
            <t>The QUIC transport protocol has several features that are desirable in a transport for HTTP, such as stream multiplexing, per-stream flow control, and low-latency connection establishment. This document describes a mapping of HTTP semantics over QUIC. This document also identifies HTTP/2 features that are subsumed by QUIC and describes how HTTP/2 extensions can be ported to HTTP/3.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9114"/>
        <seriesInfo name="DOI" value="10.17487/RFC9114"/>
      </reference>
      <reference anchor="TODO">
        <front>
          <title>find that 20 year old email about using nested CONNECT tunnels with SSL to improve privacy</title>
          <author>
            <organization/>
          </author>
          <date/>
        </front>
      </reference>
      <reference anchor="HTTP">
        <front>
          <title>HTTP Semantics</title>
          <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
          <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
          <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
          <date month="June" year="2022"/>
          <abstract>
            <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
            <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="97"/>
        <seriesInfo name="RFC" value="9110"/>
        <seriesInfo name="DOI" value="10.17487/RFC9110"/>
      </reference>
      <reference anchor="TLS">
        <front>
          <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
          <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
          <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>
      <reference anchor="CONNECT">
        <front>
          <title>Upgrading to TLS Within HTTP/1.1</title>
          <author fullname="R. Khare" initials="R." surname="Khare"/>
          <author fullname="S. Lawrence" initials="S." surname="Lawrence"/>
          <date month="May" year="2000"/>
          <abstract>
            <t>This memo explains how to use the Upgrade mechanism in HTTP/1.1 to initiate Transport Layer Security (TLS) over an existing TCP connection. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="2817"/>
        <seriesInfo name="DOI" value="10.17487/RFC2817"/>
      </reference>
      <reference anchor="QUIC">
        <front>
          <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
          <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
          <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
          <date month="May" year="2021"/>
          <abstract>
            <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9000"/>
        <seriesInfo name="DOI" value="10.17487/RFC9000"/>
      </reference>
      <reference anchor="DGRAM">
        <front>
          <title>An Unreliable Datagram Extension to QUIC</title>
          <author fullname="T. Pauly" initials="T." surname="Pauly"/>
          <author fullname="E. Kinnear" initials="E." surname="Kinnear"/>
          <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
          <date month="March" year="2022"/>
          <abstract>
            <t>This document defines an extension to the QUIC transport protocol to add support for sending and receiving unreliable datagrams over a QUIC connection.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9221"/>
        <seriesInfo name="DOI" value="10.17487/RFC9221"/>
      </reference>
      <reference anchor="HTTP-DGRAM">
        <front>
          <title>HTTP Datagrams and the Capsule Protocol</title>
          <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
          <author fullname="L. Pardue" initials="L." surname="Pardue"/>
          <date month="August" year="2022"/>
          <abstract>
            <t>This document describes HTTP Datagrams, a convention for conveying multiplexed, potentially unreliable datagrams inside an HTTP connection.</t>
            <t>In HTTP/3, HTTP Datagrams can be sent unreliably using the QUIC DATAGRAM extension. When the QUIC DATAGRAM frame is unavailable or undesirable, HTTP Datagrams can be sent using the Capsule Protocol, which is a more general convention for conveying data in HTTP connections.</t>
            <t>HTTP Datagrams and the Capsule Protocol are intended for use by HTTP extensions, not applications.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9297"/>
        <seriesInfo name="DOI" value="10.17487/RFC9297"/>
      </reference>
      <reference anchor="CONNECT-UDP">
        <front>
          <title>Proxying UDP in HTTP</title>
          <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
          <date month="August" year="2022"/>
          <abstract>
            <t>This document describes how to proxy UDP in HTTP, similar to how the HTTP CONNECT method allows proxying TCP in HTTP. More specifically, this document defines a protocol that allows an HTTP client to create a tunnel for UDP communications through an HTTP server that acts as a proxy.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9298"/>
        <seriesInfo name="DOI" value="10.17487/RFC9298"/>
      </reference>
      <reference anchor="CONNECT-IP">
        <front>
          <title>Proxying IP in HTTP</title>
          <author fullname="T. Pauly" initials="T." role="editor" surname="Pauly"/>
          <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
          <author fullname="A. Chernyakhovsky" initials="A." surname="Chernyakhovsky"/>
          <author fullname="M. Kühlewind" initials="M." surname="Kühlewind"/>
          <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
          <date month="October" year="2023"/>
          <abstract>
            <t>This document describes how to proxy IP packets in HTTP. This protocol is similar to UDP proxying in HTTP but allows transmitting arbitrary IP packets. More specifically, this document defines a protocol that allows an HTTP client to create an IP tunnel through an HTTP server that acts as an IP proxy. This document updates RFC 9298.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9484"/>
        <seriesInfo name="DOI" value="10.17487/RFC9484"/>
      </reference>
      <reference anchor="CONNECT-ETHERNET">
        <front>
          <title>Proxying Ethernet in HTTP</title>
          <author fullname="Alejandro Sedeño" initials="A." surname="Sedeño">
            <organization>Google LLC</organization>
          </author>
          <date day="10" month="October" year="2025"/>
          <abstract>
            <t>   This document describes how to proxy Ethernet frames in HTTP.  This
   protocol is similar to IP proxying in HTTP, but for Layer 2 instead
   of Layer 3.  More specifically, this document defines a protocol that
   allows an HTTP client to create a tunnel to exchange Layer 2 Ethernet
   frames through an HTTP server with an attached physical or virtual
   Ethernet segment.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-masque-connect-ethernet-08"/>
      </reference>
      <reference anchor="IP-PRIVACY">
        <front>
          <title>IP Address Privacy Considerations</title>
          <author fullname="Matthew Finkel" initials="M." surname="Finkel">
            <organization>Apple Inc.</organization>
          </author>
          <author fullname="Bradford Lassey" initials="B." surname="Lassey">
            <organization>Google</organization>
          </author>
          <author fullname="Luigi Iannone" initials="L." surname="Iannone">
            <organization>Huawei Technologies France S.A.S.U</organization>
          </author>
          <author fullname="Brad Chen" initials="B." surname="Chen">
            <organization>Google</organization>
          </author>
          <date day="23" month="October" year="2022"/>
          <abstract>
            <t>   This document provides an overview of privacy considerations related
   to user IP addresses.  It includes an analysis of some current use
   cases for tracking of user IP addresses, mainly in the context of
   anti-abuse.  It discusses the privacy issues associated with such
   tracking and provides input on mechanisms to improve the privacy of
   this existing model.  It then captures requirements for proposed
   'replacement signals' for IP addresses from this analysis.  In
   addition, existing and under-development techniques are evaluated for
   fulfilling these requirements.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-irtf-pearg-ip-address-privacy-considerations-01"/>
      </reference>
      <reference anchor="PARTITION">
        <front>
          <title>Partitioning as an Architecture for Privacy</title>
          <author fullname="M. Kühlewind" initials="M." surname="Kühlewind"/>
          <author fullname="T. Pauly" initials="T." surname="Pauly"/>
          <author fullname="C. A. Wood" initials="C. A." surname="Wood"/>
          <date month="July" year="2024"/>
          <abstract>
            <t>This document describes the principle of privacy partitioning, which selectively spreads data and communication across multiple parties as a means to improve privacy by separating user identity from user data. This document describes emerging patterns in protocols to partition what data and metadata is revealed through protocol interactions, provides common terminology, and discusses how to analyze such models.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9614"/>
        <seriesInfo name="DOI" value="10.17487/RFC9614"/>
      </reference>
      <reference anchor="CONCEALED-AUTH">
        <front>
          <title>The Concealed HTTP Authentication Scheme</title>
          <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
          <author fullname="D. Oliver" initials="D." surname="Oliver"/>
          <author fullname="J. Hoyland" initials="J." surname="Hoyland"/>
          <date month="February" year="2025"/>
          <abstract>
            <t>Most HTTP authentication schemes are probeable in the sense that it is possible for an unauthenticated client to probe whether an origin serves resources that require authentication. It is possible for an origin to hide the fact that it requires authentication by not generating Unauthorized status codes; however, that only works with non-cryptographic authentication schemes: cryptographic signatures require a fresh nonce to be signed. Prior to this document, there was no existing way for the origin to share such a nonce without exposing the fact that it serves resources that require authentication. This document defines a new non-probeable cryptographic authentication scheme.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9729"/>
        <seriesInfo name="DOI" value="10.17487/RFC9729"/>
      </reference>
      <reference anchor="OHTTP">
        <front>
          <title>Oblivious HTTP</title>
          <author fullname="M. Thomson" initials="M." surname="Thomson"/>
          <author fullname="C. A. Wood" initials="C. A." surname="Wood"/>
          <date month="January" year="2024"/>
          <abstract>
            <t>This document describes Oblivious HTTP, a protocol for forwarding encrypted HTTP messages. Oblivious HTTP allows a client to make multiple requests to an origin server without that server being able to link those requests to the client or to identify the requests as having come from the same client, while placing only limited trust in the nodes used to forward the messages.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9458"/>
        <seriesInfo name="DOI" value="10.17487/RFC9458"/>
      </reference>
      <reference anchor="HPKE">
        <front>
          <title>Hybrid Public Key Encryption</title>
          <author fullname="R. Barnes" initials="R." surname="Barnes"/>
          <author fullname="K. Bhargavan" initials="K." surname="Bhargavan"/>
          <author fullname="B. Lipp" initials="B." surname="Lipp"/>
          <author fullname="C. Wood" initials="C." surname="Wood"/>
          <date month="February" year="2022"/>
          <abstract>
            <t>This document describes a scheme for hybrid public key encryption (HPKE). This scheme provides a variant of public key encryption of arbitrary-sized plaintexts for a recipient public key. It also includes three authenticated variants, including one that authenticates possession of a pre-shared key and two optional ones that authenticate possession of a key encapsulation mechanism (KEM) private key. HPKE works for any combination of an asymmetric KEM, key derivation function (KDF), and authenticated encryption with additional data (AEAD) encryption function. Some authenticated variants may not be supported by all KEMs. We provide instantiations of the scheme using widely used and efficient primitives, such as Elliptic Curve Diffie-Hellman (ECDH) key agreement, HMAC-based key derivation function (HKDF), and SHA2.</t>
            <t>This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9180"/>
        <seriesInfo name="DOI" value="10.17487/RFC9180"/>
      </reference>
      <reference anchor="DoH">
        <front>
          <title>DNS Queries over HTTPS (DoH)</title>
          <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
          <author fullname="P. McManus" initials="P." surname="McManus"/>
          <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>
    <?line 197?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>MASQUE was originally inspired directly or indirectly by prior work from many
people. The author would like to thank <contact fullname="Nick Harper"/>,
<contact fullname="Christian Huitema"/>, <contact fullname="Marcus Ihlar"/>, <contact fullname="Eric Kinnear"/>,
<contact fullname="Mirja Kuehlewind"/>, <contact fullname="Brendan Moran"/>, <contact fullname="Lucas Pardue"/>,
<contact fullname="Tommy Pauly"/>, <contact fullname="Zaheduzzaman Sarker"/> and <contact fullname="Ben Schwartz"/> for their
input.</t>
      <t>In particular, the probing resistance component of MASQUE came from a
conversation with <contact fullname="Chris A. Wood"/> as we were preparing a draft for an
upcoming Thursday evening BoF.</t>
      <t>All of the MASQUE enthusiasts and other contributors to the MASQUE working
group are to thank for the successful standardization of <xref target="HTTP-DGRAM"/>,
<xref target="CONNECT-UDP"/>, and <xref target="CONNECT-IP"/>.</t>
      <t>The author would like to express immense gratitude to Christophe A., an
inspiration and true leader of VPNs.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
FO6P6ysE2v8BZMbGjwMlAAA=

-->

</rfc>
