APP下载

Firefox 85将以ECH取代加密SNI

消息来源:baojiabao.com 作者: 发布时间:2026-05-24

报价宝综合消息Firefox 85将以ECH取代加密SNI

Mozilla在2年前,宣布于Firefox Nightly加入加密服务器名称指示(Encrypted Server Name Indication,ESNI)实验性扩充功能,以保护用户隐私,但是经研究发现,ESNI并无法提供完整的保护,因此Firefox 85将改变作法,透过加密整个客户端Hello讯息,来解决ESNI的缺点,而这个新作法称作ECH(Encrypted Client Hello)。

ESNI的出现,是为了要解决主机名称泄漏的问题,服务器名称指示(Server Name Indication,SNI)是TLS的一个扩充协定,该协定会在交握过程开始时,由客户端在TLS Client Hello讯息中,以明文传送要连接的服务器主机名称,以连接到特定服务器,并选择使用的凭证。SNI协定是要让服务器,在相同的IP位置和TCP埠号上,能够使用多个凭证,以便让相同的IP位置上,不只可提供多个HTTPS网站,且可以使用不同的凭证。

SNI存在隐私疑虑,会有类似DNS隐私泄露的问题,因此Mozilla等组织共同开发了ESNI,为的就是避免在TLS交握时,导致主机名称泄漏,提供像是HTTP-over-HTTPS,避免DNS查询向路径上观察者,公开主机名称相似的功能。

不过,在IETF发布ESNI规格草案后,经过分析显示,ESNI扩充提供了不完整的保护,像是在对话恢复期间,预共享的金钥(Pre-Shared Key)扩充,仍会包含ESNI加密的服务器主机名称,也就是说ESNI必须为所有具有潜在隐私风险的扩充,提供加密变体,但这反而暴露出一系列广播的扩充。这个原因使得ESNI的互相操作性以及部署受到挑战,因而无法扩展使用范围。

为了解决ESNI的问题,在最新版本中,不只加密SNI扩充,而是加密整个客户端的Hello讯息,因此名称也从原本的ESNI,更改为ECH。现在任何涉及隐私,但原本被广播为未加密ClientHelloOuter的扩充,现在可以转为加密的ClientHelloInner,当服务器支援ECH并且解码后,ClientHelloInner就可用做TLS连接基础。另外,ECH也更改了金钥分派与加密过程,支援ECH的TLS服务器,可透过HTTPSSVC DNS纪录,公开其公钥。

Mozilla、Cloudflare、Fastly和苹果开发者合作,在IETF中标准化加密客户端Hello规格,而从 Firefox 85开始,ECH草案将会取代ESNI,about:config中ESNI相关选项也会被移除,官方建议用户可以在Firefox预设启用ECH时,才开始使用该功能,但用户仍可以手动开启相关设定,不过因为ECH现在还在开发中,且ECH要求客户端与服务器必须使用相同版本,因此其中一方版本变更,便会影响可用性。目前Firefox ESR将继续支援旧的ESNI功能。

2021-01-10 07:48:00

相关文章