Skip to main content
Re:Linked

Cheetsheet:启用ECH

· 更新于 · #security · 约 1.6k 字 · 浏览量: 318

关于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“,请刷新页面。 ↩︎

评论

您可以选填邮箱地址以接收关于评论回复的邮件通知。
0 条评论
  • 最新
  • 最热
  • 最早
  • 作者
关闭评论
吐槽大欢迎~!


LIKE