翻墙软件的选择与安全系数(6)shadowsocks,翻墙界的新秀!

2015/01/14
在新的一年里,GFW越来越疯狂了,自由门的两个最新版和VPNgate彻底失效了[1],无界最新版 表现也很不好,DNS采用了新的污染模式又搞得一批防DNS污染的软件失效了:GFW以前是用固定几个不存在的IP地址来伪造查询结果,但最近改成用一大堆非目标网站的IP地址来伪造查询结果了[2]。

不过有一个翻墙软件迄今为止还是非常坚挺的:shadowsocks![3]

shadowsocks在普通的socks代理上进行了自定义加密方式等改进,客户端不需要安装,支持多个平台,迄今为止GFW还无法通过特制检测进行封杀,总的来说还是比较坚挺的,唯一的缺点就是需要自行租用VPS并部署服务器端,比较小白不友好,不过现在也有一些付费shadowsocks账号提供商,价格比起VPN来要低上很多(这个就请有需要的人自行google吧,我不喜欢打广告);或者也可以google寻找公共免费账号,我在这里[4]给出了一些提供免费账号的网站,可以去看看。

想知道为什么迄今为止GFW还没办法有效封杀shadowsocks吗?

这要从shadowsocks的原理说起了:简单来说,shadowsocks就是一个一重加密socks代理,本机上的客户端先与远程服务器(配置了shadowsocks服务端程序的VPS)端建立连接,远程服务器再与目标网站连接从而成功翻墙。(具体过程和goagent比较相似[5],(两者都是用python编写的)不过shadowsocks是原生支持HTTPS的,没有“服务器不开放socks接口”这种问题,我会贴一张原理图上来)

“听起来和普通的一重代理也没什么两样吗!自由门无界VPN不都是一重代理吗?但他们都很容易被封杀啊!”

当然是有不一样的地方了:

首先,VPN无法进行远程DNS解析[6],所以很多时候在使用VPN的同时还要设定好一个国外的DNS服务器才能正常翻墙(很多人反映很多时候挂着VPN都无法正常打开FB,推特等网站,其实就是因为没有设定国外DNS服务器而遇到了DNS污染);
而shadowsocks默认就支持远程DNS解析(因为socks5代理支持远程DNS解析),这样就省去了配置国外DNS服务器的麻烦,同时还防止了信息泄露:DNS查询直接递给远程代理服务器,然后通过墙外DNS服务器查询得到结果再传回客户端,这样ISP就无法通过DNS查询知道你访问了哪个网站了(而不支持远程DNS解析的VPN就留下了泄露访问信息的隐患),同时也避开了DNS污染。

自由门和无界还有很多公共代理的共同点就是都有很多人用,当有很多墙内客户端都在短时间内(或者说同时)长时间连接到一个或几个国外远程服务器上时,就会引起GFW的注意并被很快封杀;
而shadowsocks则是要求用户自行租用VPS并部署shadowsocks服务器端,相当于拥有了一个个人专用服务器,个人的流量非常小,GFW注意不到,自然也就不会去封杀了(PS:小范围共享的服务器也不太会被GFW注意到的)。

接着说说流量特征的问题。OPENVPN和VPNgate都是死在了特征检测上,通常来说基于证书的身份认证过程和密钥交换过程都会带来独特的协议指纹(OPENVPN有着一套复杂完善的身份认证机制,估计GFW就是识别出了这一机制的协议指纹从而成功干掉OPENVPN的),从而使得他们在handshake阶段就被GFW识别出来并阻断了;
shadowsocks的作者吸取了教训,直接放弃了服务器端身份认证[7],也抛弃了密钥协商过程(TLS了连接就是在handshake阶段协商出随机密钥的),而是采取事先在服务器端设置好固定密钥的方式来应对加密连接的(设置shadowsocks客户端和服务器端的时候要填写同一个密码,这就是事先设置好的用于加密和解密的密钥[8])。这样做就大大减少了协议特征,GFW迄今为止也没能找到有效的识别方法。再加上自定义加密算法,GFW更是难以寻找到明显的协议指纹了。

shadowsocks的安全系数主要取决于你使用的加密算法,建议使用默认的AES算法,那是安全系数最高的;其他的就直接看这里[9]吧,我曾经提过的不安全的RC4算法[10]作者也建议不要用了。shadowsocks没有身份认证机制,但事先放置密钥就可以防止GFW的中间人攻击了,问题不大;如果是自己搭建服务端,那么也不存在信息被泄露的问题了(服务端在自己手里啊),但同时逆向追踪难度也变小了;如果是使用公共账号或者购买付费账号,那么服务端的靠谱程度又成了问题。总的来说shadowsocks的安全系数和赛风三[11]相差不多。

总结:shadowsocks跨平台,抗封锁能力很强,适用人群为无价值目标与低价值目标还有中等价值目标[12],客户端部署容易无需安装,唯一缺点就是服务端部署相对复杂对小白不友好(不过可以通过寻找或购买账号解决)。shadowsocks开源免费,作者为天朝无名英雄clowwindy,在此本幽灵向其致敬!现在局势越来越险恶了,clowwindy,匿名工作一定要做好啊:)

本来打算下一篇推荐一下VPNgate的,结果没想到VPNgate彻底挂了,算了,还是分析一下原理作为缅怀吧,毕竟我早期就是靠VPNgate出来的。(顺便找一下挂掉的具体原因)

最后附上科普文链接集合:https://plus.google.com/u/0/109790703964908675921/about

参考资料:
1,http://program-think.blogspot.com/2015/01/gfw-news.html
2,https://plus.google.com/u/0/+gfwblog/posts/2bN9PTv2d52?cfem=1
3,https://github.com/shadowsocks
4,最新版TORBrowser,Poodle 攻击与前置代理推荐之shadowsockshttps://plus.google.com/109790703964908675921/posts/YnvBLAd6SQ1
5,翻墙软件的选择与安全系数(5)
                                              ————为什么goagent要导入证书?
https://plus.google.com/109790703964908675921/posts/S97nfFoEPie
6,翻墙路由器的原理与实现
https://docs.google.com/document/d/1mmMiMYbviMxJ-DhTyIGdK7OOg581LSD1CZV4XY1OMG8/mobilebasic?pli=1
7,https://gist.github.com/clowwindy/5947691
8,http://www.hceasy.com/2013/12/shadowsocks-%E6%9C%8D%E5%8A%A1%E7%AB%AF%E9%83%A8%E7%BD%B2/
9,https://github.com/shadowsocks/shadowsocks/wiki/Encryption
10,VPN翻墙,不安全的加密,不要相信墙内公司https://plus.google.com/109790703964908675921/posts/AXgoJutf5sz
11,翻墙软件的选择与安全系数(4)
                                                  ————赛风三的安全性
https://plus.google.com/109790703964908675921/posts/CK81jzWRsdx
12,翻墙软件的选择与安全系数(1)https://plus.google.com/109790703964908675921/posts/VfXZuC5xJCN

作者:Ghost Assassin
来源:https://plus.google.com/u/0/109790703964908675921/posts/TtWFAQmSMVE

Related Posts