Snowflake (软件)

Snowflake是一款通过中继数据请求从而突破网络审查的一套软件，其代理由网络未被审查的国家的用户运行，而受审查国家的用户可以通过Tor浏览器内置的Snowflake客户端来通过Snowflake代理连接网桥、从而连接Tor网络。Snowflake代理可以通过安装浏览器扩展程序、安装独立软件或者浏览嵌有Snowflake中继的网页来创建。

历史
2016年1月，Snowflake的第一个版本发布，由前Google工程师兼音乐会钢琴家发明。其名字“Snowflake”（雪花）是对数目庞大的ICE协商相关临时代理服务器的比喻。

2019年Firefox和Google Chrome的Snowflake扩展程序发布。

2023年2月，一款据称是Snowflake升级版本的独立软件Snowstorm发布。该软件以Rust语言编写，由开放技术基金会资助，目前正在beta测试中。

运作

像伊朗、俄罗斯和中国一些国家封锁Tor网络，用户无法通过公开的Tor入口节点连接上，必须通过网桥——未公开的中继来连接。而审查者会尝试深度包检测等手段识别并封锁网桥 。

Snowflake系统目前由四个主体构成：
 客户端（）
 经纪人（）
 代理（）
 网桥（）

客户端
当用户选择使用Snowflake网桥时，他们的软件作为客户端运作。

 经纪人 
与或obfs4网桥不同，客户端并不直接连接到网桥本身，而是首先联络经纪人，获取一些由志愿者运作的可用Snowflake代理，该过程使用域前置技术。在Tor浏览器的默认配置中，客户端以多个使用CDN77的网站作为域前置的伪装域名，中间人看起来就像是访问一个主流网站，实际连接的是Tor Project运作的经纪人。

代理

客户端通过经纪人获取到Snowflake代理后，直接向代理发起WebRTC连接，此处中间人看到的内容就像是视频会议应用产生的P2P流量。

志愿者安装一个浏览器扩展程序或者保持嵌入有Snowflake代码的标签页开启都会使其计算机变成一个代理。在后者的情况下，志愿者只需打开一个网页内的开关即可使其运作。另外Snowflake代理也可以作为独立程序运行，比如在Docker容器中运行。

Snowflake代理只要网页或者程序连接到互联网就会一直运行，如果某运行者的计算机使用动态IP，代理的IP也会随之变化。Snowflake代理以Tor入口的角色运作，而非出口，并不直接访问用户需要的网站，因此降低了法律风险。中继流量会增加志愿者计算机的带宽用量，但一般不会降低做其他事情的网速。

网桥

志愿者运作的代理并不直接连接Tor网络，而是向经纪人介绍自己后，等待客户端的连接并将其请求中转到Snowflake网桥，后者将流量接力到Tor网络。

目前Tor浏览器的内置配置包含两个Snowflake网桥，昵称分别为crusty12和flakey3，都位于欧洲。

应对措施
审查者可能使用DTLS指纹识别并封锁Snowflake代理，这在俄罗斯曾经发生过。另一种可能的审查方法是安装并运行Tor浏览器，然后封锁所有其提供的Snowflake代理。这两种方法在面对大量志愿者建立节点的情况下会遇到挑战。

应用
Snowflake在2022年10月伊朗示威期间被广泛讨论和使用，还有人发布了波斯语的使用教程。

同年，俄罗斯政府增大了对Tor技术和政治上的封锁力度，结果是该国境内Snowflake网桥的使用人数增加。

参见
 賽風 - 使用多种反审查技术的翻墙工具
 Flashproxy - 与Snowflake原理类似的PT
 球鞋網路 - 在网络接入受限的国家广泛使用的技术
 uProxy - 类似地，由志愿者担当代理节点的浏览器扩展程序

参考来源

外部链接

 - gitlab.torproject.org
Bridge users using transport snowflake  - Tor Metrics 

Category:Tor (匿名网络)
Category:2016年软件
Category:翻墙软件