[控场AI]
· 4 分钟阅读· 2,140 字

MCP与零信任:AI代理每次工具调用都需验证

MCP与零信任:AI代理每次工具调用都需验证

MCP只提供通信约定不解决信任,需用零信任五检查点补足每次工具调用。

文章指出,MCP 虽为 AI 代理与外部工具的交互提供了标准化通道,但其默认参与者可信的假设与零信任“永不信任、始终验证”的核心原则直接冲突。作者将 NIST 零信任七项原则逐条映射到 MCP 请求路径,识别出规范仅覆盖消息格式、工具发现与调用语义,而身份体系、策略引擎、日志管道与异常检测均需平台层自行构建。据此提出每次工具调用应通过五个检查点:身份验证、授权决策、上下文校验、结果完整性与审计记录,缺少任何一项都会让零信任形同虚设。结论是安全投入不能后置,必须把检查嵌入请求路径而非事后补救。

AI代理正从演示走向生产环境,它们调用外部工具的能力越强,安全边界就越模糊。模型上下文协议(MCP)为代理与工具的交互提供了标准化通道,但协议本身不解决信任问题。将NIST的零信任七项原则映射到MCP请求路径上,可以看清哪些能力由规范提供、哪些必须自行构建,以及每次工具调用应当通过的五个检查点。

MCP请求路径上的信任缺口

MCP定义了代理如何发现、调用和接收工具结果,但它默认参与者是可信的。请求路径通常包括:代理发起调用、客户端转发、服务端执行工具、结果回传。在这条链路上,身份、权限和上下文都可能被伪造或滥用。零信任的核心假设是“永不信任,始终验证”,这与MCP的默认假设形成直接冲突。

据原文分析,MCP规范提供的是通信约定,而非安全策略。代理可以调用任何已注册的工具,服务端也可以返回任意内容。如果没有额外的验证层,一个被劫持的代理或一个恶意工具就能在系统内横向移动。

模型上下文协议(MCP) 是由 Anthropic 于 2024 年底提出并开源的标准化协议,旨在统一大语言模型与外部工具、数据源之间的交互方式。它采用客户端-服务端架构:MCP 客户端嵌入在代理宿主中,负责与 MCP 服务端建立连接;服务端则封装某个工具或数据源,对外暴露工具列表、资源与提示模板等能力。协议基于 JSON-RPC 2.0 定义消息格式,支持工具发现(tools/list)与工具调用(tools/call)等语义。理解这一架构有助于看清信任缺口的来源——MCP 只规定消息如何封装与路由,并未规定调用方身份如何证明、服务端能力如何被约束,因此身份伪造、工具冒充与结果篡改都发生在协议语义之外。

NIST七项原则的映射

NIST零信任架构的七项原则包括:所有数据源和计算服务均视为资源;所有通信无论位置均需保护;会话级访问控制;动态策略决定访问;持续监控资产完整性;严格的身份验证与授权;收集数据用于安全态势改进。将这些原则逐条对应到MCP请求路径,可以识别出规范覆盖的部分和空白区域。

例如,原则一要求把所有工具视为资源,这意味着每个工具调用都需要独立的授权决策,而不是依赖网络位置。原则三要求会话级控制,而MCP的会话模型需要额外机制来绑定身份与权限。原则五和七涉及持续监控与日志,这通常超出协议范围,需要平台层实现。

NIST 零信任架构 出自美国国家标准与技术研究院发布的 SP 800-207 特别出版物,其核心命题是:不应基于网络位置(如内网/外网)给予任何隐性信任,所有访问请求都须经过显式验证与最小权限授权。该文档提出的七项原则构成了零信任落地的设计准则,涵盖资源统一视之、通信全程保护、会话级访问控制、动态策略决策、资产完整性持续监控、严格身份验证与授权、以及日志数据用于态势改进。与传统的边界防御模型不同,零信任把策略决策点(PDP)与策略执行点(PEP)分离,由前者集中评估上下文再下达授权决定。将这一框架套用到 MCP 请求路径上,实际上就是要求在代理与服务端之间插入类似的决策与执行环节,而不是依赖协议默认的互信假设。

每次调用应通过的五个检查

原文提出,每个AI代理的工具调用都应通过五个检查点,以落实零信任。这些检查覆盖身份、授权、上下文、数据完整性和可审计性。

身份验证:确认发起调用的代理和最终用户身份,而非仅信任客户端声明。授权决策:基于策略判断该代理是否有权调用该工具,以及允许的操作范围。上下文校验:检查调用参数是否与当前任务和会话一致,防止参数注入或越权。结果完整性:验证工具返回的内容未被篡改,且符合预期格式。审计记录:记录调用链路上的关键事件,用于事后追溯和态势分析。

这五个检查并非MCP规范内置,而是需要在代理框架或网关层实现。原文强调,缺少任何一项都会让零信任形同虚设。

构建与规范的边界

理解MCP提供什么、需要构建什么,是落地零信任的前提。规范提供了消息格式、工具发现和调用语义,但身份体系、策略引擎、日志管道和异常检测都需要自行设计。原文的映射图显示,七项原则中只有少数能直接对应到规范特性,大部分需要平台能力补足。

对于正在构建AI代理系统的团队,这意味着安全投入不能后置。将零信任检查嵌入MCP请求路径,而非事后补救,才能让代理在调用工具时保持可控。协议是通道,信任必须由每一层验证来建立。

策略引擎 是零信任落地中的核心组件,负责在每次工具调用前依据身份、角色、调用参数、会话上下文与风险信号做出允许、拒绝或降级的决策。在 MCP 场景下,策略引擎通常以旁路服务或网关插件的形式部署在客户端与服务端之间,接收调用元数据并返回授权结果。它与 MCP 规范的关系是互补而非替代:规范负责把调用意图结构化地表达出来,策略引擎则对这种结构化请求施加规则。工程上常见的做法是用声明式策略语言(如 Open Policy Agent 的 Rego)描述“哪个代理在何种上下文中可调用哪个工具的哪些参数范围”,从而实现策略与代码解耦、便于审计和灰度调整。缺少这一层,MCP 的工具调用就退化为无约束的远程调用。

分享:

相关推荐