Subject: Re: [quicwg/base-drafts] Resume HTTP/2 TLS from QUIC ? (#941)

From: Martin Thomson <[email-masked]>
Date: Fri, 15 Dec 2017 15:57:17 -0800

I realize that I was the one to be persuaded that this cross-protocol resumption is a good idea, but I've since concluded that unless we revise ALPN, this is unwise.

This is not a problem at all if you intend to do simple resumption without 0-RTT, but it gets complicated thereafter.

The way that TLS works assumes that the ALPN value is remembered by the server (note that remembering often means embedding it in the ticket, that detail doesn't matter here).  It uses this remembered value to decide what protocol the client is speaking.  If it accepts 0-RTT, it assumes that the protocol hasn't change.  The server also can't change the protocol if it accepts 0-RTT.

We created an equivalency between h2/TLS and hq/QUIC in the quic-tls draft.  That seems like a great idea until you consider the potential for a similar equivalency between h2 and hqv2 (or whatever we call the next version).  A client that makes a QUIC connection and resumes from h2 might advertise [hq, hqv2] in its handshake, and the server has to assume that the packets are hq.  In other words, the equivalency is 1-1.  That limits our ability to deploy new protocol versions.

The same considerations apply in the reverse direction.

I think that we should drop this feature and instead develop a new document that describes two things: 

* explicit advertisement of support for different protocols for 0-RTT.  That might use ALPN in the NewSessionTicket message, or a new extension.
* a means of the client signaling which of the selected protocols it is using for early data.  This might be as simple as saying that the first entry in ALPN is what is in use, or it could use a new extension.

That sort of design has the virtue of restricting the resumption to TLS 1.3 or higher as well.  (BTW, I thought that we had a hard rule about keeping the version the same for resumption.)

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/941#issuecomment-352140849

---

From: David Benjamin <[email-masked]>
Date: Sat, 16 Dec 2017 00:06:35 +0000 (UTC)

(Yeah, cross-version resumptions are already not a thing. OpenSSL historically didn't quite get this right, but it's since been fixed.)

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/941#issuecomment-352142050