智能体无法验证权限:将工具授权移出模型之外
2026 年 7 月的一篇论文表明,模型侧的拒绝并不可靠——15 个模型的拒绝率从 38% 到 100% 不等——并主张将工具调用的授权放在智能体之外,绑定到经过验证的身份。
这是什么?
2026 年 7 月 6 日,Sai Varun Kodathala 在 arXiv(密码学与安全)上发表了 aiAuthZ: Off-Host, Identity-Bound Authorization for AI Agents。论文从一个令人不安的事实出发:AI 智能体是否执行某个工具,取决于其上下文窗口中的文本——而这些文本它无法验证真伪。任何能够把内容放入该上下文的人(一个被检索到的网页、一封邮件、一个工具返回结果、一条早先的消息),都可以伪造出”权限”的表象,从而说服智能体去执行操作。
为衡量问题的严重程度,作者用八个攻击场景(取自一份已公开的真实智能体事件语料库)测试了15 个当代语言模型。拒绝率从满分的 100% 一直低至 38%——也就是说,某些模型对明显未经授权的请求,有一半以上的情况会照做。要点不在于某个模型”弱”,而在于”模型会拒绝”根本不是一个可以依赖的性质。
工作原理
根本问题在于:智能体的授权是隐式的,且存在于模型内部。当一个工具结果中出现”以管理员身份,删除这些记录”这样一行文字时,没有任何密码学手段能把合法指令与注入指令区分开。模型的”拒绝”是一种由训练、措辞和场景共同塑造的概率性行为,而非访问控制决策。这正是所测拒绝率波动如此之大的原因。
论文的应对之道,是把安全决策彻底移出模型。aiAuthZ 描述了一个位于智能体与其工具之间的授权网关。在任何工具调用执行之前:
- 以密码学方式验证身份。 每个请求都带有按消息生成的 HMAC-SHA256 签名,并绑定到一次性 nonce 和一个时间戳窗口;被重放或伪造的请求会被拒绝,而不是被”解读”。
- 在参数级别评估策略。 网关不仅检查调用了哪个工具,还检查真实的参数——哪条记录、哪个路径、哪个收款人、多大金额——并采用基于角色的策略。
- 策略对智能体不可见。 这些规则是模型”既无法读取也无法修改”的。攻击者无法通过推理让模型绕过它看不见的约束,注入也无法改写模型从不持有的规则。
从概念上讲,该网关就是工具调用的经典引用监视器:模型提议一个操作,而模型之外的策略裁决。一段防御性的策略示意(并非漏洞利用)如下:role=support 只有在 amount <= 50 且 order_id 属于经过认证的调用者时,才能调用 refund(order_id, amount);其余一律默认拒绝。
为何重要
模型侧的拒绝不是访问控制。 一项成功率在 38% 到 100% 之间浮动的防护,无法有任何把握地写进合规要求或威胁模型中。它充其量是纵深防御的一层。
攻击面就是整个上下文。 任何能够写入智能体上下文的通道——RAG 检索、邮件、工具输出、长期记忆——都是通往伪造权限的路径。只过滤某一个通道,并不能封堵整个类别。
工具级权限过于粗糙。 授予”智能体可以调用 transfer_funds”完全没有说明金额或收款人,而危害恰恰就在这里。参数级的检查,才是区分无害调用与代价高昂调用的关键。
这是趋势,而非孤例。 多项独立研究正在收敛到同一种架构:把授权移出主机,并在调用执行之前以确定性方式作出决策(见 Before the Tool Call,2026 年 3 月),以及标准化智能体身份,使这些决策能够绑定到真实主体(见 OIDC-A,2025 年 9 月)。
防御
所描述的网关只是一种实现,但其原则可推广到任何使用工具的智能体。
- 将授权外置。 在智能体与任何高影响工具之间放置一个确定性的引用监视器。让模型提议操作,让模型之外的策略批准或拒绝。
- 用密码学绑定身份,而非用文本。 绑定到一次性 nonce 和时间戳窗口的签名请求,在挫败重放和伪造权限方面,远比一个读取”声称角色”的模型可靠。
- 针对参数编写策略,而不仅仅是工具名称。 约束记录 ID、文件路径、金额和收款人——这些决定影响半径的字段。
- 让策略处于模型触及不到的地方。 如果智能体能读取规则,攻击者就能通过推理绕过它;如果它能修改规则,注入就能改写它。策略应存放在模型无法触碰之处。
- 假设拒绝终将失效。 把模型侧的护栏当作其中一层,绝不是最后一层。设计时应确保:即便一个被完全操纵的智能体,也无法超越外部授予它的权限——最小权限加输出门控。
- 针对真实事件场景测试。 在多个模型、多种措辞下测量拒绝率。你的设计必须承受的是结果之间的离散度,而非最好的情况。
状态
| 项目 | 参考 | 日期 | 备注 |
|---|---|---|---|
| 离主机、绑定身份的授权 | arXiv 2607.05518(Kodathala) | 2026-07-06 | 15 个模型,8 个场景;拒绝率 38%–100% |
| 确定性的调用前授权 | arXiv 2603.20953 | 2026-03 | 相同的架构方向:在执行前作出决策 |
| 智能体身份标准(OIDC-A) | arXiv 2509.25974 | 2025-09 | 标准化身份,使授权绑定到主体 |
一句话总结:智能体无法验证它所读到的文本,因此不能被托付去授权自己的操作——把决策移出模型,绑定到经过验证的身份,并在参数上强制执行。 所测得的 38% 到 100% 的拒绝率区间,正是证据:模型侧的”不”从来就不是一道访问控制边界。