On Sun, Mar 08, 2020 at 07:13:05PM -0700, Christian Huitema wrote:
> On 3/8/2020 10:14 AM, Stephen Farrell wrote:
> 
> > I'm questioning whether that's a good goal or not. In my
> > analysis of the various extensions, only SNI and ALPN seem
> > to offer immediate value.
> 
> Uh, No. First, we do have fingerprinting attacks that look at the
> pattern of extensions. If the extensions are encrypted in the ESNI, they
> cannot do that. And then, we have extensions that reveal a lot about the
> app, like for example the QUIC parameters extension. Those are just as
> sensitive as the ALPN.

The extensions Stephen was complaining about are related to "crypto-
graphic context". And these extensions differing in meaning across
the two client hellos seems like asking for trouble to me. There are
some harmless differences tho, e.g., omitting some banned in TLS 1.3
group from inner supported_groups.

These extensions are the ones that are valid in HRR or SH (except
tls_cert_with_extern_psk, which is not cryptographic context despite
being in SH), plus a few others (supported_groups, record_size_limit,
psk_key_exchange_modes). Also included is non-extension ciphersuite
list.

Then there is the special snowflake that is pre_shared_key. One
wants both inner and outer pre_shared_key to have the same number of
PSKs, with the same associated hash functions (if the PSKs are real at
all). But obviously binders have to differ.

Intuitive rule would be for servers to establish cryptographic context
before even looking at ECHO. And then if the front server determines
that split mode should be used, forward to/from back server, at which
point the decisions on cryptographic context are just moot (and the back
server does its own cryptographic context based on inner client hello).

Unfortunately I suspect that would not actually work due to PSKs. A
shared-mode server sees PSK that can be resumed and then resumes it.
Now what if the inner client hello contains SNI which is unknown?
I suspect pretending that ECHO did not exist would be the best
option.

And there are more annoying corner cases:

What keys would be used for 0-RTT? Inner and outer client hello gives
different 0-RTT keys, even if all cryptographic context is as same as
possible.

And how is lame (misconfiguration) back server supposed to reject
the forwarded connection? Plaintext unrecognized name alert?


-Ilari

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

Reply via email to