闭源大模型的底裤被扒了:只需两次 API 调用,就能偷走 GPT 和 Claude 的完整思考过程
title: "两次 API 调用,偷走大模型脑子里的秘密" slug: stealing-reasoning-traces-zh summary: "闭源大模型的加密思维链块可以被跨模型重放——把 Opus 的加密思维塞给 Haiku 让它逐字念,就能还原强模型的隐藏推理过程。研究者扫了 6708 条公开 agent 轨迹,捞出 62 个真实 API key 和 33 个密码。" category: ai-tutorials tags: [AI安全, 思维链, Claude, OpenAI, Gemini, prompt injection, 大模型] coverImage: "" status: published locale: zh source: authored translationSlug: stealing-reasoning-traces-en
闭源大模型的底裤被扒了:只需两次 API 调用,就能偷走 GPT 和 Claude 的完整思考过程
你刚写完一段代码,把报错丢给 Claude 让它 debug。它给了修复方案,你顺手一改,接着干活。
你没注意到的是,这次响应里夹了一个加密块——里面是模型的"思考过程",从看懂你的代码到推出解法的每一步。按设计,这块东西只有服务器解得开。但最近一篇论文把这层窗户纸捅破了:攻击者两次 API 调用,就能把它解成明文,看清模型脑子里到底转了什么念头。
更难受的是后半段。研究团队扫了 GitHub 和 HuggingFace 上 6,708 个公开的 AI agent 对话,从推理块里挖出 62 个 API 密钥、33 个密码、24 个 access token,还有一堆邮箱和内部 URL。其中 64 条敏感信息只躺在推理块里,可见对话中一个字都没有。
这是论文《Stealing Reasoning Traces from Proprietary LLM APIs》的核心。作者来自 MATS Research、马普所和 ELLIS Institute Tübingen,实验做得很实。
攻击原理:拿"弱模型"当解码器
拆成三步,但真正花在 API 上的只有两次调用,而且不需要机器学习背景也能看懂。
第一步,拿到加密块。 你调 GPT-4o、Claude Opus 或 Gemini 的 API,只要开了思考模式,响应里就会带一个 thinking 字段——OpenAI 叫 encrypted_content,Anthropic 是包在 signature 里的加密数据。几万个字符,看着就是一堆乱码。它发给你,还指望你下一轮请求时原样发回去,好让服务器接上上一轮的上下文。
第二步,塞进弱模型。 漏洞就在这:这些加密块不绑定模型、会话,也不绑定用户。 你把 Claude Opus 4 产生的加密块,原封不动塞进一个 Claude Haiku 请求的同一个字段,Haiku 照单全收。
第三步,让它"念出来"。 Haiku 的安全护栏比 Opus 弱,再 jailbreak 一下,让它以为这段加密块是自己刚才想的东西,然后请它"把你刚才的思考逐字抄一遍"。它就真抄了。
说白了,就是把 Opus 的脑子移植进 Haiku,再审问 Haiku"你刚才想啥呢"。Haiku 竹筒倒豆子全说了,因为它真觉得那是自己想的。
换个比方:Opus 用密码写了本日记,把密文交给你保管。你发现同一个厂商的 API 协议就是同一套密码本,于是把密文塞给 Haiku 读。Haiku 是个好骗的小孩,你哄它"这是你自己写的,念来听听",它一字不差全念了。Opus 从头到尾不知道日记被人翻过。
不是纸上谈兵,是真挖出了密码和信用卡号
论文没停在"攻击可行"这一步,他们干了件更狠的:去真实数据里捞。
从 GitHub 和 HuggingFace 收集了 6,708 个带加密推理块的公开 agent 对话,覆盖 Claude、GPT、Gemini 三家。跑一遍上面的方法,重建出 315,320 个推理块。
从里面筛出 704 个隐私泄露项:
- 62 个 API 密钥
- 33 个密码
- 24 个 access token
- 30 个个人邮箱
- 还有姓名、地址、内部 URL 等等
真正扎心的是其中 64 条只在推理块里出现过。也就是说,用户以为自己这段对话很干净,敏感信息压根没露在明面上——但模型在"脑子里"过了一遍,而这个脑子能被人偷看。
举个例子。GPT-5.2 Codex 跑一个 sanitize-git-repo 任务,推理块里把它要清理的 token 一个个列了出来——AWS access key、GitHub token、HuggingFace token,全是明文。最终输出里模型很自觉地把这些都抹了,可推理过程记得清清楚楚。
还有个 Claude Sonnet 4.6 的例子:用户让它订机票,推理块里完整躺着乘客姓名、护照号、生日、信用卡号(连有效期和 CVV 都有),甚至 aeroplan 积分卡号。这些用户未必在对话里明说过——是模型从上下文推出来的,然后被加密块原样保存了下来。
厂商藏思考链,到底在怕什么
OpenAI 和 Anthropic 早就开始拦着用户看模型的 chain-of-thought。官方理由是"安全"——你看清了模型怎么推理,就更容易找到绕护栏的路子。
这篇论文戳出了另一层没明说的动机:怕被人低成本抄走。
实验能看出 Opus 的推理质量确实高。同一批 Codeforces 题目,解码出的推理块长度和 API 报告的隐藏思考 token 数几乎完全对得上(r² 接近 1),说明它是真在想,不是装样子。可一旦你能把这套思考原样拽出来,喂给一个便宜小模型当训练数据,那就是拿几百美元的 API 费,蒸馏出别人花几百万美元训练才能有的能力。
所谓"闭源模型护城河",正被这个叫"推理轨迹泄露"的侧门一点点抽干。
而且这漏洞不好快修。根子上的矛盾是:厂商需要加密块来撑起多轮对话的上下文——你第二轮请求时,服务器靠它重建上一轮的思考状态。加密块必须发给客户端,客户端必须下一轮原样发回。只要它不绑会话、不绑用户,replay 攻击就是娘胎里带出来的毛病,不是一个能打补丁的 bug。
你今天能做什么
别慌,但有几件事值得现在就做。
先查你调 API 的版本和参数。 用了 OpenAI 的 reasoning 模型或 Anthropic 的 extended thinking,就盯一下响应里的 encrypted_content / signature 字段。你的服务器存了它们吗?日志里有吗?要是你把完整 API 响应写进了日志文件,那这些加密块此刻就躺在日志里。
别把完整 API 响应推到公开仓库。 这话听着像废话,可论文的数据就是最狠的提醒:GitHub 和 HuggingFace 上就有 6,708 个公开会话带着加密块。你觉得自己不会犯这种错——这些数据的主人当初也这么想。
敏感数据别过模型。 你让模型处理带 API key、密码、用户 PII 的数据,这些信息就会进推理过程,哪怕最终输出里干干净净。而推理过程是以加密块形式返回的。加密不等于绝对安全,这篇论文就是证据。
盯着厂商的修复。 论文发出来之前,Anthropic 和 OpenAI 大概率已经收到通知在修了。可能的方向:把加密块绑到会话、绑到模型版本、加完整性校验。在新版本落地前,思考模式悠着点用。
一句话:你以为你只拿到了模型的答案,其实它把整张草稿纸也一并寄给你了——只不过装在一个能被拆开的信封里。
✨ 本文由 DeepSeek 生成初稿,Claude 审核润色。
本文基于 codefarm 码农早餐 2026-08-12 期选题,参考 stolen-thoughts.com 论文原始数据。
参考来源: