摘要:零信任解决“谁能用”的问题,但AI Agent时代真正危险的是“能力被使用后结果如何进入现实”。对抗性完整不追求每环都可信,而是通过约束执行边界限制错误后果——安全边界已从网络、身份迁移到最终执行端。两者互补,构成AI时代完整的安全防线。

过去二十年,企业安全最重要的一次范式转移是零信任。它推翻了一个存在很久的默认假设:进入内网不等于值得信任,拥有账号不等于可以自由行动。每一次访问都要重新验证身份、设备、环境与权限。

零信任解决的是一个足够重要也足够清晰的问题:谁可以接近一种能力?

在软件主要用来“呈现信息”的年代,这个问题几乎就是安全问题的全部。人看报表、查数据、下载文件、登录后台,风险绝大部分集中在“不该看的人看到了不该看的东西”。把入口守住,风险就守住了大半。

但AI Agent开始调用工具、操作系统、直接改变现实状态之后,另一个问题浮出水面:一个主体有资格使用某种能力,是否意味着这一次具体的执行就应该发生?

这不是同一个问题,也不是同一个问题的自然延伸。

零信任能管“谁能用”,管不了“结果怎么进现实”

设想一个再常规不过的场景:一名财务人员通过了身份认证,账号真实,设备合规,多因素认证通过,也拥有付款权限。按照零信任的全部逻辑检查一遍,这次访问没有任何问题。

但如果下一步动作是向一个外部账户转出五百万元,系统真正需要判断的就已经不再只是“这个人是谁”。它还需要知道:收款账户是否与审批时的对象一致?金额是否仍在授权范围内?这份审批是否已经过期?

零信任检查的是访问权限,但它无法回答执行本身是否正确。

对抗性完整的逻辑:不假设任何一环“绝对可信”

对抗性完整承认一个工程事实:在一个由人、模型、SaaS、脚本和第三方接口共同组成的系统里,“每一环都可信”是一个永远无法验证的假设。既然假设无法验证,安全性就不能押在任何单一环节可信的假设上。

“对抗性”指的是假设存在主动误导、恶意替换的不可信环境,而非仅应对偶然错误;“完整”指安全判断覆盖全维度风险,而非只保证单份数据未被篡改。

它不承诺“永不被攻破”,也不承诺“消灭全部风险”。它只关心一件事:当系统处在不理想的环境中,当某些组件、人员、策略或上下文不再可信时,系统是否仍然知道自己应该如何失败,是否仍然能够限制错误的传播。

它回答的是:钥匙落到攻击者手里之后,哪扇门仍然打不开。

大量事故发生在“已经确认过”之后

人们通常认为安全问题来自明显的故障或破坏。但现实中的大量事故并没有这么明显。

审批人确实点击了同意,但审批页面展示的摘要与最终执行内容并不完全一致。从流程上看,每一步都发生了——有人提交、有人审批、有系统记录、有操作日志、权限也完全合法。问题在于流程中的某个对象、内容或结果已经发生变化,后面的环节却仍然沿用了前面的信任。

很多错误不是没有经过确认,而是确认过一次以后,所有人便默认它不会再变化。

锁车以后再拉一下车门,检查的并不是同一个问题。第一次确认“我有没有按下锁车键”,第二次确认“车门现在到底有没有锁上”——一个检查动作,一个检查结果。

对抗性完整不是零信任的升级,是互补

零信任管控“谁能使用能力”,对抗性完整管控“什么结果能发生”。零信任的身份认证等能力仍是新安全体系的基础,只是从最终裁决降级为判断证据。

两者的分工很清晰:零信任检查“这次访问是否合法”,对抗性完整检查“这次执行是否应该发生”。前者管入口,后者管出口。

在AI Agent普及的背景下,执行链条变长了——从意图到结果,增加了更多偏差、替换、污染的可能。AI擅长制造“解释完整”的错觉,容易让人放松警惕。因此必须强调独立验证:不能让AI自证安全,不能仅依赖AI生成内容做审批,高风险操作需要AI之外的判断角度。

落地原则:不增加检查次数,增加独立判断维度

对抗性完整不需要重构现有业务系统。它只需要把业务收敛为有限可验证的执行条件,逐一校验是否满足预设规则。核心要求是最终执行层拥有否决权:不需要无所不知,仅需在关键条件不满足时拒绝执行。

所有确认依赖同一个界面、同一份数据,检查次数再多也只是重复接受同一个错误。有效的确认必须来自不同角色、不同系统、不同信息来源和独立角度。前面的流程回答“是否允许”,最后的边界回答“当前条件下是否仍然应该发生”。

企业安全已经经历了网络边界、身份访问边界两次迁移。AI时代,安全边界已经迁移到最终执行端——安全必须从管控入口延伸到管控最终落地结果。

不是每一件事都要做对抗性完整检查,但它要在系统真正需要的时候能接住那一下。零信任回答“谁能靠近”,对抗性完整回答“什么结果能发生”——两者合在一起,才构成AI时代完整的执行安全边界。