Skip to content

Commit

Permalink
Stronger protocol negotiation requirement
Browse files Browse the repository at this point in the history
The transport already requires that the cryptographic handshake provide
authenticated negotiation of application protocol.  However, the TLS doc
was a little weak on whether ALPN should be used.  This clears that up.

Closes #2263.
  • Loading branch information
martinthomson committed Jan 2, 2019
1 parent e375dbf commit fce7545
Showing 1 changed file with 12 additions and 9 deletions.
21 changes: 12 additions & 9 deletions draft-ietf-quic-tls.md
Expand Up @@ -1208,15 +1208,18 @@ protection for the QUIC negotiation. This does not prevent version downgrade
prior to the completion of the handshake, though it means that a downgrade
causes a handshake failure.

TLS uses Application Layer Protocol Negotiation (ALPN) {{!RFC7301}} to select an
application protocol. The application-layer protocol MAY restrict the QUIC
versions that it can operate over. Servers MUST select an application protocol
compatible with the QUIC version that the client has selected.

If the server cannot select a compatible combination of application protocol and
QUIC version, it MUST abort the connection. A client MUST abort a connection if
the server picks an incompatible combination of QUIC version and ALPN
identifier.
QUIC requires that the cryptographic handshake provide authenticated protocol
negotiation. TLS uses Application Layer Protocol Negotiation (ALPN)
{{!RFC7301}} to select an application protocol. Clients and servers MUST use
ALPN to negotiate an application protocol, unless another mechanism is used for
agreeing on an application protocol.

An application-layer protocol MAY restrict the QUIC versions that it can operate
over. Servers MUST select an application protocol compatible with the QUIC
version that the client has selected. If the server cannot select a compatible
combination of application protocol and QUIC version, it MUST abort the
connection. A client MUST abort a connection if the server picks an incompatible
combination of QUIC version and ALPN identifier.


## QUIC Transport Parameters Extension {#quic_parameters}
Expand Down

0 comments on commit fce7545

Please sign in to comment.