SS 使用AEAD加密算法,开tls混淆

翻墙技术的基本要求就是不能被GFW识别。
也就是说:
1. 给出一段流量,GFW能否识别出使用了翻墙技术?
2. 给出一个服务器,GFW能否识别出它是一个翻墙服务器?
Bandwagon一键脚本搭的SS版本不够新,技术上有个缺陷。不满足2
简单地说原理是这样的:
1. SS协议里有个关键字段的位置是固定的,定义了服务器要做的动作。
2. SS的加密本身是可靠的,第三方不能精确修改这个字段。但是SS之前的加密算法是流加密,也就是说密文和原文是一一对应的。第三方可以通过穷举这个字段的办法想办法命中这个字段的特殊值,一但发生服务器在某些情况下收到一段随机数据后没有断开连接,则猜测这个服务器是SS服务器。

最新版的SS增加了一些AEAD类的加密算法,从流加密变成了块加密。这样就不能直接只针对那个字段穷举,大大增加了探测难度。
AEAD算法包括:
AES-128-GCM
AES-192-GCM
AES-256-GCM
ChaCha20-IETF-Poly1305
XChaCha20-IETF-Poly1305
在具备 AES 加速的 CPU(桌面,服务器)上,建议使用 AES-XXX-GCM 系列,移动设备建议使用 ChaCha20-IETF-Poly1305 系列。

为了装最新版的SS,要手动跑脚本。顺便装个BBR。(原来是用的Bandwagon的一键脚本,CentOS 6,没有BBR)
1. 把Bandwagon VPS停掉,重新安装操作系统,选Debian 8 x64。
2. 装BBR
wget https://raw.githubusercontent.com/kuoruan/shell-scripts/master/ovz-bbr/ovz-bbr-installer.sh
chmod +x ovz-bbr-installer.sh
./ovz-bbr-installer.sh
3. 跑秋水逸冰的SS/SSR四合一脚本
wget --no-check-certificate -O shadowsocks-all.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-all.sh
chmod +x shadowsocks-all.sh
./shadowsocks-all.sh 2>&1 | tee shadowsocks-all.log
选Shadowsocks-libev,安装过程中选择加密算法chacha20-ietf-poly1305,开混淆(obfs),混淆模式选tls,同时端口开在443
*是否要开混淆,端口开在哪里,现在在SS圈子成了一个玄学,网上各有各有说法。

评论

  1. 我通过google搜索来到你博客,也算一种缘吧
    我猜测GFW观测到境外ip大流量时,判断是否要封ip,根据‘’‘你这种跑法,我认不认得出来’;例如ss随机端口,它觉得你数据流不像BT,不像思科等端口流量,反而像ss模型,相似度高到一定程度就咔嚓。你跑443\80,他则分析和真实443数据包差异来是否咔嚓。太先进的未知应用层,也属于可疑。

    回复删除
    回复
    1. 你的思路不错哦。 从现在GFW的行为来看,应该是要开始把AI和大数据用起来了。

      删除

发表评论

The Hot3 in Last 30 Days

无服务器 自建短链服务 Url-Shorten-Worker 完整的部署教程

ClouDNS .asia免费域名 托管到CloudFlare开CDN白嫖Websocket WS通道翻墙 / desec.io