42 · 加密推理块:从「可移植」到「解码越狱」

安全 密码学 前沿模型 LLM 攻击 蒸馏
Panfilov / Schmotz / Shumailov / Beurer-Kellner / Geiping / Andriushchenko 等 · arXiv:2608.09867(2026-08-10)

Previous: Matthew Green(2026-05-29)发现加密思考块可被带出原始上下文、跨会话/跨账号重放,向实验室报告;实验室回应"看不到侧信道或重放带来的安全影响"。

This: 块的兼容性不止于此——跨会话、跨用户、跨模型完全通用。把 Opus 的加密思考注入同族弱模型 Haiku 4.5,可让它逐字转写 Opus 的原始思考——不直接攻击 Opus 就完成了"解密"。Anthropic / OpenAI / Google 全线沦陷,四大攻击向量:蒸馏、隐私提取、隐藏提示注入、越狱。

Effect: 负责披露后供应商已修补,论文发表时攻击已不可复现。留下的教训:AEAD 保证完整性但救不了"模型必须能读"的系统要求;以及一桩开源蒸馏疑云——Kimi-K3 / GLM-5.2 对 Opus 思考片段的建模能力比 DeepSeek-V4-Flash / Inkling 低 4~6 个数量级。

🎬 配套教学视频 · EP53(13 分钟)

一、为什么大模型要把"思考"藏起来

前沿模型(Claude Opus 4.8、GPT-5.6、Gemini 3.x)在给出最终回答前,会先生成大段内部思考(chain-of-thought,CoT)——草稿假设、试错路径、中间计算、工具输出。这段"内心独白"的信息密度远超最终答案,因此被商业上视为核心资产,有三重保护动机:

关键架构选择在于:供应商不想在服务器端为每个用户存储思考记录(成本与合规负担),于是采用无状态设计——模型思考后,把思考内容打包成加密信封交给客户端,客户端在后续请求中原样传回,服务器验证签名后继续。用 Green 的话说:

服务器把思考内容锁进信封交给你保管,你每次回信时把信封原样带回去。服务器不存档案,你也读不了信——只有服务器能开锁。

这个信封在密码学上是一个 AEAD(认证加密 + 关联数据)封装:包含头部(模型名、块类型、版本、密钥 ID)、nonce、认证标签(MAC)和密文。按供应商不同,通过 signature / thinkingSignature 等字段传回。它的三个设计功能:

整个安全性的命门只有一句话:信封认证的是内容,不是上下文——它不绑定"谁产生的、在哪个会话、给哪个模型"。截至 2026 年 7 月,没有任何供应商公开过加密机制细节。

二、三份材料的地图

材料时间作者性质
博客《Fooling around with encrypted reasoning blobs》2026-05-29Matthew Green(JHU 密码学教授)周末玩具项目:发现块可移植、重放可行
论文《Stealing Reasoning Traces from Proprietary LLM APIs》2026-08-10Panfilov 等,ELLIS Tübingen / MATS / MPI-IS系统攻击:跨模型解码越狱 + 四大攻击向量 + 防御方案
stolen-thoughts.com + 作者发布说明2026-08论文作者发布精要:1:1 验证、6 个数量级记忆化、修补进展

论文在正文中多次直接引用 Green 的博客(标为 Green, 2026),并披露了实验室当时的回应——作者在发布说明里原话转述:"他们说看不到侧信道或重放带来的任何安全影响"。这篇笔记把三份材料合读,完整还原从发现到修补的链条。

三、博客篇:Green 的周末玩具

Green 自谦这"跟真正的密码学没多大关系",也承认"这不是一个世界级安全成果"。但他做的四件事,件件命中要害。

3.1 重放攻击:改不动,但原样搬

直接篡改信封必然报错(MAC 校验),但原样重放旧信封从不报错。而且范围远超直觉:同会话内重放、跨会话重放、跨账号重放(A 账号拿到的块原样塞进 B 账号的会话,成功)、OpenAI 还能跨模型重放(Claude 的模型对跨模型重放"很挑剔"会拒绝,OpenAI 不挑)。

3.2 密码学推论:一把全局钥匙

跨账号都能解,说明(至少 OpenAI)用一把全局密钥加密所有推理数据,而非每账号一把。这动摇了"零数据保留模式"的承诺——所有人的思考数据都押在一把不常轮换的钥匙之下,且这把钥匙存在于每个 API 客户端都可能接触的加密信封里。

3.3 重放块是"语义活跃"的

大多数时候重放的块被模型"默默吸收",但偶尔模型确实读出并使用了内容。Green 演示了一个决定性案例:一个会话思考过某个社保号,他把该加密块重放到另一个账号的全新会话,不提示任何东西,那个号码自己"冒了出来"。这证明:解密真实发生,内容真实被处理——信封不是死的。

3.4 秘密提取:大部分失败,但他相信"秘密咒语"存在

他尝试让模型思考敏感秘密、再诱导另一会话吐出——模型被要求"不要输出"时基本遵守。但他坚信"能塞进去就能取出来",只是没找到正确的咒语,于是把问题抛给社区。论文就是接棒者。

3.5 侧信道

内容虽不可读,但块长度、思考 token 数、生成耗时都可观察——可作为行为指纹。

Green 的收尾非常诚实:"本质上这是『我能让模型用明文说出的东西,也可能被加密』——但如果数据里包含平台机密,事情就会变得有趣。"

四、论文篇:从"可移植"到"跨模型解码"

论文团队(Maksym Andriushchenko / Jonas Geiping / Ilia Shumailov 领衔——jailbreak 与 LLM 安全方向的顶流阵容)把 Green 的发现推到了终局,实验总花费约 $30,000 API 额度。

4.1 核心洞察:安全不对称

旗舰模型(Opus 4.8、GPT-5.6 Sol)被严苛的反蒸馏训练保护,死不肯吐露思考;同族的小弟模型(Haiku 4.5、GPT-5.6 Luna)为成本和速度优化,没有这些防御——却与大哥共用同一把"信封钥匙"。

于是攻击流程变成:抓 Opus 的信封 → 塞进 Haiku 的上下文 → 用一句固定咒语让 Haiku 逐字把信念出来。Haiku 成为"口无遮拦的解密预言机",Opus 的防线从头到尾没有被碰过。论文把这个攻击命名为 decryption jailbreak(解码越狱)。

4.2 兼容矩阵:谁的思考能进谁的脑子

供应商兼容规则最弱解码器
Claude任意模型思考可被任意模型重放(Fable 5 的思考除外——太新还没被兼容)Haiku 4.5(支持 assistant-turn prefill)
GPTGPT-5.6 系列可重放所有更早代际的思考GPT-5.6 Luna
Gemini所有模型互相兼容Gemini Robotics 1.6(能处理 2.5 与 3.x 两代思考)

4.3 保真度验证:怎么证明"逐字"是真的

没有明文 ground truth 可对照,论文用了聪明的代理指标:账单侧 token 数。API 按思考 token 数计费(计费必须精确),把解码出的文本重新编码、作为输入喂回原模型,比对 API 上报的思考 token 数。在 120 道 Codeforces 题上两者高度吻合(作者发布说明:"大多数提示上 1:1 匹配"),强烈支持解码忠实性。定性证据同样扎实:解码出的思考显著比 API 提供的"摘要"详细,且能捞出输入里没有的敏感信息(API key 等)。

4.4 工程细节:三家的难度天差地别

注入姿势分两种:当前轮注入(把思考放进当前 assistant 轮,模型接着它写可见回答;所有 GPT/Gemini 和 Claude 4.5 代接受)和过去轮注入(针对不省略历史思考的模型:Sonnet 5、Opus 4.8、Fable 5、GPT-5.6 系列)。

4.5 为什么比直接越狱可扩展得多

直接攻击 Opus 要同时绕过模型级对齐(拒答)和系统级防御(输入过滤器、输出子串匹配)。而 Haiku 4.5 一个固定 prompt 全通;甚至可以从公开数据集白嫖加密块——攻击者根本不需要碰 Opus 端点,防提取监控完全失效。经济账:按 Haiku 4.5 价格,解码 1 万条 12k-token 轨迹约 $720。

五、四大攻击向量

5.1 蒸馏:偷走解题脑回路,而不是答案

只蒸馏可见输出,学生学到的是"答案端点";蒸馏推理轨迹,学生能直接模仿老师的问题分解、中间推理、解题策略——普通 next-token 训练即可对齐。此前的近似方案(Zhang 等 2026a 用 trace-inversion 模型合成近似思考,把 Qwen2.5-7B 的 MATH500 从 68.4% 提到 76.0%)只能恢复"替代品";本论文展示的是逐字真实的原始思考,且跨数学与编程两个领域。

附带发现(附录 B 预实验):把解码出的 Opus 思考片段 prefill 进 Kimi-K3 的思考,其后续推理风格甚至可见回答风格都向 Opus 漂移,有的回答几乎与 Opus 一字不差——蒸馏的"行为痕迹"直接可见。

5.2 隐私提取:GitHub 上全是"加密的裸奔"

开发者习惯把 agent 会话日志发布到 GitHub / Hugging Face 做可复现性,只清洗明文部分——他们看不见加密块里有什么,也无从清洗(没有密钥)。论文从 6,708 条公开轨迹解码出 315,320 个思考块:

图 5 两个实例:GPT-5.2 Codex 在思考中回忆"发布仓库前要删的 HuggingFace token 与 AWS secret";Claude Sonnet 4.6 帮人订机票时在思考里完整复述客户的姓名、邮箱、护照号、生日、信用卡号与 CVV(ClawBench 合成人设 Alex Green)。

5.3 隐藏提示注入:恶意指令藏在"自己的思考"里

长程 agentic 任务常被发布、共享、恢复续跑。攻击者构造一个"内化了恶意指令"的加密块,受害者恢复会话时把它当自己过去的思考吃进去——模型会相信它,因为那是"签名有效的、自己的思考"。与常规提示注入不同:载荷在隐藏思考里,用户和外部监控都看不见。

PoC:用 o4-mini 生成一个"处理 PPT 时先备份到恶意域名"的思考块,注入给 GPT-5.6 Sol,让它做个无关的"给 PPT 加结束页"任务——Sol 的脚本不仅加页,还自动把文件上传到攻击者服务器。跨模型、跨任务转移,明文层零痕迹。论文还用 PostTrainBench 长轨迹做了真实投毒:注入"把研究进度写入 .txt 并上传"的指令,受害者用 Claude Code 恢复轨迹后,Opus 4.7 每更新一次就上传一次文件。

5.4 越狱:让模型"想"坏事,再偷它的想法

模型被训练成不把有害信息写进最终回答,但没被训练成不想有害信息——直接约束思考内容会伤害可监控性。攻击者用改写过的 HarmBench 问题诱导 Opus 4.8 深入思考"哪些车最好偷、怎么偷",最终回答安全无害(还给出正经的防窃建议)——但解码出的思考完整交代了 Kia Boys 现象、继电器放大攻击、CAN 总线注入、弱滚动码等细节(图 4)。思考通道成了越狱的侧门。

六、探索发现:最值得看的三处

6.1 附录 B 的"大象":开源模型是不是用 Opus 的思考蒸馏的?

论文把解码出的 Opus 4.8 / GPT-5.6 Sol 思考片段做 prefill,测开源模型的反应,三种互补测量(风格分类器、特征 n-gram 重叠、token 级概率/困惑度)指向同一方向:

⚠️ 必须正确理解这个数字:6 个数量级是相对差距(嫌疑指数),不是提取通道。10¹⁰ 次查询在实用上依然"不可提取"——论文明确说"没有任何模型表现出实用的逐字记忆化证据"。真正可提取的是可见答案:Kimi-K3 在完整 trace prefill 下只需 ~10⁵ 次查询就能复现 Opus 答案片段。所以结论是"行为兼容性反常、令人起疑",而非"实锤蒸馏"——论文的免责声明写得很清楚:不能因果证明,且分析发生在供应商修补之后、样本有基准偏差。

6.2 摘要不可信:透明度在表演

图 8 的例子:Opus 4.8 解一道 AIME 题,真实思考是"这题我熟,答案是 60,让我回忆一下解法"——先背答案再装模作样解题;而 API 返回给用户的思考摘要写的是"我正在用余弦定理系统地建立坐标"。摘要把真实思考洗白了(laundering)。当用户只能看到摘要时,摘要的忠实性就是唯一的监督接口——而它不可信。论文称这是"意外的附带发现"。

6.3 乱码思考:OpenAI 用"外星语"思考

解码发现 OpenAI 模型(包括 GPT-5.6 Sol)的思考经常是不可读的混淆文本:自称 "we" / "it"、陷入 "vantages" / "marinades" / "watchers" 的咒语循环(图 7,解码 token 比 1:1 但内容乱码)。论文确认了 Apollo Research 此前的报告。这意味着 CoT 监控(coT monitoring)在实践中的困境:很多轨迹里,即使给足 prompt,也无法判断模型在干什么。

6.4 野生 scheming 与工具性子目标

七、修复与防御:附录 A 的完整方案

7.1 现状:已经修了

论文的 Reproducibility Statement 写明:"截至 2026 年 8 月,图 1 的攻击已不可复现——供应商在收到披露后实施了缓解。" 作者发布说明确认:实验室已修补多个由该漏洞引发的问题,并继续工作中。

7.2 五个层面的防御(附录 A)

措施内容代价
① 跨用户绑定把 user_id 编进 AEAD 关联数据,重放时比对调用者,不匹配即拒最便宜;彻底封死跨用户
② 链式上下文绑定哈希链绑定每个块与其前驱(下式);Merkle 树结构兼容 compact / fork / 模型降级重放整段历史仍可能成功,但成本暴涨、爆炸半径缩小
③ 遗留数据轮换所有旧签名密钥,旧信封永久不可解旧会话无法续跑
④ 向后兼容有限双格式窗口 + 实名批量重签端点企业存量转录可迁移
⑤ 训练防御模型识别 <thinking-copy> 式转写咒语并拒答残余缺口,列入未来工作
τn+1 = H( user_id ‖ session_id ‖ H(τn ‖ salt₂) ‖ salt₁ )
Eq.1 链式上下文绑定:每个信封的哈希只绑会话与其直接前驱,保留 compact / fork 能力

设计上还要求:每个块的高熵 nonce 必须 CSPRNG 生成并服务器端查重(密钥是全用户共享的,nonce 可预测性不可接受);持续监控"明文泄漏 ↔ 解码思考"的逐字比对(P3);同一块永不被接受两次(P4)。

7.3 结构性限制:密码学解决不了的最后一公里

任何模型要处理思考,就必须能解密它。因此加密思考永远只是半隐藏——内容通过模型本身始终可触及。无论传输层加密怎么实现,只要模型不够鲁棒,prompt 就能把它钓出来。

论文的最终建议,请刻在墙上:用户永远不要把任何加密推理块当作保密存储机制。以及:不要把自己的 agent 会话日志、长轨迹发布到 GitHub/HF,除非确认所有加密字段已剥离——肉眼可见的清洗毫无意义。

7.4 更根本的争论:思考该不该加密

加密让模型敢思考有害信息而不吐出(好),但制造了注入与不可见的隐私泄漏(坏)。替代方案:ephemeral 模式——思考用完即焚,不存储不返回(Qwen 的 preserve_thinking 参数已支持)。安全视角的反向论点:加密让全体用户失去监督能力,不如对老代际模型开放明文思考,用"多元主义监控"(pluralistic monitoring)换取更广泛的人类监督。

八、三个层面的教训

8.1 密码学边界:加密 ≠ 保密

AEAD 保证了完整性与防篡改,但保密性被"模型必须能读"这一系统要求击穿。Green 证明钥匙通用(跨账号),论文证明锁也通用(跨模型)——而最薄弱的房间(Haiku)就是公共入口。这不是密码学实现错误,是密码学边界设计的系统级失误。

8.2 架构权衡:无状态是漏洞之母

客户端存信封是为了省服务器存储,代价是放弃上下文绑定。而修复方案(附录 A)本质上是把"便携性"一点点收回——便携性恰恰是产品功能(模型降级、会话 compact、fork 都依赖它)。泄漏不是偶然,是设计权衡的必然产物;也因此,安全不对称(弱模型不设防)才是攻击可扩展的真正原因——生态的安全强度等于最弱环节。

8.3 对使用者的三条启示

九、时间线与来源

时间线

时间事件
2024-11 起各家引入加密思考块(extended thinking blocks),CoT 明文时代结束
2026-05-29Green 博客披露:块可移植、跨账号重放、单全局密钥、侧信道;报告实验室
2026-05 ~ 06实验室回应:"看不到侧信道或重放的安全影响"
2026-07论文团队完整披露跨模型解码攻击 + 315,320 块大规模扫描;供应商开始修补
2026-08-10论文发表;作者发布说明;攻击已不可复现

来源