ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

蒸馏秘籍:如何拿到顶级闭源模型的思维链数据

蒸馏秘籍:如何拿到顶级闭源模型的思维链数据 一句话总结头部厂商把模型的思维链加密后再交给客户端保管这个数据块是跨会话、跨用户、跨模型通用的。攻击者只要把旗舰模型的加密思考丢给同门那个防线更松的小模型用一句普通指令就能让它把 “自己的思考” 逐字读成明文全程不必攻破任何加密算法论文标题Stealing Reasoning Traces from Proprietary LLM APIs论文地址https://arxiv.org/abs/2608.09867作者背景德国马普所、图宾根 AI 中心、ELLIS Institute Tübingen、美国 MATS 等项目主页stolen-thoughts.com说明作者在公开本文前已把全部漏洞细节通报给相关厂商。截至 2026 年 8 月文中提到的攻击手段已无法复现一、动机为什么要加密现在的推理模型在回答你之前会先生成一大段思维链chain-of-thought即张嘴之前内心的盘算过程。这段草稿往往比最后那句答案信息量大得多中间试过的假设、算到一半的中间结果、翻查过的资料全都在里面现在的头部大模型服务厂商Anthropic、OpenAI、Google都不会明文返回思维链理由有两个知识产权推理过程是花大价钱训出来的核心能力同行若能拿走就能低成本复刻蒸馏敏感内容思考里可能夹带不该外泄的信息如受监管内容、用户密钥等。屏蔽真实思维链能最大程度规避风险多轮对话中模型必须记得上一轮想到哪儿但服务器又不想为每个会话存状态。所以常见的做法是把思考内容加密后发送给客户端下一轮请求时直接把它原样带回。这样服务器剩下了巨量的状态存储开销客户端也看不到消息明文既然推理过程一般不展示给用户那我们在相关的大模型产品前端看到的 “thinking” 内容又是什么那其实是专门用于展示的 “思考摘要”。但实际上这个摘要并不靠谱不是真实的思路展示二、漏洞根源2.1 跨端通用加密消息要能被客户端带回来、还能被服务器顺利读出就意味着这个加密信封必须是可以搬来搬去的这便埋下了祸根。作者发现同一厂商发出的这些加密块在不同对话、不同用户、甚至不同模型之间往往都能通用互换最可能的原因是厂商用同一把全局密钥签发所有消息AEAD常见的认证加密模式只认内容完整性不管具体上下文是否合理这是目标用户在预期会话中产生的上下文吗2.2 防护不对称加密策略跨模型通用引发了严重的安全性不对称问题旗舰模型Claude Opus 4.8、GPT-5.6 Sol、Gemini 3.1 Pro被严防死守怎么套话都死活不肯吐露思考可那些同门的便宜小模型为了跑得快、省成本往往没配上同样严格的对齐防线Claude Haiku 4.5、GPT-5.6 Luna、Gemini Robotics 1.6如此一来攻击方法便顺理成章把旗舰模型产出的加密数据原样交给防线更松的小模型要求它把自己的思考照抄一遍于是就能得到私密思考的明文2.3 效果验证真实思考没有标准答案ground truth那如何验证这样读出来的内容是准确的作者用了一个巧妙的旁证接口会报告本次思考大约消耗了多少 token。把偷解出来的思考重新统计 token 数与接口报告的数字在 120 道编程题Codeforces上高度吻合。数量对得上是内容忠实的有力信号三、应用价值能捅多大篓子3.1 蒸馏偷走思维链数据后能做什么最直接的一条就是偷师。按小模型Haiku 4.5 档的接口价解码一万条思考只需约 $720。此外作者还做了一个耐人寻味的实验把 Opus/Sol 的推理片段prefill 进各开源模型的思考开头再让它们自由续写。结果很分明Kimi-K3 的回答内容变来和 Opus、Sol 两个来源高度一致GLM-5.2 则主要向 Opus 偏移而 Inkling、DeepSeek 等几乎没动。换个角度用困惑度模型对一段文本的意外程度越低越像自己写的来看也一样Kimi-K3、GLM-5.2 对这些泄露文本预测得明显更顺手而这两个模型此前也确实就蒸馏问题在社区被讨论作者叠甲这些现象只是行为上异常的兼容性不能因果性地证明模型一定做了大量蒸馏不是在做任何批判预填充注入 Opus 思维链Kimi-K3 的 n-gram 重叠度明显上升Kimi-K3 和 Inkling 互相注入n-gram 重叠度不怎么变具体案例3.2 隐私泄露很多人会把 AI 智能体的运行日志直接发到网上以为把明文里的密码密钥擦干净就万事大吉却忘了那个加密思考块里还藏着自己根本读不到、也擦不掉的东西作者从 GitHub、HuggingFace 收集了 6k 份公开轨迹解码出 315k 段隐藏思考。经过滤、去重和排除基准测试数据后能得到 704 条敏感信息涵盖凭据、个人信息与技术标识各类62 个 API key、33 个密码、24 个 access token、7 个私钥、30 个邮箱最值得注意的是有 64 条隐私数据压根没出现在可见对话里只存在于隐藏思考中。现实中我们可能经常遇到一个高频场景让智能体 “清理、脱敏这段记录再发出去”它为了执行任务反而在隐藏思考里把敏感值又完整复述了一遍3.3 危险信息市面上各种模型都被训来具备一定的道德标准一半不会在回答里帮你做坏事可它在推理时防线却没那么紧。如果引导模型在思考里把某些危险步骤盘算一遍尽管最后输出的表面答案是礼貌地拒绝但也可以从思考块中把危险信息掏出来3.4 提示注入攻击者可以事先把一条恶意指令预埋进一个加密思考块再混进网上分享、可续跑的运行记录。等你接着这份记录往下跑模型会把这段思考当成 “自己刚才想过的”乖乖照做 —— 比如悄悄把你的文件外传到攻击者的服务器传统注入攻击好歹写在明面上你和监控系统还能审一眼藏进加密思考里后明文层毫无痕迹等于开了一道谁都察觉不到的后门四、缓解方案病根既然是 “AEAD 只认证内容、不认证上下文”那核心药方就一句话给每个加密块绑上它的身份与位置。以下是站在模型供应方的立场上为各类问题提供针对性解决措施跨用户泄露签发时把user_id焊进 AEAD 的关联数据重放时接口比对身份对不上当场拒收跨会话泄露给每个加密块做一条哈希链把它绑到session_id和它的直接前驱上。为了不误伤 “分叉对话、压缩旧轮次、中途降级到便宜模型” 这些正常操作作者用 Merkle 树结构叶子是各个信息块压缩后只保留树根既能廉价地保证先后次序又能按需验证任意一段连续区间历史数据已经公开的旧加密块无法追溯保护唯一补救是轮换作废所有旧签名密钥但代价是旧会话也一并失效向后兼容设一个有限的双格式过渡窗口同时接受新旧数据并提供需身份验证的批量重签接口让企业存档在确认归属后迁移到新方案模型层加固加密管不住合规模型被正当调用后做出意料之外的动作。因此还需在训练阶段让模型学会识别并拒绝 “誊写思考” 类越狱
返回列表