On 9/19/2021 3:42 AM, Julien ÉLIE wrote:
Hi all,

There is a piece missing. Yaron mentioned Alpaca. For that what we
need to say is what Alexey might fear: application protocols MUST define
ALPN labels and use them.

Reading the sentence, I also understand that applications MUST check the ALPN label, if that extension is used.
It seems a bit too much, doesn't it?

If I understand well the use cases of ALPN, it could be used by sslh (a ssl/ssh multiplexer) to handle connections on the same port for different services.  For instance HTTP, IMAP, POP, NNTP, etc. on the same 443 HTTPS port. So registering identifiers would be useful for such uses, but I am unsure it should be considered as a MUST to check them in applications.

There are a couple of relevant references here. One is TLS 1.3 (RFC 8446). Section 4.2.10, Early Data Indication, specifies for example that "In order to accept early data, the server ... MUST verify that the following values are the same as those associated with the selected PSK: ... The selected ALPN [RFC7301 <https://www.rfc-editor.org/rfc/rfc7301>] protocol. That is, session resumption tickets are specific to the application identified by the ALPN.

The other reference is the use of TLS in QUIC (RFC 9001). Section 8.1 states that "QUIC requires that the cryptographic handshake provide authenticated protocol negotiation. TLS uses Application-Layer Protocol Negotiation [ALPN <https://www.rfc-editor.org/rfc/rfc9001.html#ALPN>] to select an application protocol. Unless another mechanism is used for agreeing on an application protocol, endpoints MUST use ALPN for this purpose."

In practice, ALPN was widely used during the development of QUIC and HTTP3. The HTTP3 protocol was evolving, and it was important for peers to agree on exactly which application protocol version was being uses. The deployments would use identifiers such as "h3-29" to state support for draft 29 of HTTP3. Connection requests will often present a list of multiple versions, such as "h3-27, h3-29, h3-34" to indicate possible support of versions 27, 29 and 34 of the draft. They would also often propose the choice between the binary format HTTP3 and the text based test format HTTP 09 to let servers negotiate which one was appropriate.

-- Christian Huitema

-- Christian Huitema


_______________________________________________
Uta mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/uta

Reply via email to