摘要

  • RFC 9943 定义 SCITT:发行方就制品签署声明,透明服务按其政策登记,收据证明该登记的有限属性。
  • 收据可以支持对来源和历史的审计,却不能证明声明准确、发行方无遗漏,也不能自动得出某项本地接受决定。

应当先把几个动词分开。发行方声明;透明服务登记;审计方检查;依赖方决定。SCITT 将这几个动作接在一起,却不把它们混成一个动作。发行方以受保护的 COSE 材料把身份、主题和关于制品的声明绑定。透明服务(TS)验证签名,执行公开的登记政策,将已接受的声明加入可验证数据结构,再发出 COSE 收据。此后,读者可以验证包含证明,审计方可以检查序列一致性。这是对“某声明如何进入某一记录”的强证据,不是对制品整体质量的总判决。

每个角色只能为自己的那部分事实说话。发行方应为它签署的内容负责;TS 应为它公开的政策、信任锚以及登记行为负责;审计方应为检查方法负责;依赖方则必须为接受、限制、暂缓或拒绝制品的后果负责。如果一个门户把这一长链压成“可信”,责任就会被从真正承担损失的一方悄悄移走。

RFC 9943 对登记边界说得很清楚。TS 必须验证签名、在受保护头部绑定发行方标识、维护信任锚,并保存明确的登记政策。但额外检查的范围由实现决定,甚至可以没有额外检查;客户端认证与授权同样不在该架构范围内。因此,一张收据最多说明一个具体声明通过了一个可识别的门槛。它并不说明该门槛问过所有重要问题。

即使政策很严格,这一点也不变。政策可以要求已知密钥、受保护的身份和主题、指定媒体类型或特定属性。这样做使登记规则可以复现、可供审计。但它不能证明 SBOM 已穷尽、漏洞说明仍然有效、构建环境没有缺陷,或供应商已经提交所有不利事实。TS 的价值在于使自己的登记行为难以被事后抹去;它不应被假定成内容真伪的裁判或最终风险的承担者。

规范的安全考虑明确指出:发行方可能有意或无意地作出错误声明,登记只能证明声明由该发行方产生。同一发行方以后可能提交替代声明,其他发行方可能提供更正信息;发行方还可以选择性地登记其中一部分声明。透明机制提高了发现、归属与比较这些差异的能力,却不能用密码学把未披露的内容自动显现出来。

账本顺序也需要克制地理解。除非 TS 的登记政策另有说明,依赖方不能把可验证数据结构中的顺序当成声明实际发出的顺序。包含证明只能表明某声明在某时处于该结构的某个位置;它不能证明这是最后的关键事实、最重要的事实,或制品完整经历的时间线。一个可核验的条目序列不是所有现实事件的完整叙事。

成熟的操作应保留四个问题:发行方究竟说了什么?验证了哪一个签名、身份和主题?TS 用什么政策登记,并且收据究竟证明什么?最终由哪一条本地规则决定该证据是否足以支持行动?RFC 9943 明确允许依赖方在完成密码验证后,结合信封、收据、载荷和本地状态执行任意验证政策。这不是尚待自动化的缺口,而是应由承担后果者保留的判断位置。

Heng Lu 关于“最小初始规范”的论点在这里很适用:共同机制之所以能跨组织流动,正是因为它只让一个有限命题可验证,而不侵占未来的本地决定。SCITT 收据可以跨边界传递,因为它对登记声明说的是一件精确的事。若把它暗中当成采购授权、部署批准或安全保证,每个接收者都会继承看不见的外部政策。一次验证成功,证明的是已命名的机制对已命名的材料运行成功;它不取得替组织决定的权利。