AI Agent凭证为何需要过期机制而不止作用域

OrbiResearch提出身份伪造模式,主张Agent凭证应短时化并绑定run_id
文章指出,团队为AI Agent配置凭证时通常只关注作用域——能调什么API、能读写什么资源,却忽略两个致命盲区:凭证的有效期,以及能否区分一个Agent与其副本。OrbiResearch实验室将由此产生的攻击方式命名为“身份伪造模式”,典型形式包括凭证重放、克隆进第二进程,以及任务结束后仍长期使用。作用域严格的凭证若永不过期,本质就是一把常驻钥匙,泄露后可在无人察觉的情况下被无限期滥用。文章给出的核心模式是:凭证默认短命,按会话而非按Agent签发,过期时间短于最长正常任务,绑定run_id,签发与每次使用分别记录,完成即撤销。对于合法运行数小时甚至数天的长时Agent,不应延长过期窗口,而应在运行中按固定间隔轮换凭证,类似TLS会话密钥轮换。
大多数团队在给 AI Agent 配置凭证时,都会仔细划定作用域——这里只读、那里可写、这个 API 能调、那个不能碰。作用域回答的是“这个 Agent 能做什么”,但它从未回答两个同样致命的问题:这份凭证的有效期是多久,以及我能否区分这个 Agent 和它的一个副本。
OrbiResearch 实验室将这两个盲区导致的攻击方式命名为“身份伪造模式”(identity forgery pattern)。一份凭证被重放、被克隆进第二个进程,或者在它原本服务的任务结束很久之后仍在使用——这些都不是理论风险,而是作用域机制天然无法覆盖的漏洞。

作用域为什么不够用
一个作用域极其严格的凭证,如果永不过期,本质上就是一把常驻钥匙。一旦它泄露到日志、提示词、工具输出或 fork 出来的进程里,它就会一直有效,直到有人手动撤销——而现实中,往往几天都没人发现。
作用域限制的是一次调用的影响半径。面对时间维度,它毫无作为。换句话说,即使攻击者只能调用一个只读接口,只要这个凭证永不失效,他就可以持续地、无限期地以你的 Agent 身份活动,且在外观上与合法 Agent 毫无区别。
凭证重放(replay) 是理解身份伪造的关键前置概念:当一份凭证在它被签发的上下文之外被再次使用时,就构成重放。它无需破解任何密码学算法——攻击者只需从日志、提示词输出、子进程内存或工具调用记录中截获一份仍在有效期内的密钥,再以相同格式发往同一服务端即可。服务端看到的是合法的签名、合法的调用方身份,唯一异常是这次调用并不来自原始进程。正因为作用域层面的校验(比如“此凭证只有读权限”)在重放场景下依然全部通过,重放才能绕过所有基于权限清单的防护。这也是身份伪造模式成立的技术前提:攻击的成本不是破解,而仅仅是复制。
核心模式:短时+绑定运行
OrbiResearch 提出的模式核心只有一句话:把每一份 Agent 凭证都当作默认短命的,而不是一个附带作用域的静态密钥。
具体拆解为五条可执行规则:
-
按会话签发,而非按 Agent 签发。凭证在 run 启动时生成,在 run 结束时消亡,而不是让 Agent 在所有运行中复用一把长寿密钥。
-
过期时间短于最长预期任务。如果 Agent 正常最长运行 20 分钟,凭证就设 30 分钟过期。一个卡死或被劫持的进程,即使无人值守,也无法越过这个窗口继续操作。
-
将凭证绑定到 run_id。每份凭证都携带签发它的那次运行的标识符。如果两个来自不同进程上下文的请求使用同一凭证,这不是扩容事件,而是伪造信号——应该大声失败,而不是静默放行。
-
分别记录签发和每一次使用。签发日志告诉你“什么应该能行动”,使用日志告诉你“什么真的行动了”。两者之间的差值,正是伪造藏身之处。
-
完成即撤销,而非按计划撤销。不要等 cron 任务清理过期凭证,run 报告完成、失败或被终止的那一刻就立即撤销。
run_id(运行标识符)是这套模式的身份锚点。每一次 Agent 的独立执行单元(一次任务、一次会话、一次工具编排链)在启动时被分配一个全局唯一且不可预测的标识符,凭证签发时将该 id 写入凭证的元数据或签名载荷中。服务端在每次校验时不仅检查签名和过期时间,还比对请求携带的 run_id 是否与凭证内嵌的一致。两个来自不同进程上下文的请求若引用同一凭证,在正常系统中不应发生——除非该凭证被复制。因此 run_id 的比对把“凭证可用性”从纯粹的权限判定,升级为一次轻量的身份断言,使克隆行为在第一次跨进程调用时即暴露。
这套机制能抓住什么
对比非常直观。一份作用域良好但长寿的凭证,被攻击者窃取后,他可以在作用域内无限期活动,且与合法 Agent 无法区分。而一份短时、绑定 run 的凭证,把“窃取并重放”变成了“窃取后一小时内作废”,把“克隆进第二个进程”变成了一声立即的、响亮的警报,而不是一个无声的副本。
这里的关键转变在于:安全边界从空间(能做什么)扩展到了时间(能活跃多久)和身份(是不是同一个进程实例)。三者缺一不可。
长期运行 Agent 的难点
当然,现实并非所有 Agent 都在几分钟内结束。那些合法运行数小时甚至数天的长时 Agent,会打破简单的“会话长度即过期时间”规则。
OrbiResearch 给出的方案不是延长过期窗口,而是在 run 内部按固定间隔轮换凭证——就像长连接的 TLS 会话通过轮换密钥维持连接而不中断一样。规则始终不变:任何凭证的超期存活时间,都不应超过正常任务时长的几倍。
这也意味着凭证管理需要从一次性配置升级为运行时的持续操作,对基础设施的自动化程度提出了更高要求。
凭证轮换(credential rotation) 与 TLS 会话中的密钥更新(rekeying)在思路上一致:不改变连接或运行的连续语义,只在固定的时间或事件间隔上替换底层凭证。实现要点有三:一是轮换间隔应显著小于凭证过期窗口,确保旧凭证在被撤销前已无使用价值;二是新旧凭证需要一段重叠期,让正在途中的请求可以优雅完成,避免因硬切换造成任务中断;三是每次轮换都应产生独立的签发与使用日志,使差分审计的粒度不受运行时长稀释。轮换把“长时运行”从一个静态长寿窗口拆解为一系列短命凭证的序列,从而在不牺牲任务连续性的前提下维持与短会话相同的安全属性。
检查清单
OrbiResearch 提供了一份可直接对照的自检清单:
- 每一份 Agent 凭证是否独立于作用域之外,拥有过期时间?
- 过期窗口是否短于你正常最长任务,而不是可能最长任务?
- 每一份凭证是否绑定到具体的 run_id?
- 签发和使用是否作为两个独立事件记录,可供差分对比?
- 对于长时 Agent,是否在运行中途轮换凭证,而非签发一张覆盖全程的凭证?
如果以上任何一个答案为“否”,那么攻击者甚至不需要破解你的 Agent 逻辑——他只需要找到一份没人想过要让它过期的凭证。
相关推荐

WorkBuddy全流程教程:从零搭建AI办公自动化智能体
WorkBuddy 全流程教程精讲:从下载安装、三种工作模式到多模态绘本视频实战,再到专家团搭建智能体与工作流配置,帮你用低成本 AI Agent 实现办公自动化。

WorkBuddy智能体全攻略:7天从入门到自动化实战
基于B站256集WorkBuddy全套精讲课程,系统拆解腾讯AI办公工作台的核心能力:Agent原理、Skill封装、连接器跨平台、定时自动化、知识库与零代码开发,附学习路径建议。

8个AI账号翻车7个:我用AI干活的真实复盘
B站8个AI运营账号仅1个跑通。本文拆解"演AI"与"用AI干活"的本质区别,分析5条视频217万播放背后的产能控制、评论区运营和交付节奏策略。