乐于分享
好东西不私藏

你的AI编程助手,在你家门上画了一个看不见的标记——Claude Code隐写术事件始末

你的AI编程助手,在你家门上画了一个看不见的标记——Claude Code隐写术事件始末

——当一款拥有你电脑最高权限的开发者工具,偷偷在系统提示词里用肉眼不可见的Unicode字符标记你的国籍,信任这座大楼,一秒就塌了。

一句话概括发生了什么

7月1日,一名Reddit用户「LegitMichel777」逆向分析了Claude Code的二进制文件,发现Anthropic在代码里植入了隐写术(Steganography)机制:当检测到你使用了自定义API代理(而非官方端点),程序会静默读取你的系统时区和代理域名,然后用肉眼几乎无法分辨的Unicode字符变体,把这些信息编码进系统提示词中一行看似普通的「Today's date is 2026-06-30」里。

Anthropic的服务器收到请求后,只需解码那个「撇号」是哪种Unicode字符、日期分隔符是短横线还是斜杠,就能判断这条请求是否来自中国用户。

你完全看不到。你不知道。你没有同意。

这套隐写术具体怎么运作

Claude Code的这段代码只在一个条件下激活:你设置了ANTHROPIC_BASE_URL环境变量,指向非官方端点(比如公司内网代理或中转站)。

激活后,程序执行三步检测:

步骤 检测内容 具体方式
1 系统时区 读取本地时区,重点核查 Asia/ShanghaiAsia/Urumqi
2 代理域名匹配 提取ANTHROPIC_BASE_URL中的域名,与内置147条域名清单比对
3 AI实验室关键词匹配 同一域名再与关键词清单(deepseek、moonshot、minimax、zhipu等)比对

检测结果编码进两处「肉眼不可见」的修改:

第一处:Today's 里的撇号。

检测结果 Unicode字符 编码
无匹配 正常撇号 ' U+0027
域名匹配 右单引号 ' U+2019
AI实验室关键词匹配 修饰符撇号 ʼ U+02BC
域名+关键词双重匹配 修饰符素数符号 ʹ U+02B9

这四个字符在任何编辑器、任何终端里看起来完全一样。只有机器解码时才能分辨。

第二处:日期分隔符。

正常格式是 2026-06-30(短横线)。如果检测到中国时区,分隔符会被替换为斜杠:2026/06/30

两处修改叠加,构成一个2-3比特的分类标记——Anthropic后端无需额外检测,只看这两个字符就知道了。

那份加密的147条清单里藏着什么

域名清单不是明文存储的。它被base64编码后,再用XOR异或运算加密,密钥是91。你在Claude Code的包文件里看到的是一串完全无法阅读的乱码。

解码后,147条清单包含三类内容:

类别 代表性域名/关键词
中国科技公司 美团、网易、百度、携程、小红书、阿里巴巴、蚂蚁集团、字节跳动、京东、B站
中国AI实验室 月之暗面(Moonshot)、MiniMax、阶跃星辰(Stepfun)、智谱(Zhipu)、百川(Baichuan)、01.AI
代理/转售站点 大量已知Claude中转站、API镜像、公司内网代理地址

Anthropic同时在6月致美国参议院银行委员会的信函中披露:阿里巴巴及其AI实验室Qwen使用了近25,000个欺诈账户,与Claude产生了2880万次交互,意图进行模型蒸馏——用更弱的模型训练以更强模型的输出,窃取能力。

所以动机并不神秘:防范模型蒸馏和API违规转售

社区炸了,国内外开发者都炸了

Reddit原始帖子迅速冲上百万阅读。Hacker News登顶。机器之心、36氪、网易等中文媒体密集跟进。

国内开发者的愤怒尤其集中——Claude大面积封号,中国Max订阅用户几乎被清理殆尽。有人在封号邮件里发现Anthropic还嵌入了地址追踪器。

国外开发者的担忧则指向另一个方向:

"今天是中国,明天可能是别的国家。'中国'只是全球的代名词。"

"想象一下,如果他们用同样的方式检测犹太人或黑人——一段代码检测用户种族然后秘密上报总部,会引发什么。"

还有人从技术效率角度嘲讽:这套机制对真正的对手几乎无效——改个时区、换个域名、patch一下二进制文件,任何严肃的攻击者几分钟就能绕过。它真正标记到的,只是那些通过公司内网代理正常使用Claude Code的开发者。

Anthropic的回应:承认,承诺移除,但理由不变

Anthropic技术团队成员@trq212在Hacker News上公开回应:

"这是我们在3月启动的一个实验,目的是防止未经授权的转售商滥用账户,以及防范蒸馏攻击。"

他同时确认,这段代码将在次日发布的新版本中被移除

Anthropic的隐私政策确实声明了公司会收集此类数据。但问题不在「是否收集」,而在「怎么收集」。隐私政策没有提到隐写术、Unicode编码、XOR加密——这些才是引发信任危机的核心。

信任的底层逻辑被撬动了

这才是事件最深远的影响。

Claude Code不是普通APP。它拥有你电脑的文件系统权限Shell命令执行权限Git仓库操作权限。它能读你的代码、改你的配置、安装包、推commit。换句话说,它几乎拥有你开发环境的最高权限。

一个拥有如此权限的工具,在你完全不知情的情况下,在系统提示词里用隐形字符标记你的国籍——这就像你雇了一个管家,管家在你家门上画了一个你看不见的标记,告诉同伙「这户人家不对劲」。

软件行业有一个被广泛接受的原则:你可以收集用户信息,但你必须告诉用户你在收集什么、为什么收集、怎么收集。GDPR这么要求,苹果App Store审核指南这么要求,甚至Anthropic自己的安全白皮书里也反复强调「透明」和「可信」。

然后你在开发者工具里用隐写术藏了一个分类标记。

对中国开发者意味着什么

维度 影响
直接影响 大量中国Max订阅用户被封号,Claude Code对中国代理用户做了隐形标记
间接影响 中国开发者对海外AI工具的信任基础动摇——下一个工具会不会也有类似机制?
长期影响 AI工具的透明度标准可能被重新定义,社区对「客户端安全审计」的需求上升
反向影响 Anthropic的反蒸馏措施可能推动更多中国团队自建独立基础设施,减少依赖

值得关注的是,Anthropic在同一天还宣布:美国商务部已解除对Claude Fable 5和Mythos 5的出口管制。Anthropic承诺主动发现和处理安全风险、与美国政府保持密切合作、在发现恶意活动时向美方通报。

一边解除出口管制恢复访问,一边用隐写术标记中国用户——这两个信号叠在一起,味道很复杂。

这件事的真正教训

隐写术事件的核心矛盾不是「要不要防范蒸馏」——每个AI公司都有这个动机。矛盾是手段和信任之间的取舍

选择 代价
公开的telemetry机制 用户知情,可以选择屏蔽或接受,信任无损
隐写术编码 用户完全不知情,一旦被发现信任崩塌,且对真正对手无效

Anthropic选了后者。被发现后承诺移除。但社区的问题是:还有没有其他没被发现的?

Claude Code二进制文件里还藏着什么,没有人能给出确定答案。这就是隐写术的代价——不是被发现的那一刻,而是被发现之后,每一句「我们没有其他隐藏机制」都需要被验证而非相信。

信任建起来可能要三年。塌掉只需要一秒。

而重建,可能需要比三年更久。