什么已被证明,什么还没有。
一项无法被反驳的安全主张不是主张,是广告。本页用内部计划所使用的同一套措辞,声明每个配置档的证据等级,好让外部的人能拿它与已经公开的东西相互对照。
四个等级
每个工作包收尾时都要声明其中之一,与 PASS、FAIL 或 SKIP 以及分母并列。没有第五个等级,也没有舒服的中间地带。
设计已规范、已评审。什么都没有执行。描述某样东西将如何运作,永远换不来一个 PASS。
模拟对着 fixture 执行,提供方与审批都标明为 fixture。这不是集成,也从不被说成是集成。
真实集成对着真实提供方、在获授权的账户中、针对确切被测的那个配置档执行——也仅限于那一个。
未评估没有任何探针跑过。这是默认值,不是疏漏,而且从不计为通过。
今天已被证明的
上面那些规则的存在,是为了让这份清单保持诚实,而不是为了不列清单。每一条都是代码的性质,不用问我们就能核对。
一份授权只消费一次
单次使用是 grant 模式中类型层面的字面量,任何其他取值在校验时都会被拒。它不是某个人记得去递减的计数器。
receipt 不用联网即可验证
整条验证路径上的网络调用为零。五年之后核验的一份 receipt,既不依赖我们还在线,也不依赖某个可变的注册表。
适配器无法重新定义已授予的内容
提供方客户端拿到的是效果与一个幂等键。它从不拿到 grant,也不拿到 authority,所以没有可以扩大的东西。
变更绝不会被盲目重试
对账是对提供方的唯一一次二次调用。如果对账本身失败,结果会被记录为不确定,而不是被假定。
云端无法抬高本地上限
本地策略检查是仅拒绝的,并固定 tenant、网关、提供方、适配器摘要、authority、可接受的策略版本、资源规则与金额上限。它要求已安装一份签名的本地策略,没有它生产模式根本拒绝启动。
其中两条取决于你怎么部署:本地上限需要已安装一份签名策略——在没有策略的沙箱里就不存在上限——而凭据隔离取决于你选择的连接器与部署模式。
让它可被反驳的那些规则
- SKIP 与未评估从不计为 PASS。
- 没有探针的路径保持未评估。它不继承另一条路径的覆盖。
- 覆盖清单是一项测试框架必须有能力反驳的主张:若某个绕过成功造成了效果,已声明的覆盖就转为「被反驳」,关卡随之失败——哪怕文件里写着「已保护」。
- 适用性在运行时存在之前就已固定。任何东西都不能在失败之后被标为「不适用」。
- 用 MFA 或法定人数测试某个连接器,并不能为多步委派配置档背书。每一项主张都会点名自己所测试的链条与版本。
- 审批用的 fixture 不是真正的 MFA 或法定人数,模拟出来的审批也绝不会被当作人工审批来呈现。
一份 receipt 确立了什么
一份 Action Receipt 证明的是:什么经过了一个已登记的 Guardian,以及那个 Guardian 能够确立的结果。超时会通过回读提供方来对账,绝不盲目重试,而含混的结果会保持为不确定,不会被向上取整成成功。
点名的威胁
我们缓解的那些,以及仍然敞着的缺口。
Tool poisoning
某个宿主篡改工具描述,好让模型用被操纵的参数去调用。工具目录以服务器为准——服务器提供一份固定清单,不接受客户端给出的工具定义——并由允许列表限定某个客户端能调用什么。敞着的缺口:所提供的 manifest 尚未签名,其完整性因此依赖于传输层。
敌意的宿主或客户端
编排智能体的那个进程本身就是敌意的。作用域与工具允许列表限住损害范围,每次调用都有审计,密钥可立即吊销。敞着的缺口:API 密钥是持有人凭据,因此握有它的敌意宿主在被吊销之前就等同于该 tenant。短时效的委派令牌正是为了收窄这一点。
经由被分析内容的 prompt injection
一条消息试图借着被分析的内容注入指令。guard 做的是分类与分析;它不执行自己读到的东西,回应里带的是抽取出的事实而非指令。合约之外的效果一律被拒,无论有没有哪个检测器看见了这次注入。
评审之后的目录变更
你批准过的,不等于之后启动的。已固定的快照会与当前目录相比,实质性的变化会要求复核,而不是自行生效。
在目录站点上的冒名
第三方发布一条伪造的条目。规范的端点与 manifest 由服务本身提供。敞着的缺口:目前还没有公开的 manifest 签名,也没有域名验证。
担保之外
点名说出,而不是暗示。
- 宿主的管理员。谁掌控这台机器,谁就掌控上面跑什么。
- 被攻陷的 Guardian 或签名密钥。
- 在已登记执行路径之外采取的行动。receipt 因其构造而对此保持沉默。
- 一条没有人观测到的侧信道。
- 那份已获批准的 mandate 本就允许的损害。授权并不证明真实、无害或正确。
- 提供方账户的法律所有权——没有任何 receipt 能确立这一点。
不存在全局观测
不存在对一台宿主的完整上下文、其邮件、其记忆或其他 MCP 服务器流量的视野。能知道的只有 bridge 自身的目录、经由它的那些调用,以及被显式导入的快照。一个配置哈希描述的是一个配置档;它不是对宿主的密码学证明。单靠一个容器,若不展示其网络与挂载,并不能证明隔离。
关于签名
manifest 签名证明的是完整性与来源。它不证明无害,而且没有任何徽章——包括我们自己的——能让一个 MCP 服务器变得安全。
本页上的一项主张如何改变
不是靠改写它。一项新的能力主张在出现之前,要先对照代码加以验证并注明日期,而验证表就放在仓库里、紧挨着这些文字。一个没通过检查的页面会把失败留在明面上,而不是被悄悄重写——后续的一次运行会生成新的版本,而不是替换掉旧的结果。没有出资的 bug bounty,也没有第三方独立审计,这两者在真正存在之前都不会宣布。
本页状态
上面的证据等级与规则今天即已生效。按配置档列出的表格会随着每个工作包收尾,公布其观测到的结果,并附上分母、版本与配置。在某个配置档拥有自己针对真实提供方的结果之前,它都会被列为模拟或未评估——绝不会从一个 mock 或另一个连接器外推而来。