Sunday, January 17, 2016

关于Shadowsocks协议中加密的特征

经过一段时间在Twitter上玩,发现有一些信息或内容比较合适写下并记录下来,以便于以后搜索,以及方便讨论(感觉直接发github issue不大好)。而Twitter更像是发了以后过几天便会忘记的平台,所以打算博客重新开坑(前一文章都一年多前了)。不过由于时间原因,文章不会写很长。

这次想说说Shadowsocks协议中的加密。有的人说,他用rc4-md5的话,过一段时间就被屏蔽,而aes-256-cfb就好好的,所以rc4-md5被破解了。我对GFW是否能短时间解密rc4是持怀疑态度的,我自己还没有遇到过这种情况。如果你确实担心这个问题,同时又希望加解密速度能比较快,那么用aes-128-cfb或chacha20就足够了,如果还出现被屏蔽的情况,那么很可能是被特征识别,例如你主要使用的客户端不是C#版的话,特别是android/路由器这些设备,是存在被识别的可能性的。

如果你发现被屏蔽,或者速度变慢了,换个加密方式(IP地址不变)速度又升上去了的话,那么就是已经被特征识别了。而之所以换个加密方式又能用,是因为加密后数据包长度变了,特征变了,所以又好了,当出现这种情况的时候,估计你的服务器就得过一段时间换一个加密和端口了,或者尽量使用socks5或http方式的代理,减少使用路由和android连接的次数,最好直接使用C#版客户端(原版或SSR版均可),这个版本实现时对首个数据包有特殊处理,减少了首包特征。

所以如果你遇到被屏蔽的情况,一共有三种可能性:服务器被封端口(仅你的IP);服务器被封IP(仅你的IP);服务器被全面封IP;你的IP被封(这种情况无解)。
建议先尝试一下更换服务器端口看能不能连上,如果能,说明仅仅被封锁了端口,如果不能,再试试重启路由以获得一个新的IP(如果有分配一个动态公网IP的话)再连接,如果能,那么就是服务器对于你原来的地址被封IP,否则就是可能被全面封IP(可能性很小)。确认了封锁类型后,更换端口或等待解封。强烈建议你修改加密方式,因为原加密方式很可能被特征识别了,再使用很可能继续封锁的(至于之后用多久又可能会被封锁的问题,那等到被封锁了再换吧www,实在受不了的话也可以尝试更换协议或加混淆)。如果你看视频不多,那么可以尝试让tor走ss的代理,然后浏览器走tor,tor在连接成功后建立的连接数较少,会把多个连接的数据包混合在同一个TCP连接里发送,可减少被用于识别的样本数,同时获得匿名性。

这里解释一下你的IP被封这种情况。之前有位网友吐槽,他被封锁了,所有的工具到头来没有一个能用的,连teamviewer远程桌面都用不了,后来他发现只要流量一大,所连接的远程IP直接被网管丢到黑名单,还没到墙就已经被封了,这种是无解的。

11 comments:

  1. 抢个沙发,
    我配的是aes-256-cfb,而且一个人用。

    ReplyDelete
  2. 不错,支持技术文。还有一点,发现GFW的保密性做的好好,大家都都在猜实现方式,却没有一个能确定的。

    ReplyDelete
    Replies
    1. 这有些不同,因为各地运营商也搞了自己的一套系统,方式各地不大一样,这个很难猜,但GFW本身的技术倒是有公开的论文可以直接查

      Delete
  3. 不错,支持技术文。还有一点,发现GFW的保密性做的好好,大家都都在猜实现方式,却没有一个能确定的。

    ReplyDelete
  4. 直接被网管丢到黑名单简直233333333333,一定是移不动干的,移不动老干这样的事233333333333

    ReplyDelete
  5. 杭州电信遇到过...本地IP国外流量一大就挂掉,手动重启路由换了个IP马上正常。。

    ReplyDelete
  6. 关掉了Android上的SS,确实容易被检测到。

    ReplyDelete
  7. This comment has been removed by the author.

    ReplyDelete
  8. 现在Android上的SSR容易被探测吗。

    ReplyDelete
  9. 楼上各位,我从上周开始,家中所有win系统机器用ss均受阻。ping服务器地址延迟不带60ms,丢包率零,但一挂ss就基本上全time out。用安卓手机挂ss体验正常,YouTube不卡。已经尝试还原台机系统,重启路由器,重启ss服务器,更换ss服务器端口和密码,均无解。有哪位知道是什么缘故吗? 在单位和另外居所使用均不受影响。

    ReplyDelete
  10. 楼上各位,我从上周开始,家中所有win系统机器用ss均受阻。ping服务器地址延迟不带60ms,丢包率零,但一挂ss就基本上全time out。用安卓手机挂ss体验正常,YouTube不卡。已经尝试还原台机系统,重启路由器,重启ss服务器,更换ss服务器端口和密码,均无解。有哪位知道是什么缘故吗? 在单位和另外居所使用均不受影响。

    ReplyDelete