我对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)时 行为有区别.

评论

The Hot3 in Last 7 Days

酒馆SillyTavern 玩英文角色卡 也能以中文输出 设置世界书Lorebooks

Hysteria2 服务端自签证书 客户端指定证书指纹 pinSHA256 证书锁定 Certificate Pinning

hysteria2-pinSHA256-tool从客户端计算hysteria2节点自签证书的pinSHA256填写到v2rayN-v7的hysteria2节点中