文章
技术

Shadowsocks是如何被检测和封锁的

libgen 图书馆革命
libgen  ·  2020年10月29日 天堂应该是图书馆的模样。一个阅读诗歌的人要比不读诗歌的人更难被战胜。创造是一种拯救。创造拯救了创造者本身。

https://gfw.report/publications/imc20/zh/


作者: Alice, Bob, Carol, Jan Beznazwy, Amir Houmansadr

Internet Measurement Conference (IMC) 2020

English version: How China Detects and Blocks Shadowsocks

最后修改日期: 2020年10月27日

论文摘要

在这项研究中,我们揭示了中国的防火长城(GFW)是如何检测并封锁Shadowsocks及其变种的。通过网络测量实验,我们发现GFW会根据每个连接中的第一个数据包的长度来识别Shadowsocks流量;然后再向被怀疑是Shadowsocks的服务器分阶段地发送7种不同的主动探测,来验证其怀疑。

我们开发了一个主动探测模拟器,并用它来分析不同的主动探测对不同版本的Shadowsocks的作用,从而猜出不同种的主动探测分别利用了Shadowsocks的哪些弱点。我们还分析了GFW主动探测的指纹,并与之前关于GFW主动探测的研究所发现的指纹比较了异同。分析TCP层的旁道信息,我们还发现:来自上千个不同IP地址的主动探测,其实很有可能是受一小撮中心化结构的集中控制。

根据我们从实验中获得的理解,我们展示了一个成功缓解流量分析的方法。我们还讨论了对抗主动探测所必要的策略。我们向Shadowsocks开发者们负责任地披露了我们的发现和建议,从而已经让Shadowsocks变得更加地难以封锁。

更新

  • 我们在不伤害匿名性的前提下,已于2020年10月7日将论文相关的源代码和数据集开源。这些代码和数据可以支持我们论文的所有主要结论。
  • 如果您有任何的问题,评论或反馈,请使用下方的评论区,或者用这个pad
菜单
  1. 沉默的广场  

    shadowsocks出过很多安全漏洞,shadowsocks出过3个大版本,每一个版本都在填漏洞。

    1. shadowsocks-clowwindy:最原始的SS版本,由clowwindy用python写成(已喝茶)。因为只做了数据加密而没有做真实性校验,而被发现主动探测漏洞,攻击者甚至可以直接「解密」流量。

    2. shadowsocks-OTA:用了自创的校验算法,同样被发现非常明显的主动探测漏洞。

    3. shadowsocks-AEAD:就是著名的ss-libev仓库,使用了AEAD(一种同时做加密和认证的算法),基本杜绝了算法层面的问题。不过仍然被指出存在基于服务器行为的主动探测漏洞。

    补充几个解释主动探测SS原理的参考资料:

    我不建议使用瓦房店密码学协议,如果有必要,可以用trojan、naiveproxy(TLS隧道);迷雾通、shadowsocks-obfs4,​basket2(经过学术界检验)。Tor Project有一个经过严格检验的混淆协议列表:

    https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports/list

  2. 邹韬奋 外逃贪官CA
    邹韬奋   虽然韬光养晦,亦当奋起而争(拜登永不为奴:h.2047.one)

    简单点问,shadowsocks服务器应该用什么版本, 用什么协议?

  3. libgen 图书馆革命
    libgen   天堂应该是图书馆的模样。一个阅读诗歌的人要比不读诗歌的人更难被战胜。创造是一种拯救。创造拯救了创造者本身。
  4. 沉默的广场  

    谢……谢邀?

    用shadowsocks-libev仓库,选择AEAD算法,包括AES-128-GCM,chacha20-ietf-poly1305就够了。