文章
技术

利用Cloudflare推出的ECH标准上被GFW封锁的网站

ruler  ·  12月2日

什么是 ECH 标准:

ECH 即 Encrypted Client Hello,这是 ESNI 的继任者,主要目的是屏蔽用于协商 TLS 握手的服务器名称指示 (即 SNI),也用来替代之前的加密服务器名称指示 (ESNI)。

按Cloudflare的说法,ECH完成了隐私的最后一块拼图

网络运营商如何嗅探用户访问:

在 HTTP 时代,网络运营商有多种方式进行嗅探以搜寻用户访问的网站,这是因为 HTTP 没有进行加密,网络运营商可以轻松劫持 HTTP 流量并在流量里插入垃圾信息,包括但不限于将用户下载的应用替换为推广应用、在用户访问的任意网站里插入流量套餐或者广告信息。

最近十年 HTTP 快速向 HTTPS 过渡,HTTPS 对网站内容进行了加密,运营商无法再随意劫持流量,但这并不意味着运营商无法再嗅探用户访问哪些网站。

当我们使用浏览器访问某个地址时,DNS 请求也会泄露地址、SNI 信息也会暴露域名,于是业界又推出 DNS over HTTPS/TLS,用来加密 DNS 查询请求。

然而 SNI 问题仍然没有解决,因为 SNI 信息仍然会暴露给网络运营商。

ECH 是如何解决 SNI 信息暴露的:

ECH 的 ClientHello 消息被分成两个部分,内部部分和外部部分,外部包含的是非敏感信息,例如使用的加密类型和 TLS 版本,内部部分则包含已经加密后的内部 SNI。

在 CloudFlare 托管的网站若启用 ECH 后,则外部部分使用的是 cloudflare-ech.com,这是个共享的 SNI,运营商最多只能知道用户访问的网站使用的是 CloudFlare 和 ECH 标准,并不知道具体的网站域名。

而内部包含隐私的 SNI 信息,则由 CloudFlare 进行加密和解密,所以运营商无法获知信息。

目前 ECH 已经得到量大主流浏览器支持:Google Chrome 和 Mozilla Firefox,而 Chromium 的支持也意味着其他基于 Chromium 的浏览器多数也支持 ECH,这有助于快速提高互联网的隐私安全。

以Chrome为例

前提是先要开启DoH

打开 Chrome 浏览器的设置,然后依次点击“隐私和安全”→“安全”

转到“高级”处,启用“使用安全 DNS”。然后选择一个 DNS 提供商(不懂直接选择 CloudFlare 即可)

在 Chrome 浏览器打开这个地址:chrome://flags/#encrypted-client-hello ,将 Encrypted ClientHello 选项改为 Enabled ,并重启浏览器即可。

测试 ECH 是否正确启用

https://tls-ech.dev/

开启之后,理论上就可以上任何使用Cloudflare托管的网站(已经默认开启ECH),还不会被ISP知道你上了哪个网站。

试试看能不能上中国数字时代

还有哪些被封锁网站是用用Cloudflare托管的?一时没想出来。

2047是不是用cloudflare托管的?说不定可以直连了?

参考资料:

https://www.landiannews.com/archives/100495.html

https://blog.misaka.rest/2023/10/30/enable-doh-ech/

https://blog.nkxingxh.top/archives/293/

菜单
  1. ruler  

    https://2047.one/cdn-cgi/trace

    破案了,有这个页面说明2047使用了Cloudflare,直连2047不是梦了

  2. fsdfsfds  

    开翻开翻 应翻尽翻

  3. fsdfsfds  

    不行啊 tls-ech.dev You are not using ECH. :(

  4. ruler 回复 fsdfsfds /p/205792

    浏览器重启过没?要么在安全DNS那里选择自定义,填上 https://1.1.1.1/dns-query 再重启浏览器试试

  5. fsdfsfds 回复 ruler /p/205793

    也不行 tls-ech.dev You are not using ECH. :( 我开了代理 不知道是不是这个原因 我用chromium的 版本为109.0.5414.75

  6. ruler 回复 fsdfsfds /p/205806

    那看来是代理的原因

  7. 曷彪  

    你这个方法没有用,因为doh等加密dns是被墙的

  8. ruler 回复 曷彪 /p/205822

    默认的Cloudflare的DoH还能用。就是不知道为什么开启ECH后,同样是Cloudflare托管的网站,有些能上,有些不能

  9. 曷彪 回复 ruler /p/205823

    那是因为cf的节点被墙了

  10. ruler 回复 曷彪 /p/205824

    原来如此