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

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

<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>

<rfc ipr="trust200902" docName="draft-kuehlewind-quic-substrate-01" category="info">

  <front>
    <title abbrev="QUIC Substrate">Use Cases and Requirements for QUIC as a Substrate</title>

    <author initials="M." surname="Kuehlewind" fullname="Mirja Kuehlewind">
      <organization>Ericsson</organization>
      <address>
        <email>mirja.kuehlewind@ericsson.com</email>
      </address>
    </author>
    <author initials="Z." surname="Sarker" fullname="Zaheduzzaman Sarker">
      <organization>Ericsson</organization>
      <address>
        <email>zaheduzzaman.sarker@ericsson.com</email>
      </address>
    </author>
    <author initials="T." surname="Fossati" fullname="Thomas Fossati">
      <organization>Arm</organization>
      <address>
        <email>thomas.fossati@arm.com</email>
      </address>
    </author>
    <author initials="L." surname="Pardue" fullname="Lucas Pardue">
      <organization>Cloudflare</organization>
      <address>
        <email>lucaspardue.24.7@gmail.com</email>
      </address>
    </author>

    <date year="2019" month="July" day="05"/>

    
    
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>TCP is often used as a proxying or tunneling protocol. QUIC is a new,
emerging transport protocol and there is a similar expectation that it too will
be used as a substrate once it is widely deployed. Using QUIC instead of TCP in
existing scenarios will allow proxying and tunneling services to maintain the benefits
of QUIC natively, without degrading the performance and security characteristics.
QUIC also opens up new opportunities for these services to have lower latency and
better multistreaming support. This document summarizes current and future usage
scenarios to derive requirements for QUIC and to provide additional protocol
considerations.</t>



    </abstract>


  </front>

  <middle>


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

<t>QUIC is a new transport protocol that was initially developed as a way to optimize
HTTP traffic by supporting multiplexing without head-of-line-blocking and integrating
security directly into the transport. This tight integration of security allows the transport
and security handshakes to be combined into a single round-trip exchange, after which
both the transport connection and authenticated encryption keys are ready.</t>

<t>Based on the expectation that QUIC will be widely used for HTTP, it follows that there
will also be a need to enable the use of QUIC for HTTP proxy services.</t>

<t>Beyond HTTP, however, QUIC provides a general-purpose transport protocol that can
be used for many other kinds of traffic, whenever the features provided by QUIC
(compared to existing options, like TCP) are beneficial to the high-layer service.
Specifically, QUIC’s ability to multiplex, encrypt data, and migrate between network paths
makes it ideal for solutions that need to tunnel or proxy traffic.</t>

<t>Existing proxies that are not based on QUIC are often transparent. That is, they do not
require the cooperation of the ultimate connection endpoints, and are often not
visible to one or both of the endpoints. If QUIC provides the basis for future tunneling
and proxying solutions, it is expected that this relationship will change. At least one
of the endpoints will be aware of the proxy and explicitly coordinate with it. This allows
client hosts to make explicit decisions about the services they request from proxies
(for example, simple forward or more advance performance-optimizing services),
and to do so using a secure communication channel between themselves and the proxy.</t>

<t>This document describes some of the use cases for using QUIC for proxying and tunneling,
and explains the protocol impacts and tradeoffs of such deployments.</t>

</section>
<section anchor="usage-scenarios" title="Usage Scenarios">

<section anchor="obfuscation-via-tunneling" title="Obfuscation via Tunneling">

<t>Tunnels are used in many scenarios within the core of the network as well as
from a client endpoint to a proxy middlepoint on the way towards the server. In many cases, when
the client explicitly decides to use the support of a proxy in order to
connect to a server, it does so because a direct connection may be blocked or impaired. This
can either be the case in e.g. enterprise network where traffic is firewalled
and web traffic needs to be routed over an explicitly provided HTTP proxy, or
other reasons for blocking of certain services e.g. due to censorship, data
exfiltration protection, etc.</t>

<t>In this usage scenario the client knows the proxy’s address and explicitly
selects to connect to the proxy in order to instruct the proxy to forward its
traffic to a specific server. At a minimum, the client needs to communicate
directly with the proxy to provide the address of the server it wants to connect to,
e.g. using HTTP CONNECT.</t>

<t>Tunneling through a proxy server can provide various benefits, particularly when
using a proxy that has a secure multiplexed channel like QUIC:</t>

<t><list style="symbols">
  <t>Obfuscating the end server’s IP address from the observers between the client and
the proxy, which protects the identity of a private server’s address or circumvents
local firewall rules.</t>
  <t>Obfuscating the client’s IP address from the perspective of observers after the proxy,
to the end server itself. This allows the client to select content as if it has the address
or location of the proxy.</t>
  <t>Obfuscating the traffic patterns of the traffic from the perspective of observers
between the client and the proxy. If the content of connections to many end servers
can be coalesced as one flow, it becomes increasingly difficult for observers to
detect how many inner connections are being used, or what the content of
those connections are.</t>
</list></t>

<t>Such a setup can also be realized with the use of an outer tunnel which would additionally
obfuscate the content of the tunnel traffic to any observer between the client
and the proxy. Usually the server is not aware of the proxy in the middle, so
the proxy needs to re-write the IP address of any traffic inside the tunnel to
ensure that the return traffic is also routed back to the proxy. This is also often
used to conceal the address/location of the client to the server, e.g. to access
local content that would not be accessible by the client at its current location
otherwise.</t>

<t>In any of these tunneling scenarios, including those deployed today, the client
explicitly decides to make use of a proxy service while being fully transparent
for the server, or even with the intention to hide the client’s identity from the
server. This is explicitly part of the design as these services are targeting an
impaired or otherwise constrained network setup. Therefore, an explicit
communication channel between client and proxy is needed to at least
communicate the information about the target server’s address, and potentially
other information needed to inform the behaviour of the proxy.</t>

</section>
<section anchor="advanced-support-of-user-agents" title="Advanced Support of User Agents">

<t>Depending on the traffic that is sent “over” the proxy, it is also possible that
the proxy can perform additional support services if requested by the client.
Today, Performance Enhancing Proxies (PEPs) usually work transparently by either
fully or partially terminating the transport connection or even intercepting the
end-to-end encryption. For many of these support services termination
is actually not needed and may even be problematic. However, it is often the only,
or at least easiest, solution if no direct communication with the client is available.
Enabling these services based on an explicit tunnel setup between the client and
the proxy provides such a communication channel and makes it possible to
exchange information in a private and authenticated way.</t>

<t>It is expected that in-network functions are usually provided close to the
client e.g. hosted by the access network provider. Having this direct relation between
the endpoint and the network service is also necessary in order to discover the
service, as the assumption is that a client knows how to address the proxy
service and which service is offered (besides forwarding). Such a setup is
especially valuable in access networks with challenging link environments such as
satellite or cellular networks. While end-to-end functions need to be designed
to handle all kind of network conditions, direct support from the network can
help to optimize for the specific characteristics of the access network such as use
of link-specific congestion control or local repair mechanisms.</t>

<t>Further, if not provided by the server directly, a network support function can
also assist the client to adapt the traffic based on device characteristics and
capabilities or user preferences. Again, especially if the access network is
constrained, this can benefit both the network provider to save resources and
the client to receive the desired service quicker or less impaired. Such a
service could even be extended to include caching or pre-fetching depending on
the trust relationship between the client and the proxy.</t>

<t>Depending on the function provided, the proxy may need to access or alter the
traffic or content. Alternatively, if the information provided by the client or proxy
can be trusted, it might in some cases also be possible for each of the entities
to act based on this information without the need to access the content or some
of the traffic metadata directly. Especially transport layer optimizations do not need
access to the actual user content. Network functions should generally minimize
dependencies to higher layer characteristics as those may change frequently.</t>

<t>Similar as in the previous usage scenario, in this setup the client explicitly
selects the proxy and specifies the requested support function. Often the server
may not need to be aware of it, however, depending on the optimization function,
server cooperation could be beneficial as well. However, the client and the proxy
need a direct and secured communication channel in order to request and configure
a service and exchange or expose the needed information and metadata.</t>

<section anchor="security-and-access-policy-enforcement" title="Security and Access Policy Enforcement">

<t>Some deployment models may wish to enforce security or access policies on
traffic flowing between domains (physical, logical, administrative, security
etc.). To support this, endpoints coordinate through a gateway that can require
information about the transport layer, application layer and application
content. Policy is generally configured out-of-band, either statically or
through some independent control plane.</t>

<t>In one use case, the enforcement function controls egress traffic; a client
connects to a proxy, typically inside the same domain, in order to cross the
domain boundary. In another use case, the enforcement function controls ingress
traffic; a client connects to a proxy that controls access to the ultimate
destination. This may be deployed inside the target domain, near it, or further
away as a part of a third-party security service. Clients are usually remote and
diverse, and use connections that have crossed several other domains (with or
without tunnels).</t>

<t>Enforcement functions typically require some form of client authentication such
as username, password or certificate. Authentication is enforced at the earliest
stage of communication.</t>

<t>Enforcement rules might require access to transport characteristics of the
ultimate endpoints (such as client source IP address). This might change as
traffic moves between domains, whether tunneling is used or not. Therefore, it
can be desireable to encapsulate original information in form accessible to the
enforcement function.</t>

</section>
</section>
<section anchor="frontend-support-for-load-balancing-and-migrationmobility" title="Frontend Support for Load Balancing and Migration/Mobility">

<t>Application service providers aiming to improve access flexibility might use
proxies in front of their services.</t>

<t>In one usage scenario the client communicates with a reverse proxy that assists
with access to and selection of the content requested. This proxy that may or
may not be under the authority of the service provider. Today such reverse
proxies terminate the connection, including the security association, and as
such appear as the communication endpoint to the client. Terminating both
transport and security may be problematic if the proxy provider is not under the
direct authority of the actual service provider (e.g. a contracted third party).</t>

<t>In another usage scenario the client communicates with a frontend proxy that
manages traffic steering to assist with load balancing or migration for mobility
support of server or client. This proxy is more likely to be located close to
the server and under the same administrative domain, or at least has some trust
relationship with the application service provider. The server may have its own
communication channel with the proxy or tunnel endpoint in order to provide data
that is used for decision making. Meanwhile, the client is usually not aware of
any specifics of the setup behind the substrate endpoint. However, improving
visibility may benefit future explicit tunneling or proxying approaches.</t>

</section>
<section anchor="iot-gateways" title="IoT Gateways">

<t>A number of IoT devices are connected via a low-power wireless network (e.g., a
Bluetooth LE piconet) and need to talk to their parent cloud service to provide
sensor readings or receive firmware updates.  When end-to-end IP connectivity
is not possible or desirable for at least some of the devices, one or more IP
capable nodes in the piconet can be designated as ad-hoc gateways to forward
sensor traffic to the cloud and vice-versa.  In other scenarios, a less
constrained node - sometimes called a “smart gateway” - can assume the
forwarding role permanently.  In both cases, the gateway node routes messages
based on client’s session identifiers, which need to be unique among all the
active participants so that the gateway can route unambiguously.  The access
network attachment is expected to change over time but the end-to-end
communication (especially the security association) needs to persist for as
long as possible.  A strong requirement for these deployments is privacy: data
on the public Internet (i.e., from the gateway to the cloud service) needs to
be made as opaque as possible to passive observers, possibly hiding the natural
traffic patterns associated with the sensor network.  A mechanism to provide
discovery of the proxy node to the rest of the piconet is also typically
necessary.</t>

<t>Today, the above requirements can be met by composing an end-to-end secure
channel (e.g., based on DTLS sessions with client-chosen connection IDs
<xref target="I-D.ietf-tls-dtls-connection-id"/> or application layer TLS
<xref target="I-D.friel-tls-atls"/> from the sensors to the cloud together with a
multiplexed secure tunnel (e.g., using HTTP/2 Websockets <xref target="RFC8441"/>, or a
proprietary shim) from the gateway to the cloud.  In the future, a more
homogeneous solution could be provided by QUIC <xref target="I-D.ietf-quic-transport"/> for
both the end-to-end and tunneling services, thus simplifying code dependencies
on the gateway nodes.</t>

</section>
<section anchor="multi-hop-chaining-usage" title="Multi-hop Chaining Usage">

<t>Providing a generic approach to use QUIC as a substrate also enables the
combination of multiples of the above use cases. For example, employing multiple
obfuscating proxies in sequence, where the communication with each proxy is
individually secured, can enable onion-like layered security. Each proxy will
only know the address of the prior hop and after itself, similar as provided by
onion routing in Tor project <xref target="TOR"/>.</t>

<t>Further it would also be possible to chain proxies for different
reasons. A client may select proxying support from its access network, while a web
service provider may utilize a front-end load balancing proxy to provide end-to-end
secure communication with the applications components servers. Here the proxy and
the load balancer have different tasks. The access network proxy optimizes the
aggregated data transport. The load balancer needs to route different set of
end-to-end protected data that it aggregates. A third example would be
multiple proxies to cooperate and maybe exchange measurement information in order
to optimize the QUIC connection over a specific segment.</t>

<t>The above examples indicates that a solution likely have to consider how to
establish a security model so that endpoints can selectively choose what
connection related information to share with the different proxy entities.  The
possible efficiency should also be consider and multiple layers of encapsulation
should be avoided when the security model allows for it.</t>

</section>
</section>
<section anchor="requirements" title="Requirements">

<t>To use QUIC as a substrate, it could be beneficial if unreliable transmission is
supported as well as having a way to potentially influence or disable congestion
control if the inner tunnel traffic is known to be congestion controlled.</t>

<t>Communication between the client and proxy is more likely to be realized as a
separate protocol on top of QUIC or HTTP. However, a QUIC extensibility
mechanism could be used to indicate to the receiver that QUIC is used as a
substrate and potentially additional information about which protocol is used for
communication between these entities. A similar mechanism could be realized in HTTP
instead. In both cases it is important that the QUIC connection cannot be identified
as a substrate by an observer on the path.</t>

<t>With QUIC, the use of proxying functions cannot be done transparently. Instead,
proxies needs to be explicity discoverable. The simplest form of such discovery
could include pre-configuration or via out-of-band signaling. The proxy could
also be discovered through advertisement when a client is connected to a network
(for example, the Dynamic Host Configuration Protocol). Alternatively, the
client could obtain a white-listed proxy address when making first contact with
the server (CNAME/IPaddress). In both cases the proxy needs to have a routable
address and name.</t>

</section>
<section anchor="contributors" title="Contributors">

<t>Magnus Westerlund has contributed two paragraphs on combining proxies.</t>

</section>
<section anchor="acknowledgments" title="Acknowledgments">

<t>Thanks to Tommy Pauly for contributing thoughts and comments on these use cases,
as well as text edits!</t>

</section>


  </middle>

  <back>


    <references title='Informative References'>

<reference anchor="TOR" target="https://www.torproject.org/">
  <front>
    <title>TOR Project</title>
    <author >
      <organization></organization>
    </author>
    <date year="2019" month="June" day="05"/>
  </front>
</reference>




<reference anchor="I-D.ietf-tls-dtls-connection-id">
<front>
<title>Connection Identifiers for DTLS 1.2</title>

<author initials='E' surname='Rescorla' fullname='Eric Rescorla'>
    <organization />
</author>

<author initials='H' surname='Tschofenig' fullname='Hannes Tschofenig'>
    <organization />
</author>

<author initials='T' surname='Fossati' fullname='Thomas Fossati'>
    <organization />
</author>

<date month='May' day='6' year='2019' />

<abstract><t>This document specifies the Connection ID (CID) construct for the Datagram Transport Layer Security (DTLS) protocol version 1.2.  A CID is an identifier carried in the record layer header that gives the recipient additional information for selecting the appropriate security association.  In "classical" DTLS, selecting a security association of an incoming DTLS record is accomplished with the help of the 5-tuple.  If the source IP address and/or source port changes during the lifetime of an ongoing DTLS session then the receiver will be unable to locate the correct security context.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-tls-dtls-connection-id-05' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-tls-dtls-connection-id-05.txt' />
</reference>



<reference anchor="I-D.friel-tls-atls">
<front>
<title>Application-Layer TLS</title>

<author initials='O' surname='Friel' fullname='Owen Friel'>
    <organization />
</author>

<author initials='R' surname='Barnes' fullname='Richard Barnes'>
    <organization />
</author>

<author initials='M' surname='Pritikin' fullname='Max Pritikin'>
    <organization />
</author>

<author initials='H' surname='Tschofenig' fullname='Hannes Tschofenig'>
    <organization />
</author>

<author initials='M' surname='Baugher' fullname='Mark Baugher'>
    <organization />
</author>

<date month='March' day='11' year='2019' />

<abstract><t>This document specifies how TLS sessions can be established at the application layer over untrusted transport between clients and services for the purposes of establishing secure end-to-end encrypted communications channels.  Transport layer encodings for application layer TLS records are specified for HTTP and CoAP transport. Explicit identification of application layer TLS packets enables middleboxes to provide transport services and enforce suitable transport policies for these payloads, without requiring access to the unencrypted payload content.  Multiple scenarios are presented identifying the need for end-to-end application layer encryption between clients and services, and the benefits of reusing the well- defined TLS protocol, and a standard TLS stack, to accomplish this are described.  Application software architectures for building, and network architectures for deploying application layer TLS are outlined.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-friel-tls-atls-02' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-friel-tls-atls-02.txt' />
</reference>



<reference  anchor="RFC8441" target='https://www.rfc-editor.org/info/rfc8441'>
<front>
<title>Bootstrapping WebSockets with HTTP/2</title>
<author initials='P.' surname='McManus' fullname='P. McManus'><organization /></author>
<date year='2018' month='September' />
<abstract><t>This document defines a mechanism for running the WebSocket Protocol (RFC 6455) over a single stream of an HTTP/2 connection.</t></abstract>
</front>
<seriesInfo name='RFC' value='8441'/>
<seriesInfo name='DOI' value='10.17487/RFC8441'/>
</reference>



<reference anchor="I-D.ietf-quic-transport">
<front>
<title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>

<author initials='J' surname='Iyengar' fullname='Jana Iyengar'>
    <organization />
</author>

<author initials='M' surname='Thomson' fullname='Martin Thomson'>
    <organization />
</author>

<date month='April' day='23' year='2019' />

<abstract><t>This document defines the core of the QUIC transport protocol. Accompanying documents describe QUIC's loss detection and congestion control and the use of TLS for key negotiation.  Note to Readers  Discussion of this draft takes place on the QUIC working group mailing list (quic@ietf.org), which is archived at &lt;https://mailarchive.ietf.org/arch/search/?email_list=quic>.  Working Group information can be found at &lt;https://github.com/ quicwg>; source code and issues list for this draft can be found at &lt;https://github.com/quicwg/base-drafts/labels/-transport>.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-quic-transport-20' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-quic-transport-20.txt' />
</reference>




    </references>



  </back>

<!-- ##markdown-source:
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
/h+6VhibikQAAA==

-->

</rfc>

