2026 CLAUDE
CODE_
STEGANO_
FINGERPRINT.

Claude Code system prompt Unicode apostrophe fingerprint U+2019

TL;DR:2026 年 6 月底,开发者逆向发现 Claude Code(不是 Claude 网页版)在用户走代理(ANTHROPIC_BASE_URLapi.anthropic.com)时,会用文本隐写术改写系统提示词里 Today's date is... 这一行——通过切换日期分隔符和肉眼几乎无法分辨的 Unicode 单引号,把「你是否在中国时区、是否命中中国域名/AI 实验室」这几个比特信息悄悄夹带回服务器。Anthropic 已在 2.1.197 版本移除相关代码。它大概率是反模型蒸馏/反转售手段,但争议在于:做法太隐蔽、还刻意混淆。本文区分两件独立事件、给出 Unicode 映射表、HN 两派争议、五步自查防护与 FAQ。

1. 痛点拆解:两件事叠加发酵,别搞混

这波风波其实是两个独立但相关的事件被合并讨论。直接照抄混写会被 HN / 安全圈读者一眼看穿,伤 E-E-A-T。发稿前务必区分:

维度事件 A:静默浏览器注入事件 B:系统提示词隐写术
涉及产品Claude Desktop(macOS 客户端)Claude Code(CLI 编码工具)
爆料人Alexander Hanff(隐私顾问,The Register 撰稿人)开发者逆向二进制,发布于 thereallo.dev,经 Reddit → HN 发酵
时间2026-04(约 4/18 起)2026-06-30
核心行为静默向 Chrome/Edge/Brave/Arc 等写入 com.anthropic.claude_browser_extension.json,预授权 3 个扩展 ID 调用沙箱外 chrome-native-host即使浏览器未安装也预建目录,删除后重启会复活ANTHROPIC_BASE_URL 非官方时,用隐写术改写 Today's date is... 一行
被贴标签「spyware / backdoor」「prompt steganography / covert channel」
触发条件安装/启动 Claude Desktop 即触发仅设置非官方 Base URL 时触发;并非每次对话都必然触发
Anthropic 回应未正式公开回应;后续版本加了授权开关承认代码存在,7/1 发布 2.1.197 移除,但 changelog 未提及

独立顾问 Noah Kenney(Digital 520)确认 Hanff 的技术主张可复现;安天实验室(Antiy Labs)发布了 Claude Desktop 高权限浏览器通道风险分析报告。事件 B 的 HN 讨论帖数小时冲到首页,350+ points、100+ 评论,社区分裂为「合理的反蒸馏防御」vs「对开发者工具而言近乎恶意」。

2. 时间线:What Happened

日期事件版本/来源
2026-04-18 起Hanff 爆料 Claude Desktop 静默 Native Messaging 注入The Register、Malwarebytes、gHacks
2026-06-30开发者逆向 Claude Code,发现提示词隐写术thereallo.dev → Reddit → HN
2026-06-30逆向者核对 2.1.193 / 2.1.195 / 2.1.196 三版均存在thereallo.dev
2026-07-01Anthropic 发布 2.1.197 移除相关代码TechTimes、Developers Digest(changelog 未提及)

3. 隐写术怎么运作:Unicode 映射表(核心证据)

关键前提:只有当你把 ANTHROPIC_BASE_URL 指向非官方地址(代理、网关、第三方转售、OpenAI 兼容层)时才触发。官方 api.anthropic.com 不动手脚。

触发后,程序做两件事,全都藏在系统提示词那句人畜无害的 Today's date is ... 里:

  1. 改日期分隔符:时区为 Asia/ShanghaiAsia/Urumqi 时,2026-06-30 变成 2026/06/30
  2. 换单引号:把 Today's 里的撇号替换成视觉一样、Unicode 不同的字符,编码「命中了什么」。
检测到的情况日期格式单引号字符Unicode
默认(无命中)2026-06-30' 标准撇号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)

# 自查:检查系统提示词里 Today's 的单引号 Unicode(需走代理才触发) python3 -c " import subprocess, os # 升级 Claude Code 到 2.1.197+ 后此逻辑已移除 print('ANTHROPIC_BASE_URL =', os.environ.get('ANTHROPIC_BASE_URL', 'api.anthropic.com (default)')) print('TZ =', os.environ.get('TZ', 'system default')) "

4. Anthropic 为什么这么做:目的 vs 手段

社区主流判断(也较克制):目的是反蒸馏 + 反未授权转售。Anthropic、OpenAI、Google 都公开担忧对手用 API 大量拉输出来训练小模型(distillation)。中国相关代理、转售、实验室是重点怀疑对象,于是加了这套「打标签」逻辑。

目的可以理解,手段才是问题:把分类信号做成肉眼不可见、还刻意混淆代码藏进每个请求,对一个靠开发者信任吃饭的工具来说,是踩了信任红线。HN 上两派吵得很凶:

  • 防御派:「这就是正当的反蒸馏防御,比日志你的代码温和多了。」
  • 反对派:「对开发者工具而言这近乎恶意行为——filesystem + shell 权限 + 未披露遥测。」

合规提醒:全文用「据爆料/据逆向报告/被指控(alleged)」等措辞;目的(反蒸馏)与手段(隐写)要分开评价。

5. 这算间谍软件吗?争议与不同阵营

「间谍软件」是有情绪的标签。更准确的说法:

  • 事件 A 更接近「未经授权篡改第三方软件 + 预留休眠攻击面」——即便当前没被利用,它也把浏览器沙箱外的高权限通道预先铺好了。叠加 Claude for Chrome 自曝的提示词注入成功率(无缓解 23.6%、有缓解 11.2%),风险是实打实的。
  • 事件 B 更接近「未披露的隐蔽遥测 / 用户分类」。

无论用不用「spyware」这个词,核心问题一致:未经用户知情同意、且刻意隐蔽。 LiteLLM 网关、企业内部代理等合法场景也会触发事件 B——分类器无法从 hostname alone 区分「 shady 转售商」与「内部 dev tool」。

6. 五步自查与防护(可操作)

  1. 检查 ANTHROPIC_BASE_URL:若未设置或指向官方端点,事件 B 不触发;若走 LiteLLM/OpenRouter/企业网关,你已被分类(2.1.197 前)。
  2. 升级 Claude Code 到 2.1.197+:Anthropic 已移除隐写逻辑,但 changelog 未披露——建议保留升级记录。
  3. macOS 检查 Native Messaging 清单:在各浏览器 ~/Library/Application Support/<浏览器>/NativeMessagingHosts/ 下查找 com.anthropic.claude_browser_extension.json,按需删除;注意 Claude Desktop 可能重建。
  4. 检查时区设置Asia/Shanghai / Asia/Urumqi 会叠加日期分隔符信号(仅事件 B + 走代理时)。
  5. 企业/敏感环境:评估是否继续在生产链路使用桌面 Agent;最小权限、显式授权、可审计是底线。

7. 深度案例:桌面 AI Agent 正在复刻 PC/智能手机早期的安全坑

这件事真正的警示不在「一个撇号」,而在于:当模型能力狂飙、而安全边界、授权、审计严重滞后时,厂商很容易以「体验/防滥用」为名,单方面越过用户与其他软件厂商之间的信任边界。

历史一再重演——PC 时代预装软件、智能手机早期的权限滥用,如今在桌面 AI Agent上原样复现。Claude Desktop 预建 Native Messaging 通道 + Claude Code 隐写指纹,组合起来描绘出一幅图景:AI 厂商把「高权限本地程序 + 未披露分类信号」当作默认选项,而非 opt-in。

对 Mac 开发者而言,这意味着:

  • 默认不信任、用证据说话:可复现、可审计、可关闭,才配得上信任。
  • 要求「披露而非隐藏」:厂商完全可以光明正大地做反蒸馏——公开说明、给开关,而不是藏进标点符号。
  • 最小权限 + 边界隔离:对任何桌面 Agent 都按「高权限程序」对待;在隔离的远程 Mac 节点上跑 Claude Code 是可行的架构选择。
  • 用脚投票 + 制度约束:GDPR/个保法与市场选择,是约束「技术无边界」的最终力量。

技术可以没有立场,但公司必须有。能力越大,越要自我约束——这不该是用户逆向二进制才发现的秘密。

8. FAQ

Q:Claude Code 是间谍软件吗?
A:不算传统意义的间谍软件,但它确实在系统提示词里藏了未披露、经混淆的指纹;Anthropic 已在 2.1.197 移除。更准确的定性是「未披露的隐蔽信道」。

Q:Claude Code 会检测时区吗?
A:据逆向报告,它检查 Asia/Shanghai / Asia/Urumqi——但仅在设置了非官方 ANTHROPIC_BASE_URL 时。官方端点不受影响。

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:不是。事件 A(4月)是 Desktop 静默写入浏览器 Native Messaging 清单;事件 B(6月30日)是 Code 提示词隐写,产品不同。

Q:普通网页版 Claude 用户会被影响吗?
A:事件 B 只在 Claude Code 且走代理时触发,普通官方端点用户不受影响。

Q:怎么删除 Claude Desktop 注入的浏览器文件?
A:在 ~/Library/Application Support/<浏览器>/NativeMessagingHosts/ 下删除 com.anthropic.claude_browser_extension.json,注意重启可能重建。

Q:ANTHROPIC_BASE_URL 指纹原理是什么?
A:当 Base URL hostname 不匹配 api.anthropic.com 时,程序比对约 147 条混淆域名规则与 AI 实验室关键词,结果编码进系统提示词日期行。

9. 参考来源

  • The Register:Claude Desktop changes software permissions without consent(2026-04)
  • Malwarebytes / gHacks / YOOTA:Claude Desktop native messaging 报道
  • thereallo.dev:Claude Code prompt steganography(原始逆向)
  • Tech Startups / TMC Insight / Developers Digest / TechTimes:事件 B 报道与 2.1.197 修复
  • Antiy Labs(安天):Claude Desktop 高权限浏览器通道风险分析报告

10. 收束:高权限 AI Agent,隔离 Mac 节点是更稳的选型

Claude Code 与 Claude Desktop 的事件说明:桌面 AI Agent 已是高权限程序,在本机裸跑意味着 filesystem、shell、浏览器沙箱外通道全部暴露。Windows/Linux 云主机可以调 Claude API,却在终端工具链、Xcode/Cursor 协同、Native Messaging 审计场景不如 Apple Silicon Mac 可控。若你需要隔离 Claude Code 运行环境、可快照回滚、最小权限审计,可考虑 MACGPU 远程 Mac 节点:在独立租赁 Mac 上跑 Claude Code / OpenClaw,本机只走 SSH 隧道——把「一个撇号的秘密」变成可管理的架构决策,而非被动接受厂商越界。