关于ECH的
ECH能做到…… #tl;dr 浏览器访问的域名不会通过SNI泄露给ISP等中间人。
ECH不能做到…… #- ECH不能保护未加密DNS泄露用户访问域名的情况。
- ECH需要网站端支持。如果网站端不支持,ECH无法启用。
- ECH需要用户端DNS解析HTTP记录的支持。如果用户系统/浏览器不支持,ECH无法启用。
- ECH只支持TLS 1.3(及更高版本?如果有的话)。
如何启用ECH #Firefox自119版本起,Chrome自117版本起已默认启用ECH。在良好的网络下,较新版本的Firefox/Chrome浏览器应已默认启用ECH,并在访问支持ECH的网站时使用ECH。
(Edge的状况可能和Chrome相同。)
测试站点 #- https://tls-ech.dev,显示 "You are using ECH. :)" 即为ECH已启用。
- https://defo.ie/ech-check.php,显示 "SSL_ECH_STATUS: success" 即为ECH已启用。
- https://www.cloudflare.com/ssl/encrypted-sni/,Secure SNI显示为打勾即为ECH已启用。
- Cloudflare 免费 plan 站点的 /cdn-cgi/trace,例如 https://outv.im/cdn-cgi/trace;其中显示 sni=encrypted 即为ECH已启用。
- 对于Chrome,在DevTools的 "Privacy and Security" 页,左侧Security标签下查看所访问网站的信息时[1],使用了ECH的网站右侧会显示 "Encrypted ClientHello: enabled"。
如果ECH没有生效…… #- 如果配置了系统代理或HTTP/HTTPS/SOCKS等代理,需要关闭代理。
- 如果系统DNS解析可能不支持HTTPS记录,请尝试启用 DNS over HTTPS(Chrome的 "Secure DNS" 或Firefox的 "DNS over HTTPS" 并选择 "Max Protection")。
- Safari目前似乎尚未实现ECH。
- 有时在清空缓存后刷新页面后,ECH会生效。
- 如果用户设备解析DNS记录较慢,浏览器可能不会等待ECH所需信息获取完成,因此不会使用ECH。
- 对于Firefox,可以依照此列表检查ECH是否被相关 about:config 配置禁用(例如 network.dns.echconfig.enabled。亦可参考 Firefox 相关知识库文章。
- 如果发现在 Firefox 中启用了 DoH/TRR 后,本地地址的域名无法解析,可以在 about:config 中将 network.trr.allow-rfc1918 配置改为 true。
1. 如果列表显示 "Reload to view details“,请刷新页面。