<?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-xhtml.ent">
<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-duke-quic-version-aliasing-03" category="exp" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 2.40.1 -->
  <front>
    <title abbrev="QUIC Version Aliasing">QUIC Version Aliasing</title>
    <seriesInfo name="Internet-Draft" value="draft-duke-quic-version-aliasing-03"/>
    <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" format="default"/> 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 and encrypts Initial Packets
using secret keys instead of standard ones. 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, as well as improving the protocol's privacy properties.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction" numbered="true" toc="default">
      <name>Introduction</name>
      <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" format="default"/>, 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" format="default"/> 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" format="default"/> might protect some of the TLS fields inside a TLS Client
Hello.</t>
      <t>This document proposes "QUIC Version Aliasing," a standard way for servers to
advertise 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" numbered="true" toc="default">
        <name>Terminology</name>
        <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" format="default"/>.</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 "standard 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 standard 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 standard version.</t>
      </section>
    </section>
    <section anchor="protocol-overview" numbered="true" toc="default">
      <name>Protocol Overview</name>
      <t>When they instantiate a connection, servers select an alternate 32-bit version
number, and optionally an initial token extension, for the next connection at
random and securely derive a salt and Packet Length Offset from those values
using a repeatable process. They communicate this using a transport parameter
extension including the version, initial token extension, salt, Packet Length
Offset, and an expiration time for that value.</t>
      <t>If a client next connects to that server 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. It adds the Packet Length Offset to the
true packet length when encoding it in the long header. If the server provided
an Initial Token Extension, the client puts it in the Initial Packet token
field. If there is another token the client wishes to include, it appends the
Initial Token Extension to that token. The server can reconstruct the salt and
Packet Length Offset from the requested version and token, and proceed with the
connection normally.</t>
      <t>The Packet Length Offset is provides a low-cost way for the server to verify it
can derive a valid salt from the inputs without trial decryption. This has
important security implications, as described in <xref target="retry-injection" format="default"/>.</t>
      <t>When generating a salt and Packet Length Offset, servers can choose between
doing so randomly and storing the mapping, or using a cryptographic process to
transform the aliased version number and token extension into the salt. The two
options provide a simple tradeoff between computational complexity and storage
requirements.</t>
      <t>Note that clients and servers MUST implement <xref target="QUIC-VERSION-NEGOTIATION" format="default"/> to use
this specification. Therefore, servers list supported versions in Version
Negotiation Packets. Both clients and servers list supported versions in
Version Negotiation Transport Parameters.</t>
    </section>
    <section anchor="the-version-alias-transport-parameter" numbered="true" toc="default">
      <name>The Version Alias Transport Parameter</name>
      <section anchor="version-number-generation" numbered="true" toc="default">
        <name>Version Number Generation</name>
        <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 or transport parameters. Servers SHOULD also
exclude version numbers used in known specifications or experiments to avoid
confusion at clients, whether or not they have plans to support those
specifications.</t>
        <t>Servers MUST NOT use client-controlled information (e.g. the client IP address)
in the random process, see <xref target="salt-polling" format="default"/>.</t>
        <t>Servers MUST NOT advertise these versions in QUIC Version Negotiation packets.</t>
      </section>
      <section anchor="initial-token-extension-ite-generation" numbered="true" toc="default">
        <name>Initial Token Extension (ITE) Generation</name>
        <t>Servers SHOULD generate an Initial Token Extension (ITE) to provide additional
entropy in salt generation. Two clients that receive the same version number but
different extensions will not be able to decode each other's Initial Packets.</t>
        <t>Servers MAY choose any length that will allow client Initial Packets to fit
within the minimum QUIC packet size of 1200 octets. A four-octet extension is
RECOMMENDED. The ITE MUST appear to be random to observers.</t>
        <t>If a server supports multiple standard versions, it MUST either encode the
standard version of the current connection in the ITE or store it in a lookup
table.</t>
        <t>If the server chooses to encode the standard version, it MUST be
cryptographically protected.</t>
        <t>Encoded standard versions MUST be robust to false positives. That is, if decoded
with a new key, the version encoding must return as invalid, rather than an
incorrect value.</t>
        <t>Alternatively, servers MAY store a mapping of unexpired aliased versions and
ITEs to standard versions. This mapping SHOULD NOT create observable patterns,
e.g. one plaintext bit indicates if the standard version is 1 or 2.</t>
        <t>The server MUST be able to distinguish ITEs from Resumption and Retry tokens in
incoming Initial Packets that contain an aliased version number. As the server
controls the lengths and encoding of each, there are many ways to guarantee
this.</t>
      </section>
      <section anchor="salt-and-packet-length-offset-generation" numbered="true" toc="default">
        <name>Salt and Packet Length Offset Generation</name>
        <t>The salt is an opaque 20-octet field. It is used to generate Initial connection
keys using the process described in <xref target="QUIC-TLS" format="default"/>.</t>
        <t>The Packet Length Offset is a 64-bit unsigned integer with a maximum value of
2^62 - 1. Clients MUST ignore a transport parameter with a value that exceeds
this limit.</t>
        <t>To reduce header overhead, servers MAY consistently use a Packet Length Offset
of zero if and only if it either (1) never sends Retry packets, or (2) can
guarantee, through the use of persistent storage or other means, that it will
never lose the cryptographic state required to generate the salt before the
promised expiration time. <xref target="retry-injection" format="default"/> describes the implications if it
uses zero without meeting these conditions.</t>
        <t>Servers MUST either generate a random salt and Packet Length Offset and store a
mapping of aliased version and ITE to salt and offset, or generate the salt and
offset using a cryptographic method that uses the version number, ITE, and only
server state that is persistent across connections.</t>
        <t>If the latter, servers MUST implement a method that it can repeat
deterministically at a later time to derive the salt and offset from the
incoming version number and ITE. It MUST NOT use client controlled information
other than the version number and ITE; for example, the client's IP address and
port.</t>
      </section>
      <section anchor="expiration-time" numbered="true" toc="default">
        <name>Expiration Time</name>
        <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 used in salt
generation.</t>
        <t>Furthermore, the expiration time SHOULD be short enough to frustrate a salt
polling attack ({salt-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" numbered="true" toc="default">
        <name>Format</name>
        <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 anchor="fig-transport-parameter">
          <name>Version Alias Transport Parameter value</name>
          <artwork name="" type="" align="left" alt=""><![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)                         |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Packet Length Offset (i)                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         Expiration (i)                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                Initial Token Extension (variable)             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></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" format="default"/>.</t>
        <t>The Packet Length Offset is also encoded as a Variable Length Integer.</t>
        <t>Clients can determine the length of the Initial Token Extension by subtracting
known and encoded field lengths from the overall transport parameter length.</t>
      </section>
      <section anchor="multiple-servers-for-one-domain" numbered="true" toc="default">
        <name>Multiple Servers for One Domain</name>
        <t>If multiple servers serve the same entity behind a load balancer, all such
servers SHOULD either have a common configuration for encoding standard versions
and computing salts, or share a common database of mappings. They MUST NOT
generate version numbers that any of them would advertise in a Version
Negotiation Packet or Transport Parameter.</t>
      </section>
    </section>
    <section anchor="client-behavior" numbered="true" toc="default">
      <name>Client Behavior</name>
      <t>When a client receives the Version Alias Transport Parameter, it MAY cache the
version number, ITE, salt, Packet Length Offset, and the expiration of these
values. It MAY use the version number and ITE in a subsequent connection and
compute the initial keys using the provided salt.</t>
      <t>Clients MUST NOT advertise aliased versions in the Version Negotiation Transport
Parameter unless they support a standard version with the same number. Including
that number signals support for the standard version, not the aliased version.</t>
      <t>Clients SHOULD NOT attempt to use the provided version number and salt after
the provided Expiration time has elapsed.</t>
      <t>Clients MAY decline to use the provided version number or salt in more than one
connection. It SHOULD do so if its IP address has changed between two connection
attempts. Using a consistent version number can link the client across
connection attempts.</t>
      <t>Clients MUST use the same standard version to format the Initial Packet as the
standard version used in the connection that provided the aliased version.</t>
      <t>If the server provided an ITE, the client MUST append it to any Initial Packet
token it is including from a Retry packet or NEW_TOKEN frame, if it is using
the associated aliased version. If there is no such token, it simply includes
the ITE as the entire token.</t>
      <t>The QUIC Token Length field MUST include the length of both any Retry or
NEW_TOKEN token and the ITE.</t>
      <t>The Length fields of all Initial, Handshake, and 0-RTT packets in the
connection are set to the value described in <xref target="QUIC-TRANSPORT" format="default"/> plus the
provided Packet Length Offset, modulo 2^62.</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" format="default"/>.</t>
      <t>If a client receives an aliased version number that matches a standard version
that the client supports, it SHOULD assume the server does not support the
standard version and MUST use aliased version behaviors in any connection with
the server using that version number.</t>
      <t>If a client receives a Version Negotiation packet or Version Negotiation
transport parameter advertising a version number the server previously sent as
an aliased version, and the client verifies any Version Negotiation Packet is
not a Version Downgrade attack (<xref target="version-downgrade" format="default"/>), it MUST discard the
aliased version number, ITE, packet length offset, and salt and not use it in
future connections.</t>
    </section>
    <section anchor="server-actions-on-aliased-version-numbers" numbered="true" toc="default">
      <name>Server Actions on Aliased Version Numbers</name>
      <t>When a server receives an Initial Packet with an unsupported version number, it
SHOULD send a Version Negotiation Packet if it is specifically configured not to
generate that version number at random.</t>
      <t>Otherwise, it extracts the ITE, if any, and either looks up the corresponding
salt in its database or computes it using the technique originally used to
derive the salt from the version number and ITE.</t>
      <t>The server similarly obtains the Packet Length Offset and subtracts it from the
provided Length field, modulo 2^62. If the resulting value is larger than the
entire UDP datagram, the server discards the packet and SHOULD send a Version
Negotiation Packet.</t>
      <t>If the server supports multiple standard versions, it uses the standard version
extracted by the ITE or stored in the mapping to parse the decrypted packet.</t>
      <t>In all packets with long headers, the server uses the aliased version number
and adds the Packet Length Offset to the length field.</t>
      <t>In the extremely unlikely event that the Packet Length Offset resulted in a
legal value but the salt is incorrect, the packet may fail authentication.
If so, or the encoded standard version is not supported at the server, the
server SHOULD send a Version Negotiation Packet.</t>
      <t>To reduce linkability for the client, servers SHOULD provide a new Version Alias
transport parameter, with a new version number, ITE, salt, and Packet Length
Offset, each time a client connects. However, issuing version numbers to a
client SHOULD be rate-limited to mitigate the salt polling attack
<xref target="salt-polling" format="default"/>.</t>
    </section>
    <section anchor="considerations-for-retry-packets" numbered="true" toc="default">
      <name>Considerations for Retry Packets</name>
      <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 establishes 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 standard version to use. If all supported standard versions
use the same Retry format, it simply uses that format with the client-provided
version number.</t>
      <t>If the supported standard versions use different Retry formats, the server
obtains the standard version via lookup or decoding and formats a Retry
containing the aliased version number accordingly.</t>
      <t>Servers generate the Retry Integrity Tag of a Retry Packet using the procedure
in Section 5.8 of <xref target="QUIC-TLS" format="default"/>. However, for aliased versions, 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 ignore Retry packets that contain a QUIC version other than the
version it used in its Initial Packet.</t>
      <t>Servers MUST NOT reply to a packet with an incorrect Length field in its long
header with a Retry packet; it SHOULD reply with Version Negotiation as
described above.</t>
    </section>
    <section anchor="security-and-privacy-considerations" numbered="true" toc="default">
      <name>Security and Privacy Considerations</name>
      <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" numbered="true" toc="default">
        <name>Version Downgrade</name>
        <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 are required to implement
<xref target="QUIC-VERSION-NEGOTIATION" format="default"/> to detect downgrades.</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 standard 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
content they receive, keeping the connection open long enough to deliver their
transport parameters, to support this mechanism.</t>
      </section>
      <section anchor="retry-injection" numbered="true" toc="default">
        <name>Retry Injection</name>
        <t>QUIC Version 1 Retry packets are spoofable, as they follow a fixed format, are
sent in plaintext, and the integrity protection uses a widely known key. As a
result, QUIC Version 1 has verification mechanisms in subsequent packets of the
connection to validate the origin of the Retry.</t>
        <t>Version aliasing largely frustrates this attack. As the integrity check key is
derived from the secret salt, packets from attackers will fail their integrity
check and the client will ignore them.</t>
        <t>The Packet Length Offset is important in this framework. Without this
mechanism, servers would have to perform trial decryption to verify the client
was using the correct salt. As this does not occur before sending Retry
Packets, servers would not detect disagreement on the salt beforehand and would
send a Retry packet signed with a different salt than the client expects.
Therefore, a client that received a Retry packet with an invalid integrity
check would not be able to distinguish between the following possibilities:</t>
        <ul spacing="normal">
          <li>a Retry packet corrupted in the network, which should be ignored;</li>
          <li>a Retry packet generated by an attacker, which should be ignored; or</li>
          <li>a Retry packet from a server that lost its cryptographic state, meaning that
further communication with aliased versions is impossible and the client should
revert to using a standard version.</li>
        </ul>
        <t>The Packet Length Offset introduces sufficient entropy to make the third
possibility exceedingly unlikely.</t>
      </section>
      <section anchor="increased-linkability" numbered="true" toc="default">
        <name>Increased Linkability</name>
        <t>As each version number and ITE is 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="salt-polling" numbered="true" toc="default">
        <name>Salt Polling Attack</name>
        <t>Observers that wish to decode Initial Packets might open a large number of
connections to the server in an effort to obtain part of the mapping of version
numbers and ITEs to salts for a server. While storage-intensive, this attack
could increase the probability that at least some version-aliased connections
are observable. There are three mitigations servers can execute against this
attack:</t>
        <ul spacing="normal">
          <li>use a longer ITE to increase the entropy of the salt,</li>
          <li>rate-limit transport parameters sent to a particular client, and/or</li>
          <li>set a low expiration time to reduce the lifetime of the attacker's database.</li>
        </ul>
        <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 this mechanism.</t>
      </section>
      <section anchor="increased-processing-of-garbage-udp-packets" numbered="true" toc="default">
        <name>Increased Processing of Garbage UDP Packets</name>
        <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 and Packet Length Offset.</t>
        <t>Note that a nonzero Packet Length Offset will allow the server to drop all but
approximately 1 in every 2^49 packets, so trial decryption is unnecessary.</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" numbered="true" toc="default">
        <name>Increased Retry Overhead</name>
        <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" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <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>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="QUIC-TRANSPORT">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-quic-transport"/>
            <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>
        </reference>
        <reference anchor="QUIC-TLS">
          <front>
            <title>Using Transport Layer Security (TLS) to Secure QUIC</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-quic-tls-latest"/>
            <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>
        </reference>
        <reference anchor="QUIC-VERSION-NEGOTIATION">
          <front>
            <title>Compatible Version Negotiation for QUIC</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-quic-version-negotiation-latest"/>
            <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>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="ENCRYPTED-SNI">
          <front>
            <title>Encrypted Server Name Indication for TLS 1.3</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-tls-esni-latest"/>
            <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>
        </reference>
        <reference anchor="RFC8446" target="https://www.rfc-editor.org/info/rfc8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <seriesInfo name="DOI" value="10.17487/RFC8446"/>
            <seriesInfo name="RFC" value="8446"/>
            <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>
        </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>
            <seriesInfo name="DOI" value="10.17487/RFC2119"/>
            <seriesInfo name="RFC" value="2119"/>
            <seriesInfo name="BCP" value="14"/>
            <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>
        </reference>
      </references>
    </references>
    <section anchor="acknowledgments" numbered="true" toc="default">
      <name>Acknowledgments</name>
      <t>Marten Seemann was the original progenitor of the version aliasing approach.</t>
    </section>
    <section anchor="change-log" numbered="true" toc="default">
      <name>Change Log</name>
      <ul empty="true" spacing="normal">
        <li>
          <strong>RFC Editor's Note:</strong> Please remove this section prior to
publication of a final version of this document.</li>
      </ul>
      <section anchor="since-draft-duke-quic-version-aliasing-01" numbered="true" toc="default">
        <name>since draft-duke-quic-version-aliasing-01</name>
        <ul spacing="normal">
          <li>Fixed all references to "seed" where I meant "salt."</li>
          <li>Added the Packet Length Offset, which eliminates Retry Injection Attacks</li>
        </ul>
      </section>
      <section anchor="since-draft-duke-quic-version-aliasing-00" numbered="true" toc="default">
        <name>since draft-duke-quic-version-aliasing-00</name>
        <ul spacing="normal">
          <li>Added "Initial Token Extensions" to increase salt entropy and make salt
polling attacks impractical.</li>
          <li>Allowed servers to store a mapping of version number and ITE to salt instead.</li>
          <li>Made standard version encoding mandatory. This dramatically simplifies the new
Retry logic and changes the security model.</li>
          <li>Added references to Version Negotiation Transport Parameters.</li>
          <li>Extensive readability edit.</li>
        </ul>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAIAinF8AA+VdW5PbxpV+71/RNXqw5CW5Gsn2xpPay0Qa24ql0axmbFdq
a5NqAk0SOyCaQQMzohX5t++59QUgKMuJ/bC1cqVEEWBfzvU7l+7M53PVVV1t
z/TJf3734pn+3ra+co0+ryvjq2Z9osxy2dq7489LVzRmCwOUrVl187K/tfO/
9lUxv+NX50ZenT9+qkrTwZvvnp/fXLxXBfxj7dr9mbZvd6ratWe6a3vfPXn8
+MvHT5RprTnTN61p/M61nbp37e26df3uTONSlPKdacq/mNo1MObeerWrzvR/
da6YaQ8/aO3Kw6f9lj/AOrdmt4OF/LdSpu82rj1TWs/hf1pXjT/Trxb6Oaye
vuAtvTJtVzXpW9euz/RXn+tL2+FqYNQXTbGgR3ZrqvpMb+kXi80C6fAfa/xy
UbitUo1rt6ar7uyZgvdxA/ObN+eX11ev39yc0Qg5H870uf7u+dX8D8bbUr/q
667a1fYtfIYt62tb9K1NpDmh3w9oi19421YWKL9yPIGG1Xa2bWw3f468Ciyr
bLdilnWR2Ph2IhL+mcvfQqw/LvSLvW3Wpo3fM83+aBpz8IgJZ3xX7+N3rcPt
2rLqXDs9BzDkZuO23jWjOYQv44c0yyv3Y1XXZnqaSPqX10Oif4cSmiiqX5q9
bZnQVbfXD+EHj3TnAulxkF+P6rWf1zCM/wiy//okmZzmGqbpYc1j5l5b04yf
0BS+edqWH6b59xdvrl+8vpxfXnz9+ubF+Q18HvLgmdvuQEWWtY1m5hIMRFfB
l/B55dpfl+7BQDVpko/mw/OFvi42VWN+rEYkem7uqvLwIVHpa+fWsLuXL5/9
Al5cLPQb6wvXZhzkqS7aqjh89hFagFTKzdHF5bM3f7q6uXg+v758MWTKRVO0
+11n0eq0QDF9CVMDacuqSGwB7dCni6e/BmdQGaxvqo/mxN9Fnjc3X73KjPfH
MeLbhX59248m+db82G/c4MHfZ+wuQaL6uq7uzFi1L6vi9vAZzfKsdn25qsFV
/oKZni3OF/oH58rRPM82beU7t9sAl8dv0GznO3BCHyKbUvP5XJulB0dSdErd
bNhU6uhY9K514KFdrd+9GzrB9+/hmfUoZF5XndervgNTq+zbzja+WlY1GuId
mLl6r5d77Xe2qFZ7NNv4tiizbvrt0rZoJS3Y6XtQAr202qjW1iTv8GO/NfAt
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
zkqiWuLREs/K/y/V/cTt6mQAAA==

-->

</rfc>
