<?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.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-schinazi-masque-proxy-09" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title>The MASQUE Architecture</title>
    <seriesInfo name="Internet-Draft" value="draft-schinazi-masque-proxy-09"/>
    <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="August" day="27"/>
    <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 Frames in HTTP</title>
          <author fullname="Alejandro Sedeño" initials="A." surname="Sedeño">
            <organization>Google LLC</organization>
          </author>
          <date day="18" month="August" year="2026"/>
          <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-14"/>
      </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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
CvfH1SUC7f8AIOvVNwMlAAA=

-->

</rfc>
