So I like #443 as I have said.  It simplifies padding for CHInner a lot.

I also like #457 (option 3).  My initial reaction was not positive, but I've 
come to appreciate the value of it.  I don't like that this has to be in the 
transcript (QUIC doesn't need it by virtue of a design that separates 
protection levels from content type), but as far as solutions go it is the 
easiest to implement.  In other words, it has the fewest awful shortcomings - a 
benchmark that has come to define ECH.

On Wed, Jun 23, 2021, at 07:27, Christopher Patton wrote:
> Hi all, 
> 
> One of the last design questions for Encrypted ClientHello (ECH) is to 
> decide how to pad encrypted handshake messages so that their length 
> does not leak privacy-sensitive handshake-parameters. The current 
> approach is to insert padding into the record layer as needed. However, 
> the consensus reached in [1] is that computing record-layer padding 
> based on the contents of handshake messages entails implementation 
> complexity that is untenable, particularly for QUIC and DTLS. The 
> alternative that most folks are happy with is to insert padding into 
> the handshake messages themselves, as this prevents details of the 
> handshake logic from bleeding into the record layer code.
> 
> There are a few PRs for adding handshake-level padding that we could 
> use feedback on.
> 
>     (1) https://github.com/tlswg/draft-ietf-tls-esni/pull/443 Adds 
> padding to EncodedClientHelloInner, the message that is encrypted and 
> stuck into the ECH extension of the ClientHelloOuter. This prevents 
> leakage of sensitive parameters in ClientHelloInner.
> 
>     (2) https://github.com/tlswg/draft-ietf-tls-esni/pull/313 Defines a 
> new extension, which the client sends in ClientHelloInner in order to 
> solicit a response in the backend server's EncryptedExtensions message. 
> The server''s response contains padding it can use to prevent leakage 
> of sensitive parameters in its first flight of handshake messages.
> 
>     (3) https://github.com/tlswg/draft-ietf-tls-esni/pull/457 
> (alternative to (2)) Defines a new handshake message, Padding, which 
> the client and backend server always send just before Finished in case 
> of ECH acceptance. One advantage of this approach over (2) is that the 
> length of the padding can be evaluated after the 
> Certificate/CertificateVerify messages have been chosen, making it 
> possible to account for sensitive parameters in these messages without 
> needing to buffer the whole flight of messages. The downside is that it 
> may add complexity to the state machine of TLS 1.3 implementations.
> 
> There are some open questions regarding how to compute the padding 
> length, but these should be orthogonal to deciding the mechanism.
> 
> Thanks on behalf of (some of) the contributors,
> 
> Chris P.
> ____
> [1] "Handshake-level vs record-level padding." 
> https://github.com/tlswg/draft-ietf-tls-esni/issues/264
> _______________________________________________
> TLS mailing list
> TLS@ietf.org
> https://www.ietf.org/mailman/listinfo/tls
> 

_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls

Reply via email to