就在最近, 协议 VLESS + REALITY 基于特征识别的代码开源,该流行的协议已不再安全,请在近期更改更换。

11 条回复
219 次浏览
前排打手

这对组合似乎已经被墙特征检测了,也正常,早晚的事

都听我说!

主要是特征过于明显,这个组合有两条不一样的 tls 信息(好像是这样讲的,git 上有人发帖说过这事)

我给出我使用四个 LLM 分别给出的 TL;DR:

  • claude-opus-4.6 (kiro-cli):
复制
技术上 7 分可信,表述上 4 分客观。漏洞真实存在且值得重视,但"VLESS 已死"的结论过于武断。更准确的说法是:VLESS/REALITY 的架构设计引入了不必要的攻击面,在对抗高级审查者时,其安全边际低于更简洁的 TLS 代理方案。
  • deepseek-v4-pro (claude-code):
复制
这个研究揭示了一个真实的、值得关注的协议架构问题,但其技术严重性被作者用戏剧化的"协议死亡"叙事和人身攻击包装,实际上是在一个真实的 bug 上附加了一个个人恩怨故事。VLESS 用户不必恐慌性迁移,但应该认识到:任何对 TLS
   做非标准魔改的协议在密码学意义上都是脆弱的。 长远来看,基于标准 TLS 的隧道方案(如 MASQUE、NaiveProxy)比自研协议具有更小的攻击面和更好的抗指纹能力。这不是因为 VLESS-cracker
  特别厉害,而是因为密码学工程的一项基本原则:不要自己发明协议。
  • gpt-5.5 xhigh (codex):
复制
这个 PoC 应被认真对待:它指出的是 REALITY 伪装模型中一个真实的、工程上可能被利用的主动识别面。对需要抗审查的人来说,它足够严重,不应被简单归类为“假阳性噪音”。

  但它不是“VLESS 被破解”,更不是严谨证明“协议死亡”。更准确的表述是:某些 VLESS+REALITY/Xray 部署在可观测真实握手并允许重放的前提下,存在可被主动探测放大的 TLS 栈差分指纹风险。作者技术点有价值,措辞和结论有明显情绪化和营销式
  夸张。
  • gemini-3.1-pro-preview (gemini-cli):
复制
这只是一场猫鼠游戏中,猫刚刚亮出了一件新武器。对于普通用户而言,无需过度恐慌,因为开源社区的响应速度通常很快,只需等待核心程序的后续版本修复防重放逻辑即可化解此劫。对于翻墙协议的开发者而言,这证明了“隐蔽性(Stealth)不能取
  代严密的密码学安全性(Security)”,未来任何代理协议的设计,都必须将“抗高阶状态化主动探测”作为默认的安全基线。

这不就是有人利用开发者提前发的思考、TODO 中提到可能出现的问题来进行攻击嘛...facepalm

我对 VLESS-Reality-cracker 的测试方案的观点

VLESS-Reality-cracker 的核心思路是:
如果被测试的 TLS 服务端是 Reality 服务端, 那么
重放抓包的 client-hello 数据包(1) 和 发送 {基于数据包(1)修改了 sessionID} 的数据包
会使得随后发出的探针数据包被不同的 TLS 系统处理,
一个是 Reality 服务端的 TLS 系统,
一个是"偷"证书的域名所在的 TLS 系统.
预期的测试结果是, 探针在两轮测试中得到的返回结果会不同.

从反面讲, 如果被测试的 TLS 服务端是"正常"TLS 服务端, 那么
探针在两轮测试中得到的返回结果会一致.

我的思考
如果一个探针能测试出来 Reality 服务端与"偷"证书的域名所在的 HTTPS 服务端(下称 target)的行为差别, 那么
搭建 Reality 服务端的人, 可以用这个探针测试 target, 得到结果后, 修改/配置 Reality 服务端, 使得 Reality 服务端在面对这个探针时, 作出与 target 一致的行为.
从而避免 Reality 服务端被这个探针检测.

考虑到流行的 TLS 系统不是无穷的, 那么
针对这些 TLS 系统的行为设计的探针, 数量/种类 不是无穷的.
我们可以设计尽可能多的探针来覆盖尽可能多的流行 TLS 系统.
然后用这些探针测试你准备"偷"证书的域名(target), 将得到的结果 配置到 Reality 服务端.
之后, 当 Reality 服务端再遇到探针时, 就可以作出与 target 同样的行为了.

在这样的前提下, 攻击方能成功判定 Reality 服务端的条件是:
攻击方掌握了一个你没有提前测试过的探针, 并且这个探针在测试 Reality 服务端和"偷"证书的域名(target)时 行为有区别.

发表一个评论

R保持