<?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.13 -->

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

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

<rfc ipr="trust200902" docName="draft-duke-quic-version-aliasing-00" category="exp">

  <front>
    <title abbrev="QUIC Version Aliasing">QUIC Version Aliasing</title>

    <author initials="M." surname="Duke" fullname="Martin Duke">
      <organization>F5 Networks, Inc.</organization>
      <address>
        <email>martin.h.duke@gmail.com</email>
      </address>
    </author>

    <date />

    <area>Transport</area>
    <workgroup>QUIC</workgroup>
    

    <abstract>


<t>The QUIC transport protocol <xref target="QUIC-TRANSPORT"/> preserves its future
extensibility partly by specifying its version number. There will be a
relatively small number of published version numbers for the foreseeable future.
This document provides a method for clients and servers to negotiate the use of
other version numbers in subsequent connections. If a sizeable subset of QUIC
connections use this mechanism, this should prevent middlebox ossification
around the current set of published version numbers and the contents of QUIC
Initial packets.</t>



    </abstract>


  </front>

  <middle>


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

<t>The QUIC version number is critical to future extensibility of the protocol. Past
experience with other protocols, such as TLS1.3 <xref target="RFC8446"/>, shows that
middleboxes might attempt to enforce that QUIC packets use versions known at the
time the middlebox was implemented. This has a chilling effect on deploying
experimental and standard versions on the internet.</t>

<t>Each version of QUIC has a “salt” <xref target="QUIC-TLS"/> that is used to derive the keys
used to encrypt Initial packets. As each salt is published in a standards
document, any observer can decrypt these packets and inspect the contents, 
including a TLS Client Hello. A subsidiary mechanism like Encrypted SNI
<xref target="ENCRYPTED-SNI"/> might protect some of the TLS fields inside a TLS Client Hello.</t>

<t>This document proposes “QUIC Version Aliasing,” a standard way of servers
advertising the availability of other versions inside the cryptographic
protection of a QUIC handshake. These versions are syntactically identical to the
QUIC version in which the communication takes place, but use a different salt. In
subsequent communications, the client uses the new version number and encrypts
its Initial packets with a key derived from the provided salt. These version
numbers and salts are unique to the client.</t>

<t>If a large subset of QUIC traffic adopts his technique, middleboxes will be
unable to enforce particular version numbers or policy based on Client Hello
contents without incurring unacceptable penalties on users. This would
simultaneously protect the protocol against ossification and improve its privacy
properties.</t>

<section anchor="terminology" title="Terminology">

<t>The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”,
“SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be
interpreted as described in RFC 2119 <xref target="RFC2119"/>.</t>

<t>In this document, these words will appear with that interpretation only when in
ALL CAPS.  Lower case uses of these words are not to be interpreted as carrying
significance described in RFC 2119.</t>

<t>A “syntax version” is a QUIC version that would be advertised in a QUIC version
negotiation and conforms to a specification. Any aliased version corresponds to
a syntax version in all its formats and behaviors, except for the version number
field in long headers.</t>

<t>An “aliased version” is a version with a number generated in accordance with this
document. Except for the version field in long headers, it conforms entirely to
the specification of the syntax version.</t>

</section>
</section>
<section anchor="protocol-overview" title="Protocol Overview">

<t>When they instantiate a connection, servers select an alternate 32-bit version
number for the next connection at random and securely derive a salt from that
version number using a repeatable process. They communicate this using a
transport parameter extension including the version, salt, and an expiration time
for that value.</t>

<t>The next time a client connects to that server, if it is within the indicated
expiration time, it MAY use the provided version number and encrypt its Initial
Packets using a key derived from the provided salt. The server can reconstruct
the salt from the requested version and proceed with the connection normally.</t>

</section>
<section anchor="the-version-alias-transport-parameter" title="The Version Alias Transport Parameter">

<section anchor="version-number-generation" title="Version Number Generation">

<t>Servers MUST use a random process to generate version numbers. This version
number MUST NOT correspond to a QUIC version the server advertises in QUIC
Version Negotiation packets.</t>

<t>Servers MAY encode the syntax version as long as this information is
cryptographically protected. For example, a server advertises support for QUIC
version 1 and QUIC version 2 in Version Negotiation packets, each corresponding
to a particular packet syntax. In a Version 1 connection, it might provide an
aliased version in the transport parameter, 0x45f3213b, that encodes the fact the
syntax version is 1. When the client initiates a connection using version
0x45f3213b, the server knows the Initial Packet is formatted in accordance with
QUIC version 1. A subsequent aliased version provided in the transport parameters
would also encode version 1, even though this is sent in a connection ostensibly
of version 0x45f3213b.</t>

<t>Servers MUST NOT use client-controlled information (e.g. the client IP address)
in the random process, see <xref target="seed-polling"/>.</t>

<t>Servers MUST NOT advertise these versions in QUIC Version Negotiation packets.</t>

<t>If multiple servers represent the same entity behind a load balancer, all such
servers SHOULD have a common configuration for how to encode and extract syntax
version to use. They MUST NOT generate version numbers that any of them would
advertise in a Version Negotiation Packet.</t>

</section>
<section anchor="salt-generation" title="Salt Generation">

<t>The salt is an opaque 20-octet field. It is used to generate a Initial connection
keys using the process described in {QUIC-TLS}.</t>

<t>Servers MUST generate the SALT using a cryptographic method that uses the version
number and only server state that is persistent across connections. That is,
servers MUST implement a method that it can repeat deterministically at a later
time to derive the salt from the incoming version number. It MUST NOT use client
controlled information other than the version number; for example, the client’s
IP address and port.</t>

</section>
<section anchor="expiration-time" title="Expiration Time">

<t>Servers should select an expiration time in seconds, measured from the instant
the transport parameter is first sent. This time SHOULD be less than the time
until the server expects to support new QUIC versions, rotate the keys used
to encode information in the version number, or rotate the keys use in salt
generation.</t>

<t>Furthermore, the expiration time SHOULD be short enough to frustrate a seed
polling attack <xref target="seed-polling"/>.</t>

<t>Conversely, an extremely short expiration time will often force the client to use
standard QUIC version numbers and salts.</t>

</section>
<section anchor="format" title="Format">

<t>This document defines a new transport parameter extension for QUIC with
identifier 0x5641. The contents of the value field are indicated below.</t>

<figure title="Version Alias Transport Parameter value" anchor="fig-transport-parameter"><artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           Version (32)                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                                                               +
|                                                               |
+                                                               +
|                            Salt (160)                         |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         Expiration (i)                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure>

<t>The definition of the fields is described above. Note that the “Expiration”
field is in seconds, and its length is encoded using the Variable Length
Integer encoding from Section 16 of <xref target="QUIC-TRANSPORT"/>.</t>

</section>
</section>
<section anchor="client-behavior" title="Client Behavior">

<t>When a client receives the Version Alias Transport Parameter, it MAY cache
the version number, salt, and the expiration of this value. It MAY use the
version number in a subsequent connection and compute the initial keys using
the provided salt.</t>

<t>Clients SHOULD NOT attempt to use the provided version number and salt after
the provided Expiration time has elapsed.</t>

<t>Clients SHOULD NOT use the provided version number or salt in more than one
connection, particularly if its IP address has changed between two connection
attempts. Using a consistent version number can link the client across IP address
changes.</t>

<t>Clients MUST use the same syntax version to format the Initial Packet as the
syntax version used in the connection that provided the aliased version.</t>

<t>If the response to an Initial packet using the provided version is a Version
Negotiation Packet, the client SHOULD cease attempting to use that version and
salt to the server unless it later determines that the packet was the result of
a version downgrade, see <xref target="version-downgrade"/>.</t>

</section>
<section anchor="server-actions-on-non-standard-version-numbers" title="Server Actions on Non-standard Version Numbers">

<t>When a server receives an Initial Packet with an unknown version number, it
SHOULD send a Version Negotiation Packet if it is specifically configured not to
generate that version number at random. Otherwise, it derives a salt from the
version number using the algorithm and inputs it uses to generate salts to put in
transport parameters.</t>

<t>If the syntax version was encoded in the version number, the server extracts it
so that it can properly parse the packet. If not, it can try trial parsing of the
packet for each syntax version it supports.</t>

<t>If the computed seed results in a packet that fails authentication, or the
encoded syntax version is not supported at the server, or trial parsing fails for
all supported versions, the server SHOULD send a Version Negotiation Packet.</t>

<t>Servers SHOULD provide a new Version Alias transport parameter, with a new
version number and salt, each time a client connects, to reduce linkability for
the client. However, issuing version numbers to a client SHOULD be rate-limited
to mitigate the seed polling attack <xref target="seed-polling"/>.</t>

</section>
<section anchor="considerations-for-retry-packets" title="Considerations for Retry Packets">

<t>QUIC Retry packets reduce the load on servers during periods of stress by forcing
the client to prove it possesses the IP address before the server decrypts any
Initial Packets or establishing any connection state. Version aliasing
substantially complicates the process.</t>

<t>If a server has to send a Retry packet, the required format is ambiguous without
understanding which syntax version to use. If all supported syntax versions use
the same Retry format, it simply uses that format with the provided version
number.</t>

<t>If the supported syntax versions use different Retry formats, the server MUST
either extract the syntax version from the version field and format the Retry
accordingly using the aliased version number, or it MUST send a valid Retry
packet for each supported version using the syntax version number instead of the
aliased version number. It MUST NOT do both.</t>

<t>The Retry integrity Tag of a Retry Packet for an aliased version uses the
procedure in Section 5.8 of <xref target="QUIC-TLS"/>. However, the secret key K uses the
first 16 octets of the aliased salt instead of the key provided in the
specification.</t>

<t>Clients MUST accept Retry packets that contain either the aliased version or
syntax version. It MUST ignore Retry packets with other syntax versions. It it
receives Retry packets with both the aliased version and the correct syntax
version, it MUST discard the second one it receives in accordance with section
17.2.5 of <xref target="QUIC-TRANSPORT"/> unless the other one failed integrity validation.</t>

<t>After a client receives a Retry, it sends a new Initial Packet with the provided
Retry token. It MAY use the aliased version and salt or the syntax version and
salt, regardless of which type of Retry it received. Note that if the server is
not able to generate the correct salt for an aliased version due to lost keys or
other errors, this might result in a Version Negotiation packet, which violates
the usual order of server responses (QUIC servers would normally send Version
Negotiation before Retry).</t>

<t>Clients that receive a Version Negotiation packet in response to an Initial with
a valid Retry token MAY interpret this to mean that the server can no longer
process the aliased version. They can retry the connection with a syntax version
number, but see <xref target="version-downgrade"/>. These MUST include the Retry token so
that the client can verify that the Retry was authentic.</t>

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

<t>This document intends to improve the existing security and privacy properties of
QUIC by dramatically improving the secrecy of QUIC Initial Packets. However,
there are new attacks against this mechanism.</t>

<section anchor="version-downgrade" title="Version Downgrade">

<t>A countermeasure against version aliasing is the downgrade attack. Middleboxes
may drop a packet containing a random version and imitate the server’s failure to
correctly process it. Clients and servers MUST implement the parts of
<xref target="QUIC-VERSION-NEGOTIATION"/> relevant to downgrade detection.</t>

<t>Note that downgrade detection only works after receiving a response from the
server. If a client immediately responds to a Version Negotiation Packet with
an Initial Packet with a syntax version number, it will have exposed its request
in a format readable to observers before it discovers if the Version Negotiation
Packet is authentic. A client SHOULD wait for an interval to see if a valid
response comes from the server before assuming the version negotiation is valid.
The client MAY also alter its Initial Packet (e.g., its ALPN field) to sanitize
sensitive information and obtain another aliased version before proceeding with
its true request.</t>

<t>Servers that support version aliasing SHOULD be liberal about the Initial Packet
formats they receive, keeping the connection open long enough to deliver their
transport parameters, to support this mechanism.</t>

</section>
<section anchor="increased-linkability" title="Increased Linkability">

<t>As each version number is theoretically unique to each client, if a client uses
one twice, those two connections are extremely likely to be from the same host.
If the client has changed IP address, this is a significant increase in
linkability relative to QUIC with a standard version numbers.</t>

</section>
<section anchor="seed-polling" title="Seed Polling Attack">

<t>Observers that wish to decode Initial Packets might open a large number of
connections to the server in an effort to obtain a large portion of the mapping
of version numbers to salts to a server. While storage-intensive, this attack
could increase the probability that at least some version-aliased connections are
observable. There are two mitigations servers can execute against this
attack:</t>

<t><list style="symbols">
  <t>rate-limit transport parameters sent to a particular client; and/or</t>
  <t>set a low expiration time to reduce the lifetime of the attacker’s database.</t>
</list></t>

<t>Segmenting the version number space based on client information, i.e. using only
a subset of version numbers for a certain IP address range, would significantly
amplify an attack. Observers will generally be on the path to the client and be
able to mimic having an identical IP address. Segmentation in this way would
dramatically reduce the search space for attackers. Thus, servers are prohibited
from using these mechanisms.</t>

</section>
<section anchor="increased-processing-of-garbage-udp-packets" title="Increased Processing of Garbage UDP Packets">

<t>As QUIC shares the UDP protocol number with other UDP applications, in some
deployments it may be possible for traffic intended for other UDP applications to
arrive at a QUIC server endpoint. When servers support a finite set of version
numbers, a valid version number field is a strong indicator the packet is, in
fact, QUIC. If the version number is invalid, a QUIC Version Negotiation is a
low-cost response that triggers very early in packet processing.</t>

<t>However, a server that provides version aliasing is prepared to accept almost any
version number. As a result, many more sufficiently sized UDP payloads with the
first bit set to ‘1’ are potential QUIC Initial Packets that require generation
of a salt, some initial connection state, and a decryption operation.</t>

<t>While not a more potent attack then simply sending valid Initial Packets, servers
may have to provision additional resources to address this possibility.</t>

</section>
<section anchor="increased-retry-overhead" title="Increased Retry Overhead">

<t>This document requires two small cryptographic operations to build a Retry packet
instead of one, placing more load on servers when already under load.</t>

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

<t>This draft chooses a transport parameter (0x5641) to minimize the risk of
collision. IANA should assign a permanent value from the QUIC Transport Parameter
Registry.</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>

<reference anchor="QUIC-TRANSPORT" >
  <front>
    <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
    <author initials="J." surname="Iyengar" fullname="Jana Iyengar" role="editor">
      <organization>Fastly</organization>
    </author>
    <author initials="M." surname="Thomson" fullname="Martin Thomson" role="editor">
      <organization>Mozilla</organization>
    </author>
    <date />
  </front>
  <seriesInfo name="Internet-Draft" value="draft-ietf-quic-transport"/>
</reference>
<reference anchor="QUIC-TLS" >
  <front>
    <title>Using Transport Layer Security (TLS) to Secure QUIC</title>
    <author initials="M." surname="Thomson" fullname="Martin Thomson" role="editor">
      <organization>Mozilla</organization>
    </author>
    <author initials="S." surname="Turner" fullname="Sean Turner" role="editor">
      <organization>sn3rd</organization>
    </author>
    <date />
  </front>
  <seriesInfo name="Internet-Draft" value="draft-ietf-quic-tls-latest"/>
</reference>
<reference anchor="QUIC-VERSION-NEGOTIATION" >
  <front>
    <title>Compatible Version Negotiation for QUIC</title>
    <author initials="D." surname="Schinazi" fullname="David Schinazi" role="editor">
      <organization>Google LLC</organization>
    </author>
    <author initials="E." surname="Rescorla" fullname="Eric Rescorla" role="editor">
      <organization>Mozilla</organization>
    </author>
    <date />
  </front>
  <seriesInfo name="Internet-Draft" value="draft-ietf-quic-version-negotiation-latest"/>
</reference>


    </references>

    <references title='Informative References'>

<reference anchor="ENCRYPTED-SNI" >
  <front>
    <title>Encrypted Server Name Indication for TLS 1.3</title>
    <author initials="E." surname="Rescorla" fullname="Eric Rescorla" role="editor">
      <organization>RTFM, Inc.</organization>
    </author>
    <author initials="K." surname="Oku" fullname="Kazuho Oku" role="editor">
      <organization>Fastly</organization>
    </author>
    <author initials="N." surname="Sullivan" fullname="Nick Sullivan" role="editor">
      <organization>Cloudflare</organization>
    </author>
    <author initials="C.A." surname="Wood" fullname="Christopher A. Wood" role="editor">
      <organization>Apple, Inc.</organization>
    </author>
    <date />
  </front>
  <seriesInfo name="Internet-Draft" value="draft-ietf-tls-esni-latest"/>
</reference>




<reference  anchor="RFC8446" target='https://www.rfc-editor.org/info/rfc8446'>
<front>
<title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
<author initials='E.' surname='Rescorla' fullname='E. Rescorla'><organization /></author>
<date year='2018' month='August' />
<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="RFC2119" target='https://www.rfc-editor.org/info/rfc2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author initials='S.' surname='Bradner' fullname='S. Bradner'><organization /></author>
<date year='1997' month='March' />
<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>




    </references>


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

<t>Marten Seemann was the original progenitor of the version aliasing approach.</t>

</section>
<section anchor="change-log" title="Change Log">

<t><list style='empty'>
  <t><spanx style="strong">RFC Editor’s Note:</spanx>  Please remove this section prior to
publication of a final version of this document.</t>
</list></t>

<section anchor="since-draft-duke-quic-version-aliasing-00" title="since draft-duke-quic-version-aliasing-00">

<t><list style="symbols">
  <t>Changed SNI Encryption to an Informative Reference</t>
</list></t>

</section>
</section>


  </back>

<!-- ##markdown-source:
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
0+8lAauig4jCqv8F5oPn2alKAAA=

-->

</rfc>

