跳转至

域前置

简介#

TLS 握手时发送的 ClientHello 消息,通常会包含 SNI 扩展信息,这个信息含有网站域名,所以 GFW 等审查防火墙能识别用户连接的网站,并且对部分网站进行 RST,发送终止连接的信号。

域前置是发送虚假或空白 SNI 给服务器的反审查方案。1 由于 SNI 本身属于扩展协议,所以不正确的 SNI 或者没有 SNI,可能会触发服务器的兼容性功能,从而返回默认的或通用的证书,允许连接建立。(属于一种向前兼容)

后续#

2016 年开始,IM 软件 Signal、Telegram 使用了域前置规避审查,来解决被部分地区封锁的问题,2018年4月14日,由于俄罗斯大规模封禁 Google 和 Amazon 云的 IP,尝试禁止这些软件,所以 Google 和 Amazon 禁用了域前置,云运营商给出的理由是「安全问题」。这标志依附的自由策略逐渐失效。2

除了域前置这种绕过 GFW 的方案,还有升级 TLS 协议这种手段,比如使 SNI 被加密的 ESNI,但是升级协议会有较长的缓冲期。并且在 2020年7月29日,GFW 开始封禁 ESNI 了。3

域前置浏览器#

通常域前置被作为一些软件独特的反审查方式,不过有开发者觉得域前置可以直接添加到浏览器上,这样就相当于一种翻墙浏览器。

revolter-firefox 就是这样的浏览器,开发者 Xmader 魔改了网络安全相关的二进制文件,使其默认不发送 SNI。4

不过开发者在 2019年10月 前删库,5 根据后来的 采访 来看,可能还是有一些外部压力的因素。


  1. https://en.wikipedia.org/wiki/Domain_fronting 

  2. https://en.wikipedia.org/wiki/Domain_fronting 

  3. Kevin Bock 等, 《揭示和规避中国对加密SNI(ESNI)的封锁》, GFW Report, 2020-08-06. (参照 2024-02-07). 

  4. Xu-Ming, revolter-firefox/revolter-firefox,. revolter-firefox, 2024-02-04. 参照: 2024-02-07. [Online]. 

  5. 095448a, 《解决 SNI RST 的新方式》, 2047, 2019-07-27. (参照 2024-02-07). 

(由于更新时间是手动更新的,所以部分页面内容已更新,但忘记修改新的日期了……)