Skip to content

ECH先遣服:搭建修改HTTPS记录的DoH服务,强制为Cloudflare CDN与Meta CDN开启ECH功能 #13

@RememberOurPromise

Description

@RememberOurPromise

总之就是1小时22分速通GFW
直连CF网站、X、Facebook、Instagram、Threads、WhatsApp,当然不直连也行,通过代理时也能开ECH

前言

大概三个月前发现CF可以强制开ECH

一个多月前 @JonSnowWhite#529 提到的论文

As discovered by Mücke et al. (https://dl.acm.org/doi/pdf/10.1145/3744969.3748401)

It is also possible to discover ECH configurations of TLS servers by handshaking with them using a non-valid ECH extension (https://www.ietf.org/archive/id/draft-ietf-tls-esni-25.html#section-6.1.6).

研究提出了一种如何探测 ECH 部署情况的方法,利用TLS的HelloRetryRequest来获取ECH配置,结果发现 Meta(Facebook) 正在偷偷测试 ECH ,并且没有在 HTTPS 记录中发布 ECH 配置,仅可以通过该方法获取

当时见到 FB 的几个 SNI 应该早就被封,过了一个月再看,发现有一个没被封,而且 FB 目前的测试 ECH 并没有轮换密钥AEj+DQBEAQAgACAdd+scUi0IYFsXnUIU7ko2Nd9+F8M26pAGZVpz/KrWPgAEAAEAAWQVZWNoLXB1YmxpYy5hdG1ldGEuY29tAAA=

那就容易了,结果一试,好家伙,Meta系也能强制ECH

既然过了一百天GFW都没封cloudflare-ech.com,还有白票怪的各种什么ECH workers,那么就有必要去利用它了

正片

之前尝试的方法,要么是采用MitM强制开启ECH,引入自签根证书的风险,要么是在本地路由的DNS服务上强制修改HTTPS记录,有一定的搭建成本

那么为什么不利用大善人的互联网基础设施直接搭建修改HTTPS记录的公共DoH服务呢?

等了辣么久还没人去搞,那么今天我来打个样

还是搭在Cloudflare Workers,

需求喂给LLM:
(其他Prompt略)

通过ip4/ip6参数传递CF优选IP
path不要用/dns-query
默认页面伪装404
Workers无法访问CF的IP段,采用Google的DoH服务
Chrome开启DoH后会并行查询A AAAA HTTPS记录,HTTPS记录仅用于获取alpn和ECH

ECH Fronting:
通过其他域名的HTTPS记录获取ECHconfig并修改
CF的ECHconfig从cloudflare-ech.com获取
Mata的ECHconfig目前固定为AEj+DQBEAQAgACAdd+scUi0IYFsXnUIU7ko2Nd9+F8M26pAGZVpz/KrWPgAEAAEAAWQVZWNoLXB1YmxpYy5hdG1ldGEuY29tAAA=

DNS记录的修改逻辑:
X会负载均衡到自有IP/fastly,且不支持IPv6访问,如果是X的域名则直接返回CF优选IP的A 记录,AAAA记录返回空,并且HTTPS记录采用CF ECH
查询 A AAAA 记录如果任意记录是 CF IP 则返回 CF 优选IP,否则直接转发
查询HTTPS记录时,向源DoH查询A和AAAA,如果有任意返回 CF IP 则转发CF ECH,如果有任意返回Meta IP,则转发固定alpn和Meta ECH

CF和Meta的IP段:
(参见geoip,略)

调研1小时,拷打 LLM 22分钟,部署workers,绑域名,就可以用了

打开Chrome浏览器,设置安全DNS,填写https://你绑定的域名/doh-ech-test?&ip4=104.18.10.118,104.18.11.118&ip6=2606:4700::6812:a76,2606:4700::6812:b76

可替换为优选IP,如果cloudflare-ech.com故障或CF让其不返回ECH,后面增加&ech=可以获取的域名,CF Free Plan站点都有ECH

吐槽一下Meta的IPv6都有一段face:b00c,真实写在脸上....

结论

就是提前体验ECH全面部署的状况,至少目前CF和Meta(一些IP)还是可以直连的,目前没有迹象表明CF会轮换outerSNI,当然压力全部给到outerSNI了

如果后续其他CDN跟进部署,也可以用上述的方法探测到ECHconfig,并自己添加HTTPS记录

因为没有用Meta系的东西,没测试是否所有Meta CDN的资源都能ECH直连,似乎是都可以
绕地球一圈回国测试直连太麻烦了吧

如果不直连也可利用ECH防止代理看到真实SNI,总之可以提升隐私保护

至于如果全面强制ECH的话,喜欢分流的同学,可能不喜欢ECH,但换个角度或许也是利好分流,规则更简单?一条ech.google就不会漏了?

欢迎各种ytber转载,给你们贡献收益,反正都是LLM写的

致敬一下直连老英雄们,在赛博大善人的帮助下,现在twitter.com真的可以直连了
也多亏各种标准和协议的推动,让GFW千疮百孔,希望明年ECH转正

祝大家新年快乐,2026年GFW倒塌,谢谢大家!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions