Hi,

I think I have a working ESNI client, but I'm encountering a strange error
testing with Cloudflare.

I initially tested with "cloudflare.com", but found this was a bad idea,
because that host doesn't seem to require an SNI or ESNI. So, a bogus ESNI
triggered no errors.

When my client sends an ESNI to a Cloudfront-fronted domain, I get a
handshake_failure error (40). According to the -02 draft, this should only
happen if the server fails to negotiate TLS 1.3. I've got my client
configured for TLS 1.3 only, so this shouldn't be an issue. When I add an
unencrypted SNI to an otherwise identical ClientHello, everything works
over TLS 1.3. If there are problems with my ESNI encryption, I should see
other errors. Things like "illegal_parameter" or "decrypt_error", right?

In Wireshark, I can at least see that my encrypted_server_name extension
matches Firefox's cipher and key share entries, and the lengths of
record_digest and encrypted_sni are the same. Firefox does send some
extensions I don't, like ALPN. Does the absence of unencrypted SNI imply
the presence of other extensions?

I also wondered about extension order. Since the ClientHello.key_share is
part of the ESNI calculation, does it need to appear first in the
extensions list?

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

Reply via email to