Subject: Re: [quicwg/base-drafts] Flow control for post-handshake CRYPTO messages (#1834)

From: Martin Thomson <[email-masked]>
Date: Tue, 29 Jan 2019 18:09:49 -0800

The problem here is that CRYPTO is not flow controlled.  Endpoints can cause arbitrary buffering of CRYPTO frame data.

This has very little to do with the handshake (though @siyengar notes that we have a similar concern for CRYPTO in Initial and Handshake, that is bounded by the handshake timers).

Proposal is to allow endpoints to maintain a buffer of any size they choose.  If they receive a TLS message that does not fit into that buffer, they can drop all subsequent TLS data.  The effect of this is to disable TLS from that point onward.  Currently, we don't depend on this frame for anything other that NewSessionTicket, for which loss has no real consequence.

We will assign a minimum buffer size that implementations are required to support, probably something small like 4k.  A higher limit is possible.  If an endpoint finds that this buffer is overrun they MAY discard all CRYPTO frames with higher offsets, or they MAY drop the connection with a `NEW_ERROR` code.

-- 
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/1834#issuecomment-458783852