ECH
ECH 全称是 Encrypted Client Hello ,主要用于增强互联网连接的隐私保护。ECH 的核心是确保主机名不被暴露给互联网服务提供商、网络提供商和其它有能力监听网络流量的实体。
ECH(Encrypted Client Hello) 是一种TLS/SSL协议中的扩展,其目的是提高TLS/SSL连接的安全性。在TLS/SSL协议中,客户端向服务端发送一个"Client Hello"消息来建立连接,这个消息中包含了客户端支持的加密方式、协议版本等信息。开启ECH后,客户端会将这个"Client Hello"消息加密并发送给服务端,这样即使被第三方截获,也无法获取客户端的信息。
开启ECH有以下好处:
提高连接安全性:在传输过程中加密"Client Hello"消息,防止被截获。
隐藏客户端的能力:客户端支持的加密方式、协议版本等信息被加密,服务端无法获知。
抵御攻击:攻击者无法通过"Client Hello"消息来识别客户端的弱点进行攻击。
提高隐私性:加密"Client Hello"消息可以防止第三方获取客户端的信息。
在使用ECH时, 需要注意,服务端必须支持ECH扩展,才能正常建立连接。另外,对于客户端来说,加密"Client Hello"消息会增加一定的连接延迟,需要在安全性和性能之间进行权衡。
Chrome
开启ECH: chrome://flags/#encrypted-client-hello
将 Encrypted ClientHello 设置为Enabled
Firefox
开启ECH: 在 about:config
搜索条目 network.dns.echconfig.enabled
和 network.dns.use_https_rr_as_altsvc
,将它们的设定改为 true
即可。
在 about:config
中将 network.trr.mode
设置为 2
(默认是0),即优先使用用 TRR(也就是我们的 DNS over HTTPS),在解析失败时使用常规方式。也可以设置成3
,强制 Firefox 使用 DoH。参见 https://wiki.mozilla.org/Trusted_Recursive_Resolver