Contact emailsdavid...@chromium.org, dadr...@google.com

ExplainerNone

Specificationhttps://datatracker.ietf.org/doc/html/draft-ietf-tls-esni

Summary

The TLS Encrypted ClientHello (ECH) extension enables clients to encrypt
ClientHello messages, which are normally sent in cleartext, under a
server’s public key. This allows websites to opt-in to avoid leaking
sensitive fields, like the server name, to the network by hosting a special
HTTPS RR DNS record. (Earlier iterations of this extension were called
Encrypted Server Name Indication, or ESNI.)


Blink componentInternals>Network>SSL
<https://bugs.chromium.org/p/chromium/issues/list?q=component:Internals%3ENetwork%3ESSL>

Search tagsech <https://chromestatus.com/features#tags:ech>, esni
<https://chromestatus.com/features#tags:esni>, tls
<https://chromestatus.com/features#tags:tls>, ssl
<https://chromestatus.com/features#tags:ssl>

TAG reviewNot applicable; this is a protocol under IETF

TAG review statusNot applicable

Risks


Interoperability and Compatibility

As a networking protocol, interoperability risks look different from a web
platform API: This is a draft of a developing protocol, so the final
standard will differ from what we ship now. We manage this as in other
protocol work: the draft uses different codepoints in the DNS record and
ClientHello, set up to not conflict with the final standard. There is also
a risk of breaking buggy servers or network middleware. ECH is DNS-gated,
so non-ECH servers won't be exposed to ECH itself. We do implement ECH's
GREASE mechanism (section 6.2 of the draft), but this should appear as any
normal unrecognized extension to non-ECH servers. Servers and network
elements that are compliant with RFC 8446, section 9.3, should not be
impacted. We will be monitoring for these issues as part of the experiment,
comparing error rates and handshake times both for HTTPS servers as a
whole, and the subset of those that advertise ECH in DNS.


*Gecko*: In development (
https://blog.mozilla.org/security/2021/01/07/encrypted-client-hello-the-future-of-esni-in-firefox
)

*WebKit*: No signal

*Web developers*: Positive (
https://blog.cloudflare.com/encrypted-client-hello)

*Other signals*:

Ergonomics

ECH is part of TLS, so it is largely abstracted away from web platform APIs
themselves.


Activation

This is a network protocol and thus inherently requires server software
changes. It also requires keys deployed in the HTTPS DNS record. At this
stage in the process, we do not expect ECH to be deployed beyond a few
early adopters. Rather, this experiment is part of real-world testing for
the developing protocol. The connection with the DNS record is of
particular note. It is possible that, due to DNS caching, etc., that the
DNS record we fetch is out of sync with the server instance we talk to. ECH
has a built-in recovery mechanism to repair these mismatches. One of the
aims of the experiment will be to validate this mechanism.


Security

See https://datatracker.ietf.org/doc/html/draft-ietf-tls-esni-14#section-10
for security considerations in the specification


WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that
it has potentially high risk for Android WebView-based applications?

No WebView-specific risks



Goals for experimentation

This is a new extension to TLS. As part of the standardization process, we
wish to validate the design, and ensure it works, performs well, etc. This
is also the first time a TLS extension has been gated on DNS. This
introduces a new set of deployment risks. ECH includes mechanisms to
mitigate these risks, which we also aim to validate with this experiment.
We'll do this by A/B testing clients with and without ECH enabled, and
comparing error rates and latency across all TLS connections, and across
just connections to hostnames with ECH keys in DNS. We'll also be looking
at how often the recovery flow is used.


Reason this experiment is being extended

n/a


Ongoing technical constraints

None


Debuggability

Servers that use ECH are visible in the DevTools security panel.


Will this feature be supported on all six Blink platforms (Windows, Mac,
Linux, Chrome OS, Android, and Android WebView)?Yes

While supported on all platforms, ECH requires keys fetched via DNS in the
new HTTPS record. Chrome can currently fetch the HTTPS record over DoH and
over our built-in DNS resolver. As of writing, the built-in DNS resolver is
not yet enabled on Windows (https://crbug.com/1317948) and Linux (
https://crbug.com/1350321).


Is this feature fully tested by web-platform-tests
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
?No (see https://github.com/web-platform-tests/wpt/issues/20159)

Flag nameencrypted-client-hello

Requires code in //chrome?False

Tracking bughttps://crbug.com/1091403

Launch bughttps://crbug.com/1349902

Estimated milestones
DevTrial on desktop 105
DevTrial on Android 105

Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/6196703843581952

Links to previous Intent discussionsIntent to prototype:
https://groups.google.com/a/chromium.org/g/blink-dev/c/YEo4LqB7nWI


This intent message was generated by Chrome Platform Status
<https://chromestatus.com/>.

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAF8qwaB488g2%3D1WdmFPnWaAYaXB2pXaVv0-Xe-XXqYFRi5y20A%40mail.gmail.com.

Reply via email to