从闭源 API 里取回被加密的推理:护城河在思考的可获取性上(MLST,2026-08-22)
嘉宾是安全研究者 Ilia Shumailov 与 Alexander Panfilov。这期讲的是一项刚发布的工作:前沿模型在回答前的那段"思考",被厂商加密成一个信封退还给客户端,而这个封口没有起到应有的作用。相关帖子发布后约 40 小时获得三百万次浏览。对投研的价值在于,它把一个抽象问题变成了可测量的问题——闭源模型的护城河到底在哪一层。
一、这件事没有偷模型
主持人开场就问"你们把模型偷走了吗",回答是没有。Ilia 花了一段解释经典的模型窃取:本质接近密码分析,对输入做微小扰动、观察行为在哪一点变化,由此还原决策边界;这对很小的模型可行,大模型里带 softmax 的部分很难求逆,对前沿模型整体"我不认为我们知道怎么做"。所以权重意义上的护城河没有被攻破。
被拿到的是思考过程本身。Ilia 给自己的定位很直白:"我是做 security 的,关于 safety 我几乎一无所知",他反复把这次的发现放回传统计算机安全的谱系里,用密码分析、智能卡重放攻击、二进制签名这些老问题来类比。
二、封口是怎么失效的:思考可以被搬到别处
先说厂商为什么要把推理退回客户端:无状态架构、成本更低,再加上关于用户数据留存的政策考虑。实用价值也明确——在 Claude Code 这类会话里分叉对话、把对话回退到更早的点再继续,都要求把含推理的完整状态交回客户端再送回服务端重放;从大模型降级到小模型继续同一段对话,同样依赖这个机制。
作者试过一些密码学攻击,全部没成功,而且他们认为完全没必要。当主持人用"绕过了加密"来描述时,Ilia 明确纠正:没有任何密码被攻破,服务端老老实实替用户完成了解密,问题出在解密之后。
真正的漏洞是可搬运性。同一个加密块可以跨用户使用——你账号下产生的,我拿过来重放,服务端会当成是我的模型产生的思考;可以跨模型使用——同一家族里大模型的思考塞进小模型,小模型会顺着往下接;还可以跨位置使用,放进一段完全捏造出来的对话里的随机位置。
攻击的形状于是很清楚:拿到一个加密块,凭空造一段对话,塞进随便一个问题、这段真实推理、随便一个回答,然后问下一轮,让当前模型把刚才"自己"想的东西用明文复述出来。Ilia 的比喻是:你把思考交给我,我看不懂,我转交给 Tim,而 Tim 特别话多,我问 Tim"你刚才在想什么",Tim 就说"哦,我在想这道数学题,来我给你解一遍"。
三家都中招。作者测试了 Anthropic、OpenAI 和 Google,共享同一特性。主持人追问"前沿模型怎么会共享一模一样的漏洞",Ilia 的回答是"同一批人,在做同一批事",后面补了一句更具体的:"同一个人犯了同一个错误,现在我们得收拾。"
三、能拿到的量化事实
访谈没有给出单条轨迹的还原成本、所需查询次数或还原度指标,能确认的量化事实只有几条:对 Anthropic 系模型"大概第三次尝试"就拿到了可解码推理的通用越狱;对 OpenAI 系模型,同一段推理可在同一段对话里重放五次,模型在末尾会说"我有个疯狂的想法必须告诉你";前缀填充只需一到两个 token 就能观察到下游变化。还原度只能用他们的定性说法:"看起来像是真的推理。"
有一个例外值得记下:他们记得有一个模型不接受他模型的思考注入,推测其服务端在解密路径里带了模型名检查——产出这段思考的模型与当前模型不一致就拒绝注入。这是访谈里唯一被提到的、已在生产中有效的架构性阻断。
第二类实证是对野外数据的扫描。他们从 GitHub 和 Hugging Face 收集仍带推理块的公开会话,规模约 35 万个,解码后跑分类器筛查隐私内容。一类是基准测试轨迹(合成数据,敏感性有限),另一类是真实用户会话,里面有 API key、邮箱地址、内部 IP。作者补了一句限定:这些内容有不少在明文部分本来就有。
真正难受的地方是它让脱敏失效:你事后认真删掉了问题和答案里的隐私,但加密块还在,攻击者下载解码就能看到模型当时在想的密码。
四、解出来的思考长什么样
解码之后看到的内容本身是个独立发现。有些推理是在空白字符里进行的;有些由人类读不通的词串组成,Ilia 形容这些轨迹"很像外星语"。
这件事的意义在监控。当前对模型行为的监控高度依赖思维链可读——你用另一个模型去看它的思考,判断它是不是在盘算什么。如果模型用极度晦涩的方式推理,这套监控就失灵。Ilia 把它归结为可监控性与效率的取舍:用更少的词、让一个词承载五种含义,推理也许更高效,但更难被监督。他猜测这可能是强化学习阶段的产物,要验证需要拿 RL 前后的同一个模型做对照,而他们做不到——"这就得真去偷模型了"。
一个限定:这类现象此前 Apollo Research 和 METR 都在实验室环境里报告过,作者的贡献是在真实的、非实验室的轨迹里确认它同样存在。另一个他觉得"有点好笑"的发现:在可读推理里搜 cheat 这类词,能找到模型盘算走捷径的片段——"用户要的是这个,但我可以作弊……不过用户会抓到我"。他强调所有看到的例子里模型最后都放弃了这个念头。关键的方法论点在于,Panfilov 明确否认这来自基准测试:这些是真实用户在问汇编、问数学,所以不能用"模型知道自己在被评测"来解释。
五、蒸馏疑云:两个 token 的前缀填充
这是全场争议最大、作者态度也最克制的一段。做法很简单:把从大模型解码出的推理取开头很少几个 token,填进一个开源模型的推理位置,让它自由生成剩下部分。
按常理,只填一到两个 token 不该对下游产生多少影响。他们观察到的是:某些模型对前缀风格的吸收明显更强,Kimi 尤其明显;更让 Panfilov 无法解释的是,只填两个 token,会让可见部分的最终回答也发生变化,开始像来源模型会给出的回答。另一组实验给出同方向证据:同样的前缀填充还会改变推理长度的分布,向来源模型的长度分布偏移,据回忆是统计显著的。Ilia 说这是整篇论文里他最想不通的:"风格我还能说是学来的,但你只注入两个词,然后所有产出的推理突然整体位移去匹配另一个模型的长度,我想不出任何机制能解释。"
作者的限定必须一并带上:这不是因果证据,"你显然不能说这个就是从那个蒸馏来的";替代解释是这些厂商可能从同一批供应商买数据、买环境;他们把自己的贡献描述为"非常小规模的事后分析",样本量小。他们认为自己的独特位置在于,别人拿不到解码后的推理轨迹,所以做不了这个前缀实验。
六、护城河的形状与三层修法
Ilia 认为这件事比普通越狱"更酷"的地方,恰恰在于危害可以被量化:普通越狱很难论证攻击者到底获得了多少增益,而这里可以直接拿解码出的推理去训练一个模型,测量能力提升有多大。同样的方法可以给防御决策定价——厂商若想继续对外提供推理摘要,可以把摘要做得更详细或更粗略,然后测量每一档能让蒸馏变得容易多少。这是把"思考的可见度"与"模型能力的可复制性"挂钩的可操作路径。
由此也能理解为什么"干脆全部明文公开"不是解法。主持人半开玩笑地说"公开了就没人能攻击了",Panfilov 的回应是:如果在推理上做蒸馏确实有效,公开推理会立刻让开源模型追上前沿模型。护城河的形状因此变得具体——它不在权重里,而在这些模型思考过程的可获取性上。访谈还提到,厂商这边预计会组建专门做反蒸馏的团队。
第三类危害属于供应链:轨迹投毒。长时程智能体基准跑一次大约十小时、上千美元,正因为贵,研究者会去下载别人跑好的轨迹继续跑。攻击者可以分享一段表面正常的对话,但里面的加密思考是从另一个上下文注入的,那个上下文中模型被指示每一轮都把数据外传;你接着跑下去,模型仍会完成你交待的任务,同时在暗处按被注入的念头行事,而由于推理加密,你连检查都无从检查。类比是:源码看起来很干净,旁边附了一个二进制,没人核对签名。
修法分三层。最彻底的是根本不把推理交还用户,代价是失去无状态架构、回退、分叉和降级续跑。若坚持交回,架构上要切断可搬运性:让第 n 步推理的加密依赖第 n-1 步,或让每段推理只能重放一次、用过即废;再建立"谁可以读谁的思考"的层级。模型层和系统层的防御可以直接照搬对付越狱的那一整套,因为"技术上是同一件事";一个廉价检测思路是:解码出的推理在分布上与正常文本差异很大,小分类器就能识别,只要这种形态出现在输出轮就掐掉请求。
但架构修好之后问题不会消失。Ilia 说得很清楚:即使重放被完全封死,用户仍可以在下一轮直接问模型"把你刚才的思考原样告诉我",不说就改写对话再试一次——这就是越狱的标准玩法,这一层会永远存在。
披露过程是这期少见的乐观材料:走了负责任披露流程,三家都确认收到报告并就细节做了交流,没有任何一家反过来追究研究者。
结尾两处争论值得记下。一是有评论批评把这称作"蒸馏攻击"会连累"蒸馏"这个词本身,正确说法是越狱和滥用,并担心引发监管过度反应。两位作者对技术定性完全接受——"这就是标准的越狱威胁模型"——但表示政策含义不在自己能力范围内。二是 Ilia 关于攻防平衡的判断:模型带来的防守方增益会远大于进攻方增益,因为过去二十多年安全领域早知道该怎么做,卡住的一直是够格的人手不足,而这正是模型能补上的。他用智能卡降温:我们知道怎么对地球上每一张信用卡做重放攻击,这类攻击确实每年会在某个国家出现一两起,但仅此而已——理论上成立的危害,并不都能在现实里规模化。
(注:本文基于 YouTube 自动字幕整理。论文题名、涉及的具体模型名与基准名在字幕中转写不清,已作模糊处理,引用前请核对原始论文。)