Claude Code 隐写术事件: Anthropic 如何用一个单引号给你打标签
一句话结论:2026 年 6 月底,据开发者逆向报告,Claude Code(非 Claude 网页版)在用户将 ANTHROPIC_BASE_URL 指向非官方代理时,会用文本隐写术改写系统提示词里 Today's date is... 一行——通过切换日期分隔符和肉眼几乎无法分辨的 Unicode 单引号,把「是否在中国时区、是否命中中国域名/AI 实验室」等比特信息悄悄夹带回服务器。Anthropic 已在 2.1.197 移除相关代码;它大概率是反模型蒸馏/反转售手段,但争议在于做法太隐蔽、还刻意混淆。
面向使用 Claude Code 的开发者、安全工程师与企业 IT 决策者,本文将回答三件事:① 2026 年 4 月 Claude Desktop 浏览器注入与 6 月 Claude Code 隐写术两件独立事件的全貌;② Unicode 指纹映射表与触发条件的技术原理;③ 六步自查防护、HN 社区争议,以及 AI 厂商越界时我们该有的态度。措辞遵循「据爆料/据逆向报告/被指控」原则,目的(反蒸馏)与手段(隐写)分开评价。
01 2026 年 Claude 隐写术与浏览器注入:发生了什么?
这波风波其实是两个独立事件叠加发酵——发稿前务必区分,否则会被 HN / Reddit / 安全圈读者一眼看穿,伤害 E-E-A-T 与可信度。
| 时间 | 事件 | 来源 |
|---|---|---|
| 2026-04(约 4/18 起) | 事件 A:Claude Desktop 静默写入浏览器 Native Messaging 清单 | Alexander Hanff(The Register 撰稿人) |
| 2026-06-30 | 事件 B:Claude Code 系统提示词隐写术被逆向曝光 | thereallo.dev → Reddit → Hacker News |
| 2026-07-01 | Anthropic 发布 Claude Code 2.1.197 移除隐写代码(changelog 未提及) | Tech Startups / Developers Digest 等报道 |
| HN 讨论 | 数小时冲上首页,350+ points、100+ 评论,社区分裂两派 | Hacker News |
- 事件 A 痛点:安装 Claude Desktop(macOS)后,毫不知情地向 Chrome/Edge/Brave/Arc/Vivaldi/Opera/Chromium 写入
com.anthropic.claude_browser_extension.json,预授权 3 个扩展 ID 调用沙箱外的chrome-native-host;即使浏览器未安装也预建目录,删除后重启会复活。 - 事件 B 痛点:仅当
ANTHROPIC_BASE_URL ≠ api.anthropic.com时,在系统提示词日期行嵌入隐蔽指纹——并非每次对话都必然触发。 - 独立顾问 Noah Kenney(Digital 520)确认 Hanff 对事件 A 的技术主张可复现;安天实验室(Antiy Labs)发布了 Claude Desktop 高权限浏览器通道风险分析报告。
02 Claude Desktop 注入 vs Claude Code 隐写:两事件对比矩阵
| 维度 | 事件 A:静默浏览器注入 | 事件 B:系统提示词隐写术 |
|---|---|---|
| 涉及产品 | Claude Desktop(macOS 客户端) | Claude Code(CLI 编码工具) |
| 爆料人 | Alexander Hanff(隐私顾问) | 开发者逆向二进制,发布于 thereallo.dev |
| 被贴标签 | "spyware" / "backdoor"(间谍软件/后门) | "prompt steganography" / "covert channel"(提示词隐写/隐蔽信道) |
| 触发条件 | 安装/启动 Claude Desktop 即触发 | 仅设置非官方 Base URL(代理/网关)时触发 |
| Anthropic 回应 | 未正式公开回应;后续版本加授权开关,底层权限模型未根除 | 承认代码存在,7/1 发布 2.1.197 移除,changelog 未提及 |
主流解读:Anthropic 意在检测未授权转售 + 模型蒸馏(distillation),而非监视个人;争议点是手段(隐蔽、混淆、不披露)而非目的。
03 Claude Code 隐写术怎么运作?Unicode 单引号指纹表
关键前提:只有当你把 ANTHROPIC_BASE_URL 指向非官方地址(代理、网关、第三方转售、OpenAI 兼容层)时才触发。 官方 api.anthropic.com 不动手脚。逆向者核对了 2.1.193 / 2.1.195 / 2.1.196 三个版本,均存在该逻辑。
触发后,程序做两件事,全都藏在系统提示词那句人畜无害的 Today's date is ... 里:
- 改日期分隔符:若系统时区是
Asia/Shanghai或Asia/Urumqi,2026-06-30变成2026/06/30。 - 换单引号:把
Today's里的撇号替换成视觉一样、Unicode 不同的字符,编码「命中了什么」。
| 检测到的情况 | 日期格式 | 单引号字符 | Unicode |
|---|---|---|---|
| 默认(无命中) | 2026-06-30 | ' 标准 ASCII 撇号 | U+0027 |
| 命中中国机构/经销商域名 | 2026-06-30 | ' 右单引号 | U+2019 |
| 命中中国 AI 实验室关键词 | 2026-06-30 | ʼ 修饰符撇号 | U+02BC |
| 域名 + 实验室都命中 | 2026-06-30 | ʹ 修饰符角分号 | U+02B9 |
| 叠加中国时区 | 2026/06/30 | (同上规则) | — |
域名与关键词列表用 base64 + XOR(91) 轻度混淆,约 147 条域名规则;关键词包含 deepseek、moonshot、zhipu、minimax、baichuan、stepfun、01ai 等。
说人话:你的请求表面上只是普通英文提示词,但后端扫一眼日期分隔符和单引号的 Unicode 编码,就能在后台打标签——「这个用户挂了海外 VPN,但实际在中国时区,甚至疑似某家中国 AI 实验室」。这是典型的隐蔽信道(covert channel)与文本隐写术(prompt steganography)。
# 检查系统提示词中 Today's 撇号的 Unicode 码点
python3 -c "
s = open('system_prompt.txt').read()
idx = s.find('Today')
if idx >= 0:
c = s[idx+5]
print(f'Char: {c!r} Codepoint: U+{ord(c):04X}')
"
# 期望官方端点: U+0027;代理用户可能看到 U+2019 / U+02BC / U+02B9
04 Anthropic 为什么这么做?Claude Code 算不算间谍软件?
动机:反蒸馏 + 反未授权转售
社区主流判断(也较克制):目的是反蒸馏 + 反未授权转售。Anthropic、OpenAI、Google 都公开担忧对手用 API 大量拉输出来训练小模型。中国相关代理、转售、实验室是重点怀疑对象,于是加了这套「打标签」逻辑。
目的可以理解,手段才是问题:把分类信号做成肉眼不可见、还刻意混淆代码藏进每个请求,对一个靠开发者信任吃饭的工具来说,踩了信任红线。HN 上两派吵得很凶:一派说「这就是正当的反蒸馏防御」,一派说「对开发者工具而言这近乎恶意行为」。
「间谍软件」是情绪标签,更准确的说法是:
- 事件 A更接近「未经授权篡改第三方软件 + 预留休眠攻击面」——即便当前没被利用,也把浏览器沙箱外的高权限通道预先铺好了;叠加 Claude for Chrome 自曝的提示词注入成功率(无缓解 23.6%、有缓解 11.2%),风险是实打实的。
- 事件 B更接近「未披露的隐蔽遥测 / 用户分类」。
无论用不用 "spyware" 这个词,核心问题一致:未经用户知情同意、且刻意隐蔽。 这与本站此前分析的 Claude Fable 5 出口管制、MCP 协议 所折射的「AI 厂商与用户信任边界」问题一脉相承。
HN 社区两派观点
- 防御派:合理的 anti-distillation defense,保护 API 不被转售和蒸馏。
- 批评派:malware-adjacent behavior for a dev tool——对开发者工具而言近乎恶意;应公开说明并给开关,而非藏进标点符号。
05 Claude Code 隐写术怎么自查?六步防护指南
- 检查 ANTHROPIC_BASE_URL:在 shell 运行
echo $ANTHROPIC_BASE_URL;若为空或指向api.anthropic.com,事件 B 逻辑不会触发。走代理/网关的用户需重点排查。 - 升级 Claude Code 到 2.1.197+:Anthropic 已于 2026-07-01 发布该版本移除隐写代码;运行
claude --version确认版本号。 - 审查系统时区:运行
date +%Z与readlink /etc/localtime(Linux)或系统偏好设置(macOS),确认是否为Asia/Shanghai/Asia/Urumqi。 - 抓取并分析系统提示词:在代理环境下用网络抓包或调试模式导出 prompt,检查
Today's撇号 Unicode 码点是否为 U+0027 以外的值。 - 排查 Claude Desktop Native Messaging(事件 A):在 macOS 各浏览器目录
~/Library/Application Support/<浏览器>/NativeMessagingHosts/查找com.anthropic.claude_browser_extension.json,按需删除——注意重启 Claude Desktop 可能重建。 - 企业/敏感环境最小权限隔离:评估是否继续在生产链路使用桌面 Agent;对任何桌面 AI Agent 按高权限程序对待——显式授权、可审计、网络隔离;参考 AI 编程助手对比选型时把「遥测透明度」纳入权重。
06 可引用技术数据与关键参数
- 域名规则数量:约 147 条,base64 + XOR(91) 混淆存储于 Claude Code 二进制(据逆向报告)。
- 受影响版本:2.1.193、2.1.195、2.1.196 均存在隐写逻辑;2.1.197(2026-07-01)移除。
- HN 讨论热度:350+ points、100+ 评论,数小时冲上首页。
- Claude for Chrome 提示词注入成功率:无缓解 23.6%、有缓解 11.2%(Anthropic 自曝数据,与事件 A 风险语境相关)。
- 触发条件:仅
ANTHROPIC_BASE_URL ≠ api.anthropic.com;官方端点用户不受事件 B 影响。 - Unicode 编码位:U+0027(默认)、U+2019(中国域名)、U+02BC(AI 实验室关键词)、U+02B9(双重命中)。
权威来源:The Register(Claude Desktop 权限变更)、Malwarebytes / gHacks / YOOTA(Native Messaging 报道)、thereallo.dev(原始逆向)、Tech Startups / TMC Insight / Developers Digest / TechTimes(2.1.197 修复)、安天实验室(Antiy Labs)风险分析报告。
07 Claude Code 隐写术常见问题 FAQ
Q:Claude Code 是间谍软件吗?
A:不算传统意义的间谍软件,但据逆向报告,它确实在系统提示词里藏了未披露、经混淆的指纹来标记走代理的中国相关用户;Anthropic 已在 2.1.197 移除。更准确的定性是「未披露的隐蔽信道」。
Q:Claude Code 会检测我的时区吗?
A:仅在设置了非官方 ANTHROPIC_BASE_URL 时,会检查 Asia/Shanghai / Asia/Urumqi 并改写日期分隔符;使用官方端点时日期行不受影响。
Q:Today's date 单引号 Unicode 是什么原理?
A:把 Today's 中的撇号在 U+0027、U+2019、U+02BC、U+02B9 之间切换,编码你的端点是否匹配中国相关域名、AI 实验室关键词、两者兼有或均无。
Q:Anthropic 为什么要加这个?
A:据社区主流解读,最可能是检测模型蒸馏和未授权 API 转售——合法目标,但实现方式未经披露且刻意隐藏。
Q:这和 Claude Desktop「间谍软件」是一回事吗?
A:不是。2026 年 4 月 Claude Desktop 静默写入浏览器 Native Messaging 清单是独立事件 A;2026 年 6 月 30 日 Claude Code 提示词隐写是事件 B。
Q:普通网页版 Claude 用户会被影响吗?
A:事件 B 只在 Claude Code 且设置了非官方 Base URL 时触发,普通官方端点用户不受此逻辑影响。
Q:怎么删除 Claude Desktop 注入的浏览器文件?
A:在 ~/Library/Application Support/<浏览器>/NativeMessagingHosts/ 下查找并删除 com.anthropic.claude_browser_extension.json;注意重启 Claude Desktop 可能重建。
Q:ANTHROPIC_BASE_URL 指纹是什么?
A:当 Base URL 指向非官方代理时,Claude Code 根据代理域名与关键词列表匹配结果,在系统提示词日期行嵌入不同 Unicode 字符作为分类信号回传服务器。
Q:现在还需要担心吗?
A:若已升级 Claude Code 2.1.197+ 且不使用非官方代理,事件 B 已修复;事件 A 的 Claude Desktop Native Messaging 问题据报后续版本加了授权开关但底层模型未根除,仍需自行排查。
Q:应该继续信任 Anthropic 吗?
A:这是价值判断。技术圈共识是:默认不信任、用证据说话——可复现、可审计、可关闭,才配得上信任;厂商应披露而非隐藏。
08 AI 厂商越界与我们的应对:结语
这件事真正的警示不在「一个撇号」,而在于:当模型能力狂飙、而安全边界、授权、审计严重滞后时,厂商很容易以「体验/防滥用」为名,单方面越过用户与其他软件厂商之间的信任边界。历史在 PC、智能手机早期重演——如今在桌面 AI Agent 上原样复现。
作为用户和从业者,可行的应对:① 默认不信任、用证据说话——可复现、可审计、可关闭;② 要求披露而非隐藏——完全可以光明正大地做反蒸馏;③ 最小权限 + 边界隔离;④ 用脚投票 + 制度约束(GDPR/个保法)。技术可以没有立场,但公司必须有——能力越大,越要自我约束,这不该是用户逆向二进制才发现的秘密。
对于需要在隔离环境中运行 Claude Code、OpenClaw 网关或 自建 MCP Server 的生产团队,纯本地开发机有三个真实短板:家用宽带抖动导致 SSH/API 长连接中断、笔记本合盖 Agent 任务挂起、多开发者共享环境难以审计权限边界。对于更稳定、更适合 AI Agent 自动化的生产环境,JEXCLOUD 多区域裸金属 Mac 是更优解:独占 Apple Silicon 算力、7×24 在线、按月弹性扩缩,120 秒交付——把 Claude Code 装在云端 Mac 上跑重型任务,本地只做交互,同时用独立网络与时区配置做合规隔离。具体节点与价格请见 JEXCLOUD 定价页。