架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 22251|回复: 1

[网络协议] ShadowsocksR和Shadowsocks的区别

[复制链接]
发表于 2017-11-10 12:41:35 | 显示全部楼层 |阅读模式

SS是原版,SSR是原版基础上衍生出来的第三方版本,兼容原版协议,比原版多了一些伪装功能(协议和混淆)。

网上关于SSR的一些讨论也比较多,支持和反对的都有,不过对于普通用户来说。不管是SS还是SSR,目前都可以正常帮你翻墙。

至于你下载哪个版本的客户端,完全取决于你购买的SS账号服务器上是装的SS还是SSR。最本身的SS功能,不管下载哪个客户端都可以用,只不过想要用SSR的功能(协议和混淆),就必须下载SSR的客户端。

不过不需要担心,我们提供的节点全部支持SS跟SSR 互相兼容.建议大家使用SSR。速度更快 防止被和谐!
前一段时间关于Shadowsocks的事情闹得沸沸扬扬的,最近显然大批小白已经被吸引到所谓的「Shadowsocks增强版」(ShadowsocksR)那边去了。作为用C++/Qt实现Shadowsocks业余开发者,打算对这两个炸子鸡简单地发表一下自己的看法。


ShadowsocksR

我不知道背后的开发者是不是有后台、有团队的,但是我知道的是其作者确实曾经违反GPL协议对其二次开发的Shadowsocks C#客户端闭源。这里我们不谈什么别的因素,事实就是如此,GPL白纸黑字很清楚的,违反了就是违反了。但是作者随后开源了代码库,也算是一桩事件的尾声,也就没有必要再追究。

事情在clowwindy清空其shadowsocks的代码仓库之后有了些新的变化。以下仅罗列事实:

ShadowsocksR作者曾表示要start from scratch写一个新的与shadowsocks无关的代理工具,并且不再更新ShadowsocksR
两三天后shadowsocks被勒令删除,原shadowsocks项目基本消失
ShadowsocksR作者表示原shadowsocks协议有缺陷(在下一节会进行讨论),重回焦点
ShadowsocksR作者建立了Google+ Group,更新了ShadowsocksR相关代码
Shadowsocks的安全性

好了,下面开始描述一下ShadowsocksR作者声称的Shadowsocks的协议缺陷在于IV的长度大部分情况下为16字节。后面这一半是正确的,不少加密算法使用的IV都是16字节长(特别是流行的AES和RC4-MD5),so what? 这并不会引入所谓的「缺陷」,理由如下:

每个TCP连接在握手阶段的IV是随机生成的,而不是根据密码计算得出,所以IV是无法预测的。
在没有密钥的情况下,即便截取到了这部分IV,也是无法解密密文的。而且每个新的TCP连接都会使用随机生成的IV,也就是截取到的不同TCP连接的数据之间基本没有什么共同点。而解密密文需要同时正确的IV和密码,而任何连接都没有关于密码的任何特征。
大部分IV长度为16字节,也就是256的16次方种可能的组合,在IV都一样的情况下暴力破解都已经不可能,更别说再加上第二点。
按照ShadowsocksR的做法,在首连接前加入所谓的混淆头也是没用的,自身的特征就明显,而且根本没有改变后来的IV还是固定长度的本质。因为第四个字节就告诉大家随机填充数据的长度了,进行所谓「探测」的时候只要跳过前面这一堆,一样能够去截取IV。而前几点已经说过了,你得到了这个随机IV也没用。而如果是用来探测的话,固定的第一位版本标识就是赤裸裸的特征送过去识别的。
ShadowsocksR作者目前给出了一个主动探测的脚本,可以用来检测服务器是否在运行shadowsocks,根据目前网上的测试报告来看,成功率不算低(但也非100%)。而关于这一点,clowwindy已经在原版给出了auto ban的解决办法,自动把这些恶意IP屏蔽掉。刚刚我在libQtShadowsocks里加了个补丁还有这个补丁屏蔽掉这种办法的探测,办法是按照随机概率返回随机长度的随机字串。
但是,这不代表shadowsocks的协议是完美无缺的,只是ShadowsocksR的「解决办法」是歪的,因为它的关注点本身就是歪的。我个人的想法是用公钥、私钥提高安全性,虽然对小白是不太友好了,但是安全性会得到提升,同时特征会减少(不用在握手阶段发送IV),shadowsocks协议需要向CCA安全方向发展。

05-Sep-2015 更新

给libQtShadowsocks服务端打上了autoban补丁,一旦发现header错误(无法解析)便将产生错误的IV和IP加入失败的IV和IP列表,如果失败的IV列表中已经存在该IV,或失败的IP列表中已经存在该IP,则将发送连接请求的IP加入黑名单,黑名单中的IP均直接拒绝连接。关于反侦测的最新详情请查看该issue,本文不再针对反侦测的应对办法进行更新。

06-Sep-2015 更新

本文只是想告诉大家不用过分担心Shadowsocks的安全性,现在的协议还没有出现重大漏洞,主要port的服务端也在更新来修复潜在威胁。和ShadowsocksR的作者也有在良好地沟通了,在白名单到来之前能撑一会儿是一会儿吧。

24-Sep-2015 更新

本文一直提的Shadowsocks安全性更多是指服务器的安全,目前的协议存在让服务器被暴力侦测而暴露进而被防火墙屏蔽(虽然探测的成本很高)的风险。传输内容的安全性是不用担心的,全都是工业级高强度加密算法(除了RC4和TABLE),破解传输的内容是几乎不可能的。

18-Nov-2015 更新

Shadowsocks通过加入一次验证提高了对抗CCA的安全性,各大ports已经陆续完成了支持。这里需要重申的是Shadowsocks的目标不是100% bug-free或100% bullet-proof,而是保证连接轻量快速的同时让主流攻击手段的成本高到一般无法实施。





上一篇:.net/c# 实现dns劫持源代码
下一篇:【VS2017】设定Nuget代理
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2019-8-9 08:32:59 | 显示全部楼层
学习了!感谢!
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-26 23:27

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表