能力令牌与最小权限即时发放
原创 pandazhengzheng 2026-11-01 22:00 广东

目录
1. 引言与问题定义
2. 形式化模型
3. 攻击与威胁模型
4. 防御机制设计
5. 形式化安全分析
6. 系统架构与Python实现
7. 评估框架与实验设计
8. 前沿挑战与开放问题
参考文献
1. 引言与问题定义
1.1 背景与动机
自主Agent系统在执行任务时需要获取多种能力(capability):文件读写、网络访问、代码执行、数据库操作、系统命令调用、API调用等。传统的基于角色的访问控制(RBAC)模型为Agent分配静态角色和固定权限,存在以下根本性缺陷:
权限过度授予:RBAC通常按"最大可能需求"分配权限,导致Agent在大部分时间持有远超当前任务所需的权限。这一"静态过度授权"问题违反了最小权限原则(Principle of Least Privilege)。
权限提升风险:一旦Agent被攻击者通过提示注入等方式劫持,其持有的全部静态权限立即成为攻击者的武器。权限越大,攻击面越广。
缺乏时效控制:静态权限没有过期机制,权限一旦授予便持续有效,即使任务已完成、权限不再需要。
权限组合不可控:多个权限的组合可能产生超出单个权限的危险能力(如"文件写入"+"代码执行"="任意代码执行"),RBAC缺乏组合安全分析。
能力令牌(Capability Token)机制借鉴了操作系统中的能力安全模型(capability-based security),为Agent提供了一种动态、细粒度、可过期的权限管理方案。其核心思想是:
即时发放(JIT Issuance):权限仅在Agent实际需要执行某动作时才发放,而非预先授予;
自动过期(Auto-Expiration):每个能力令牌都有严格的TTL(Time-To-Live),过期后自动失效;
最小权限(Least Privilege):每次发放的权限恰好满足当前动作需求,不多不少;
能力衰减(Capability Decay):权限随时间或使用次数逐渐衰减,防止权限累积。
1.2 问题定义
核心问题:给定Agent任务 及其执行计划 (每个步骤 需要能力集 ),如何设计能力令牌系统满足:
即时性:步骤 执行前才发放能力 ,而非任务开始时发放 ;
最小性:发放的能力集 恰好满足 的需求,即 ;
过期性:每个令牌 有 , 时 失效;
不可伪造性:攻击者无法伪造合法令牌;
不可转让性:令牌绑定特定Agent会话,不可跨会话使用;
组合安全:同时有效的令牌组合不产生超出任务需求的能力。
1.3 能力安全模型概述
能力安全模型(Capability-Based Security)由Dennis和Van Horn于1966年提出,其核心是将"权限"封装为不可伪造的"能力"对象,进程通过持有能力来证明其权限。
与传统模型的对比:
特性 | RBAC | ACL | 能力模型 |
|---|---|---|---|
权限主体 | 角色 | 资源 | 能力对象 |
授权方向 | 角色→权限 | 资源→主体 | 主体持有能力 |
粒度 | 粗 | 中 | 细 |
动态性 | 静态 | 半静态 | 动态 |
过期控制 | 无 | 无 | 内置 |
组合分析 | 困难 | 困难 | 可分析 |
1.4 本文贡献
形式化模型:定义能力令牌的代数结构、JIT发放的形式化语义、能力衰减与过期的数学模型。
威胁模型:分析令牌伪造、令牌窃取、权限提升、能力组合攻击等威胁。
防御机制:设计基于密码学签名的令牌签发与验证、JIT发放引擎、能力衰减机制、组合安全分析器。
Python实现:提供完整的可运行实现(500+行),含令牌签发、验证、过期管理、组合分析、测试用例。
安全证明:证明最小权限性、不可伪造性、组合安全性。
2. 形式化模型
2.1 能力定义
定义 2.1(能力):能力 是一个四元组:
其中:
:资源标识(文件路径、URL、进程等);
:操作类型(read, write, execute, delete, connect等);
:操作约束(如最大写入大小、允许的参数范围);
:作用域(如时间窗口、使用次数限制)。
定义 2.2(能力集):能力集 为能力的有限集合。
定义 2.3(能力偏序):能力间存在偏序关系 :
即 的权限不超过 。
2.2 能力令牌
定义 2.4(能力令牌):能力令牌 是一个七元组:
其中:
:令牌唯一标识符;
:能力集;
:签发者标识;
:主体标识(Agent会话ID);
:签发时间;
:过期时间();
:签发者对 的数字签名。
定义 2.5(令牌有效性):令牌 在时间 有效,当且仅当:
2.3 JIT发放语义
定义 2.6(JIT发放):即时发放函数 ,在步骤 执行前发放恰好所需的能力:
其中 为步骤 所需的最小能力集。
定义 2.7(最小权限性):JIT发放满足最小权限性,当且仅当:
2.4 能力衰减
定义 2.8(能力衰减函数):衰减函数 ,根据经过时间 衰减能力:
其中 随 增大而收缩约束空间。
衰减策略示例:
线性衰减:
指数衰减:
阶梯衰减:每经过 时间,权限降一级
2.5 能力组合安全
定义 2.9(能力组合):能力集 和 的组合 为:
其中 为 和 同时持有时涌现的隐含能力。
定义 2.10(危险组合):能力组合 是危险的,当且仅当:
示例:
定义 2.11(组合安全):能力集 是组合安全的,当且仅当:
2.6 基于任务的权限推导
定义 2.12(权限推导):权限推导函数 ,从任务描述推导所需能力集:
其中 为任务 的执行计划。
推导规则示例:
任务"读取文件并分析" →
任务"下载并执行脚本" → (需组合安全检查)
任务"发送邮件" →
2.7 令牌生命周期
定义 2.13(令牌生命周期):令牌 的生命周期为状态序列:
状态转移条件:
:签名验证通过;
:经过衰减阈值时间;
:到达过期时间;
:被主动撤销。
3. 攻击与威胁模型
3.1 威胁模型概述
攻击者目标:
获取超出其应得的能力(权限提升);
伪造或篡改能力令牌(令牌伪造);
窃取合法令牌并重用(令牌窃取/重放);
利用能力组合产生危险涌现能力(组合攻击);
在令牌过期后仍使用其权限(过期绕过)。
攻击者能力假设:
可以观察Agent的公开行为和部分网络流量;
可以尝试注入恶意指令诱导Agent请求危险能力;
无法直接访问令牌签发密钥;
无法破解签名算法。
3.2 攻击类型
3.2.1 令牌伪造攻击
攻击者尝试构造合法签名的令牌。
攻击形式:
攻击者构造: τ' = (id', C_dangerous, issuer, subject, t, t+TTL, σ')
其中 σ' 为伪造签名本文转载自微信公众号「安全分析与研究」,查看原文。版权归原作者所有,如有侵权请联系删除。