As an update, I seem to be able to negotiate a handshake with "only.esni.defo.ie", but I must be making a mistake in my ClientHello. Wireshark sees Firefox's ClientHello as TLS 1.3, but mine only shows up as TLS 1.0, although the " only.esni.defo.ie" ServerHello does show up as TLS 1.3. You check out the details on that host at https://defo.ie/ .
My client fails to read application data after that, although the server does seem to send it. You can check out my fork of Rustls here: https://github.com/grafica/rustls If you then do something like: $ cd rustls/rustls-mio/ $ cargo run --example esniclient you should see some ESNI traffic. Some of the code in the fork is a little messy so far, but it's still in the "make it work" phase. :) thanks, Rob On Sat, Oct 26, 2019 at 3:31 PM Rob Sayre <say...@gmail.com> wrote: > 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