信息来源:

uTLS 曝出指纹泄露漏洞:可被GFW利用高效识别代理流量

被广泛用于模拟真实浏览器指纹的 uTLS 库存在一个严重的指纹泄露漏洞,进而对主流的代理工具构成了严重威胁。

该漏洞会导致 uTLS 在模仿浏览器时,有 50% 的概率创造出一个矛盾的 TLS 指纹:即外部连接声称优先使用 AES 加密,但其内部 ECH 功能却使用了 ChaCha20。这种矛盾的指纹组合在真实浏览器中绝不会出现,因此可以被立即识别。此漏洞存在于 2023年12月至2025年10月之间的所有 uTLS 版本。

依赖 uTLS 进行指纹模拟的代理工具均受此影响。例如,在 Xray 中 uTLS 功能无法被关闭,且其 fingerprint 默认设置为 chrome,这会直接导致指纹泄露。用户需要手动将其修改为 firefox 或其他浏览器指纹以作规避。

此漏洞可被 GFW 等审查系统利用,从而极大地提高识别效率。虽然单个连接的泄露概率是50%,但由于代理工具会持续产生大量连接,审查系统识别出用户流量的成功率几乎可以达到100%。比较讽刺的是,如果你不使用 uTLS 伪装,GFW反而很难识别代理流量,因此如果没有必要请勿开启 uTLS 伪装。

啥事?

最近是不是感觉节点连接困难,疯狂丢包,或者干脆直接连不上了?这不是偶然,你很可能是被精准识别了。

简单说,现在有个新方法能认出你的流量是不是在“伪装”。特别是如果你用的 REALITY 协议,并且 指纹 (fingerprint) 设置的是 chrome,那就非常危险。

一旦被识别,轻则连接被干扰、疯狂丢包导致奇慢无比,重则IP或端口被临时拉黑,节点直接GG。

这事影响所有用 REALITY 的兄弟们,赶紧动手改一下保平安。

怎么办?

长话短说,解决办法就一句话:

赶紧把你客户端里所有节点的 TLS 指纹(fingerprint)从 chrome 换成 firefox 或者 random

⚠️ 核心原理,必看防晕:
这个修复动作,最终是在你的客户端上生效的。因为“指纹”是你电脑/手机发出的第一个信号,服务器本身没法改变它。下面的两种方法,都是为了让你的客户端用上新的配置。


具体怎么操作?

看你是怎么加的节点,两种情况:

情况一:用订阅链接的懒人办法(强烈推荐)

这是最高效的办法,让专业的人干专业的事。

  1. 去戳你家机场:直接给机场客服或者老板发消息,提醒他 uTLS 指纹出事了,请他从后台,把你订阅链接里的配置内容统一修改掉,把所有节点的 fingerprint 参数从 chrome 改成 firefox

    • 说清楚:他改的是你下载到的那个“配置文件”,而不是去动服务器本身。服务器不用动。)
  2. 你只管更新:等机场那边通知你改好了,你就在客户端里手动点一下“更新订阅”,客户端下载了新的配置,自然就用上了新指纹。一秒钟所有节点就都修复了,完事儿。👍

情况二:自己手动一个个加节点的苦力活

如果机场不给力,或者你是手动党,那就只能自己动手了。

  1. 在你的客户端软件里,找到节点列表。
  2. 选中一个节点,右键 -> “编辑”或者“修改”。
  3. 在配置详情里,仔细找找“流设置 (Stream Settings)”或者“传输”相关的选项。
  4. 点进去找到 TLS 设置,就能看到“指纹 (Fingerprint)”或者“uTLS”了。
  5. chrome 换成 firefox(首选)或者 random
  6. 保存!然后对你列表里每一个节点都重复一遍这个操作。

别嫌烦,为了能继续愉快地玩耍,这点操作是必须的。


高手进阶玩法 🚀

你要是懂怎么导配置,可以把所有节点导出成一个 jsonyaml 文件,用 VS Code 这类编辑器打开,一个“查找并全部替换”功能:

  • 查找"fingerprint": "chrome"
  • 替换为"fingerprint": "firefox"

一键搞定,再把改好的配置文件导回去,效率起飞!

好了,就这么多,赶紧去检查修改吧!