Hi,

This code works with medium.com (hosted by Cloudflare). I was previously
testing with a parked domain. Maybe there's some signaling needed when the
handshake fails based on Split Mode / Shared Mode configuration.

thanks,
Rob


On Sat, Oct 26, 2019 at 7:43 PM Rob Sayre <say...@gmail.com> wrote:

> 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

Reply via email to