Shadowsocks/Vmess到底怎么选?安全性如何?

Shadowsocks/Vmess到底怎么选?安全性如何?

image

起因

入冬后,准确来说是在秋季,就感觉原来的小机场偶尔会出现大批节点无法连接的情况,今年1月底到期,在考虑几年了是否该更换跑路,不过好在相对便宜,故障一会就好,还能接受。

然而在将要到期的前几天的时间点上,它刚好又出现了中断,且持续了近1个小时,这对打工人来说不太能接受了,于是便舍弃了原来的小机场,投奔朋友推荐的更大一家。

image

但这里有两个问题,一个是用什么代理软件,第二个是用什么代理协议,这两个问题是逐步浮现的。

代理软件

由于个人职业与所处行业原因,接触墙外比较早(小时候到外服体验新版本游戏),也在之前就尝试自己搭过VPS,详见Try-for-V2Ray,后来由于Vultr质量真的不堪入目、WS+TLS需要的域名证书也是一笔费用且麻烦(才不是懒),项目算是咕掉了,但其中学习到的知识与相关技术还没全忘,用到的各种代理软件也还是多的。

Clash

你要我从中选择,移动端PC端我都会毫不犹豫的选择Clash,谁能拒绝可爱猫猫?但是,可爱猫猫在2023年11月寄掉了!与之相关的Core、Pro、X等都闻风而逝(只猫,影逝二度),仅留下永远停止更新的本地客户端。

image

虽然现在才1月底,最后一次release在3个月前,但时间越长,对于一个曾开源项目来说就越危险,必须要有可行的安全性选择(我也曾考虑过不这么麻烦,直接用之前的不就好了,然后我在互联网上“看着不错还蛮正经”的网站上获取的ClashX远程服务端口就被修改过了)。

V2rayU

撰写此文时,我新入职的公司使用的是MAC M2办公,在第一家公司就使用MAC的我并无什么不适应,但是ClashX在我入职前就化作灰烬,我在换机场前就已经在使用V2rayU,这是个专走Vmess协议的Proxy,虽然repo已有两年未更新了,但是release其实作者一直在偷偷更新。

image

然而,当我切换到新的机场订阅时,却发现机场节点的一句提醒:

因V2ray重大漏洞问题,暂时下架全部V2节点。请使用ssr/ss连接方式进行使用

image

代理协议

所以这是怎么回事?

我依稀记得我玩个人VPS那些年还在传VMESS协议更加安全,V2ray可以用更多的传输配置才对啊?这个重大漏洞是什么,CVE编号多少?(啊,这就是职业病)

V2ray重大漏洞

V2ray协议爆发了重大安全漏洞

漏洞的描述简单来说就是:

v2ray的TLS流量可被简单特征码匹配精准识别,vmess协议设计和实现缺陷可导致服务器遭到主动探测特征识别

这两方面的问题不论哪个都会使得用V2ray作为Proxy、VMESS作协议进行传输的墙外访问方式被轻松识别到,虽然不同于传统安全漏洞,但确实是严重问题。

服务器端的 V2ray 更新到 v4.23.4 以及之后的版本可以解决这一问题, 请大家尽快更新.

截止本文撰写,V2ray-Core的最新release已经到5.12.1,可是这个问题应该早已经被修复了,为什么现在订阅还有这样的提示,不让使用VMESS协议?

image

如何选择

绕一大圈,让我们回到文章的主标题:

Shadowsocks/Vmess到底怎么选?安全性如何?

先说结论:它们最新版本的实现都是安全的,也都是不安全的

image

为什么这么说?

对于这两种协议甚至更多种的传输协议,想要去了解它的具体实现及传输形式并不难,以Shadowsocks为例,在Shadowsocks协议解析一文中有清晰明了的叙述,Vmess你也应该都能找到类似的内容。

Shadowsocks/Vmess都会采用一定的加密算法,将传输内容进行加密,在浅谈一下Shadowsocks和VMess的安全性一文的评论中,enfein有提到“shadowsocks 协议现阶段还是安全的,但 VMess 在一些领域做得更好,例如使用依赖于时间的密钥生成办法”,这也佐证了我最初认为Vmess协议的安全性设计比Shadowsocks好的看法,那就能说明Vmess安全性更好吗?

image

主要漏洞

我们回忆一下前文提到的“V2ray重大漏洞”,虽然没有被直接破解出传输内容明文,但能精确地探测标识proxy服务器,与在黑暗森林中点火且大喊无异。

那么Shadowsocks有这样的问题吗?

浅谈一下Shadowsocks和VMess的安全性的原文中,作者例举了两个Shadowsocks的相关漏洞:

Shadowsocks AEAD 加密方式设计存在严重漏洞,无法保证通信内容的可靠性

shadowsocks redirect attack exploit

前者也会使proxy服务器因为流量特征被标识而封禁,后者则更致命地可导致传输内容密文被解析。

image

最佳实践

既然大家都是卧龙凤雏,有什么不那么烂的方式吗?

首先要明确的是,最新版本的协议都已经将已知漏洞修复,可以认为两者安全性相近,也都有可能被流量分析与主动探测(即使你采取了防范与伪装)。

针对Shadowsocks,防御GFW主动探测的实用指南一文中指出了Shadowsocks理应达到的最佳实践;相应的,Vmess支持和TLS组合,也可以实现动态端口等,这些在我搭建VPS的时候就已经是个人可以不算复杂的实现了。并且在【还Shadowsocks一个清白】Shadowsocks是如何被检测和封锁的,兼谈ss配置策略一文中,也有提到可以采用国内转国外双重代理的方式,规划ip白名单,规避一些探测(但文章内容主观性较强,观点接纳需分别):

image

此外,在搭建与使用的过程中,不能过分信任某些教程,并不是说它们的方法有问题,而是很多一键部署的脚本为了运行的稳定性与一致性,是写死了引用版本的,那么就很有可能还在利用存在漏洞的协议版本;同时也需要注意客户端的选择,个人现在使用的是Clash Verge Rev(回来吧我的牢猫!),Clash Verge的原repo也因为2023年11月的风波停止更新,Rev是抛弃了原Clash Core(repo removed)采用mihomo重新构建并仍在更新的版本。

image

那为什么不使用V2ray相关的客户端?

一方面是新的机场不支持Vmess(前情提要),一方面是V2ray Core做出的客户端确实没有猫猫可爱(猫猫也支持Vmess等多种协议),再一方面是有些V2ray的客户端的最新release用的Core版本仍处于风险版本(V2rayU:所以爱是会消失的对吗?)

image

机场顾虑

最后一个问题,既然Shadowsocks和Vmess都可以,为什么有些机场不提供Vmess节点了?

这个问题在关于科学上网的流行说法一文中可见一斑:

  • 大部分机场都是中转线路,使用 V2RAY 显得太重,消耗服务器资源大
  • V2RAY在防标识的场景下相比已经搭好的Shadowsocks没有明显优势

所以对于机场线路,公网隧道、专线,没有一定要再采用哪种协议的需求,更多地在考虑带宽等费用与访问流畅度。此外,机场躲避封锁的方式,在文章中也有谈及,同时文章中也有谈到订阅转换的技术,在一些机场也有提供(在逐渐收敛)。

个人小注

对于浏览访问来说,机场提供的服务已经完全够用,除了不能登录服务器进行配置这部分不便,这也是我为什么暂时放弃了自己搭建VPS的想法;

但对于未来的渗透测试来说,虽然简单的OOB可以Dnslog/Ceye,但如果要弹shell,或者境外测试,就还是需要国内云与国外云的服务,这些机场就完全无法支持了。

image

参考引用

Try-for-V2Ray

V2ray协议爆发了重大安全漏洞

Shadowsocks协议解析

浅谈一下Shadowsocks和VMess的安全性

Shadowsocks AEAD 加密方式设计存在严重漏洞,无法保证通信内容的可靠性

shadowsocks redirect attack exploit

防御GFW主动探测的实用指南

【还Shadowsocks一个清白】Shadowsocks是如何被检测和封锁的,兼谈ss配置策略

关于科学上网的流行说法

向阳行(Towards The Sun)

向阳行(Towards The Sun)

image

首先我得解释,我直到2023年1月17日,也就是除夕前几天,我还在更新另一篇斯卡蒂的赏金猎人之旅(SRC) 的内容
只不过一直没有push到博客上,包括现在写的这篇,今晚写的4篇,很大原因是数据传输的问题

要知道,在大公司,对员工的数据信息管得很严,要进行审查,我写的东西有很多涉及到漏洞细节
上次我把移动硬盘接电脑,里面有我的博客环境和写的文章,吓了领导一跳,以为我在拷数据啥的

那没办法,真不是我懒,不让搞啊!而且确实工作到没有时间……(那你为什么又开始写了呢?)
……
这就问得好了,“暑期大作战”开始了,周二周四都要加班到21点,周六还可能要来上班
我不想晚上继续加班,就做点自己的事情吧,晚上工作效率很低,真的
……
其实我真的搞不懂,一个人把自己全部精力投入在早上的8h里,效率真的不低了,还需要额外时间,是希望他早上8h不再那么专注,鼓励摸鱼吗?然后把东西放到晚上做?
(那肯定不是,是希望你继续做,做的更多)
那不就违背了多劳多得?甚至多劳少得、不得

image

所以望眼欲穿,开始思考自己的下一站;
所以望眼欲穿,期盼时间快快来到年关

image

这篇文章叫“向阳行”(Towards The Sun),是因为在写完这篇时,刚好随机到Rihanna的《Towards The Sun》,好一些的翻译自然是“逐日”,但是不想如此。

蓝色的地平线

蓝色的地平线

image

别问我为什么一个月多都没写博客感觉是面试通过了门面撑好了博客就不需要更新了( ̄ε(# ̄)☆╰╮o( ̄皿 ̄///)

其实不然(借口),主要是“搬家 + 居家隔离 + 天天核酸”的套餐搞得自己没有太多精力去把技术类的东西再搬过来……你想让我说因为放了几个月假没上班最后能有几天就一直在玩 Monster Hunter Rise:Sunbreak吗?!

所以嘛,到了现在我已经上了三个星期的班了,新工作环境还不错,但也多少有点压力,不过还好,至少现在我还能有时间在公司码几篇博客传上来,希望之后也有这样的时间来学习一些东西。

现在工作上接触到漏洞的发现、验证、利用场景比较多,之后应该会多更新整合这方面的学习内容;还会接收到很多SRC过来的漏洞,也会学习学习手法(但大多都比较简单应该不会碎片化记录,整合下可能性微存?

欸,又回到这种每天白开水预设的生活了,该说要每天能给自己掺点有意思的东西比较好(于是就发生了快凌晨2点被提生产环境上线复测漏洞的情况)

image

「不要被他人所命令所急迫,自己要有自己的度量」

话说今天是七夕欸,V我50(´◐∀◐`)

这篇文章叫“蓝色的地平线”(ブルー・ホライズン),是因为在写完这篇时,刚好随机到《记录的地平线》第三季ED,名为《ブルー・ホライズン》(天国的第四季)

繭色

繭色

image

等待了接近一周的简历投递终于陆续开始有了回应,明天就要先接受 XF 的面试了,当然是希望通过的,亦希望能够顺利与 WW 会师……

转眼一想,自己已经来到上海快整整一年了,时光飞逝,可惜公司楼下对角的那家居酒屋始终只是停留在了“透过帘布,往酒绿灯红中看了一眼”的程度,莫名可惜。

「若非前述情境,理应还有机会」

这篇文章叫“繭色”(茧色),是因为在写这篇时刚好随机到《在地下城寻求邂逅是不是搞错了什么》第三季第八话的插入曲,名为《繭色》。

语流

语流

image

写在前面

跌跌撞撞 磨磨蹭蹭 究极难产 在大二自己写好本地版本的个人主页后,自己便萌生出自己搭建博客,并且把个人主页改改 push 上去的想法,但是嘛……
就是因为懒 QAQ,导致主页没实现的功能现在还没去改(在做了在做了),个人博客也是一拖再拖,直到 2022 年的上半年被封在上海,自己也是好不容易从第一份工作中抽身出来,能够有时间来调剂调剂,并修补修补自己挖下的坑,很不好意思呢 XD(话说 XD 这个表情我一直是脑补成一只手握拳锤在头上然后闭一只眼,吐舌头说 simimasai 的画面)

总而言之

这片寄托于 Github 的小空间以后大概会被以下内容填充:

  1. 技术知识,包括自己的主业(安全工作中遇到的问题解决、自己实现的一些东西)
  2. 个人作品,应该主要是画画(可能还有皮套人?视频?)
  3. 心态思考,这个估计就是随笔之类的(深夜 emo,个人思考规划(迫真))
  4. 日记,主要是每天可能发生的事情的记录,比如今天是 2022 年 5 月 30 日,下午四点明日方舟会复刻覆潮之下活动,会有 Gladiia 的新皮肤,终结深海三人组就二队长没有皮肤的美式霸凌

记在后面

感谢 Artchen 大大的博客设计,Memory 项目的部署配置我应该还会出一篇教程简单说说我个人博客搭建遇到的问题,尤其是 Memory 项目距今稍久了
感谢某只不愿透露名姓的三咕咕尾在这次上海封锁中(对!是封锁,上海 从 未 封 城 !)和我被困在一起,以至于我没被饿死(这么说好像是我把他吃了一样……)
本来最后还想感谢终于不懒了的自己的,但发现不值得,懒到现在才写,不值得感谢(屑)
博客名“氕氘氚”是因为这三个字都是“氢”也就是“青”,希望自己多点积累吧
这篇文章叫“语流”,是因为我在写这第一篇博文开始时刚好随机到由《ぼかろころしあむ》中文重填词、乐正绫唱的《语流》,感觉很合适做这篇文章的标题
好了,就到这里,有意请致信 Szczecin@foxmail.com