#curl Encrypted Client Hello (#ECH) support is progressing: https://github.com/curl/curl/pull/11922 - Encrypted Client Hello ensures that the server name is not visible in clear text during the TLS connection establishment. This is great for #privacy as it will make it harder to track which sites are visited, at least if the sites are hosted on some shared IP addresses.
There of course are also counterarguments against ECH in certain settings. For example some #IDS solutions that inspect SNI of TLS connections made by compromised hosts would get reduced visibility. It is likely that some orgs will take steps to block ECH in their networks.
@CCC this gives me renewed energy for continuing to work on #TLS #EncryptedClientHello (#ECH).
@ianonymous3000 @privacytests @mullvadnet @torproject unless those browsers have enabled Encrypted Client Hello (#ech) as well, then all this is just #fake #privacy. And please, #DNS resolution should be provided by the OS and that should make it encrypted. Not browsers or each application.
As part of #ISRG's work towards memory-safe infrastructure for the internet, @cpu has opened a merge request that implements TLS ECH support on the client side:
https://github.com/rustls/rustls/pull/1718
We agree that "the ECH spec is very challenging to implement and required a lot of trial/error" and we are working with #DEfO to help implementers. Please reach out if that is you:
https://defo.ie/#contact
For people asking why Encrypted Client Hello is so important:
Even if you are using DOH (or ODoH), your ISP can see what websites your visiting (and then sell to NSA) by inspecting the certificate SNI field. Even with Encrypted SNI (ESNI), there are artifacts of the TLS session establishment leaked that can be used for TLS Fingerprinting - things like ALPN, and cipher suite.
@Codeberg as part of https://defo.ie, we are assisting free software projects of all kinds to implement #EncryptedClientHello (#ECH). This would hide the domain that users are connecting to, e.g. codeberg.org, *.codeberg.page, etc. If you are interested, let me know and I'll see what we can do to help.
Our #HKPE (RFC9180) implementation shipped by #OpenSSL has been audited, and passed with flying colors: "Auditors did not identify any directly exploitable vulnerabilities". Nice work, Stephen Farrell!
https://7asecurity.com/blog/2023/12/defo-2-openssl-hpke-pr-security-audit/
https://www.opentech.fund/security-safety-audits/defo-2-openssl-hpke-pr-security-audit/
We hit a major new milestone our DEfO partnership project to accelerate adoption of #TLS Encrypted ClientHello (#ECH): Stephen Farrell made a pull request to #OpenSSL with a complete, working implementation: https://github.com/openssl/openssl/pull/22938
@U039b interesting, nice approach. Have you looked at how to do that with #ECH? It uses a new public key that is generated using https://www.rfc-editor.org/rfc/rfc9180.html
Also, will that work with apps that use #SafetyNet etc so they refuse to run on rooted devices? It seems for those apps, we still need a way to use something like #MITMproxy, e.g. inserting a custom CA cert. But the ECH key is not related to any CA cert.
If you have detailed questions about ECH, please ask here or on https://matrix.to/#/#ech-dev:matrix.org
One thing about #EncryptedClientHello (#ECH) that I'm a little worried about is that it will make #MITM inspection of #TLS traffic harder to the point where it might restrict lots of important kinds of inspection. When the software we use is not #FreeSoftware, then we cannot see what it is doing by reading the source code. We need to inspect the network traffic. So it is very important that it is possible to inspect traffic that uses ECH as well, despite that middleware companies will abuse this