Pages

Tuesday, 3 February 2015

VPN翻墙是不安全的加密,不要相信墙内的VPN公司



翻墙手段中很重要的一种就是利用VPN翻墙,这种方法可以说技术门槛相当低,就是多数时候花钱才能享受到高质量的服务。

先介绍一下VPN:VPN是Virtual Private Network(虚拟专用网)的缩写,本来是用于企业的一种网络服务,原理是客户端使用相应的VPN协议先与VPN服务器进行通信,成功连接后就在操作系统内建立一个虚拟网卡,一般来说默认PC上所有网络通信都从这虚拟网卡上进出,经过VPN服务器中转之后再到达目的地。通常VPN协议都会对数据流进行强加密处理,从而使得第三方(例如GFW)无法知道数据内容,这样就实现了翻墙。翻墙时VPN服务器知道你干的所有事情(HTT[P,对于HTTPS,它知道你去了哪)。(下面有流程图)

VPN协议主要有这几种:PPTP,L2TP,IPSEC,OPENVPN,SSL VPN,Ikev2 VPN,Cisco VPN,其中的PPTP和L2TP是明文传输协议。对,他们是明文传输协议,但为什么还是有不少人能用这两种方式翻墙呢?

当一名用户在使用PPTPVPN翻墙时,实际上他同时启用了128位的MPPE(微软点对点加密)算法来为数据进行加密[1],”那么GFW就不知道数据传输内容了,所以就实现了翻墙“大家都会得出这样的结论吧?真的很不幸,GFW其实并不仅仅是封锁,它还有着监控的作用,而且现在GFW已经具备了暴力破解MPPE加密的能力了(暴力破解的意思就是用枚举法直接枚举得到密钥从而解密):PPTP协议的加密实现-MPPE是基于RC4(可以在几分钟内被破解),MS-CHAP2的实现是用用户密码的MD4作为密钥加密,这在十年前是安全的,在今天一个莱特币矿机分分钟搞定了。我说难怪有人说他用VPN上推特会在联通查到记录呢[2],人家曙光几秒钟就穷举了那点MD4(有消息说GFW使用的是曙光超级计算机集群)

还有”MPPE的128位session key是基于mschapv2的hash生成的,套了几次md4和sha1而已,如果获得了初始认证的key,如果对整个pptp vpn抓包了的话,可以推出后续的session key从而解密整个pptp vpn流量。所以说PPTP vpn缺乏forward secrecy,一旦key被破解就可以解密全部之前的流量“[3],简单来说就是MPPE所采用的算法是很落后的,很容易被破解,而且MPPE算法诞生于十几年前,现在GFW再差劲也拥有破解这一算法的能力了。

这里提一下:我看到有人反馈说当shadowsocks的加密连接算法设置为默认的RC4或略有改进的RC4-MD5时,用上一段时间就会被GFW封锁,需要改密码或IP才能继续使用,一开始我推测是特征检测,但理论上来说特征检测是不受加密方式影响的,换句话说如果GFW成功识别了shadowsocks与远程服务器建立连接时的特征,那么不管使用什么加密方式都会很快被GFW干扰,而不会只有RC4-MD5和RC4连接被干扰,那么最大的可能就是GFW可以破解RC4-MD5,而这同时也是MPPE使用的加密算法,那么PPTPVPN就不再安全了

L2TP则不含任何认证和加密功能,都是由 IPSec 负责的,IKE是 IPSec 的一部分;L2TP 本身只完成数据传输之类的工作,不负责认证和加密,需要配合其它安全协议使用,例如 L2TP/IPSec 这样的,当然这是可选的可以不用,不用的话就没有安全性可言了。(有人发现GFW经常性把L2TP/IPSec干扰为明文的L2TP[4])

用了也不能保证安全,L2TP/IPSec并未被GFW严重封锁,搞不好就是故意的,为了更好的欺骗我们翻墙党同时进行监控。(主要是前面提到的容易被GFW干扰成明文,至于加密是否牢固,要看VPN公司选择的加密算法,不过那些付费VPN公司没几个会介绍所使用的加密算法的。)

OPENVPN在12年18大之后就被特征检测搞得半残了,不过现在有些地方效果还不错。OPENVPN的身份验证机制很完善,隧道加密程度也非常强(OPENSSL加密算法)所以也被封锁的很严重[5]

很多人(包括以前的我)都认为GFW的唯一目的就是封锁。封锁一定是主要目的,原因我们翻墙党都很清楚,但请大家想一下为什么墙内还有那么多VPN服务提供商存在呢?和天朝相似的伊朗直接在法律中写上了使用VPN违法,但为什么到现在共匪都没有这么做呢?


共匪要用经济发展换取统治合法性,就不可能像朝鲜那样建立天朝局域网,否则人家外资怎么进得来呢?墙内还有一大堆企业依靠墙外的互联网服务呢(例如云计算平台)。GFW越来越高的误伤率已经引起了不少人的不满,共匪又从来不肯公开承认GFW的存在,害怕翻墙者增多以及自己制造的”墙内互联网是自由的“的谎言破灭。要说把翻墙的人都抓起来,也不现实:

一是翻墙的人太多(至少千万),而且不少人都不关心政治,抓了反倒起反效果,让更多人知道GFW的存在外加更关心政治;

二是GFW本身就没有任何法律依据,就算抓了,怎么判决呢?共匪官方说辞里面GFW是不存在的,要是因为翻墙抓人,不是直接自打脸了吗?

三是GFW误伤了太多科技类网站,搞得科研人员已经把翻墙作为必修技能之一了,要是谁翻墙就抓谁,科研人员怎么办?

四是不少翻墙软件都引入了流量混淆技术(例如TOR和赛风三),很多时候GFW都判断不出用户是不是在翻墙,怎么抓啊?

五是如果共匪真的什么都不顾,谁连接外网就抓谁,那么必然会激起众怒(去年封锁了github就引起不少程序员的抗议,最后GFW被迫解封),只会让自己快速倒台。

所以GFW采取了一个办法:故意让墙内活动着一批VPN服务提供商(这些公司都是随时会把用户流量日志送给共匪的),同时不断封锁那些无法控制的翻墙软件和付费VPN,对于可以轻易破解的PPTP和易被干扰的L2TP则故意放开一码,不惹怒太多人的同时又进行欺骗,让一些人以为自己安全,其实自己的一举一动都已经在共匪的监视当中了,如果进行了什么”煽动颠覆国家政权“的行动就会被查水表(我用流程图表示出这一过程)

还有一个证据:有人反映不少墙内VPN都没办法作为TOR的前置代理:”國內vpn貌似都是有問題的呀(都不支持Tor)
打開Tor瀏覽器顯示洋蔥頭是打x的,沒有變成綠色的洋蔥頭。
只有連接國外vpn,Tor的洋蔥頭才是綠色的“
”国内VPN不仅过滤域名,IP,甚至过滤协议,审查浏览记录,各种无节操“
”有可能如你所说——国内 VPN 对 IP 或域名进行了过滤,导致 TOR 无法用【国内】VPN 做前置代理。
另外,国内 VPN 的提供者,很容易受到朝廷的胁迫。
因此,朝廷很容易拿到这些 VPN 服务器上的访问日志。
所以,俺自己从来不用这类 VPN,也建议“高危人群”不要用“[6]
墙内VPN的客户端很可能就有后门,那么你的防线就会全面崩溃,所以不要使用墙内的VPN服务(除非你只打算浏览网页)
PPTP和L2TP VPN都不安全了,现在写出这篇科普具体说明一下。建议用VPN+TOR,共匪无法破解TOR流量,只能干瞪眼。


参考资料:
1,PPTP中文维基https://zh.wikipedia.org/wiki/%E9%BB%9E%E5%B0%8D%E9%BB%9E%E9%9A%A7%E9%81%93%E5%8D%94%E8%AD%B0
2,https://twitter.com/Vela1680/status/532068496788574208
3,http://www.v2ex.com/t/116609
4,http://www.v2ex.com/t/79364
5,https://www.x-berry.com/vpn-tunneling-protocol/
6,http://program-think.blogspot.com/2014/11/https-ssl-tls-1.html?comment=1416217711675&q=tor&scope=comment-content#1416217711675