跳转到内容

首次准入与历史信任

准入是经过六阶段密码验证后的一个单独的语义层。它不会更改签名字节、签名哈希、密钥解析或签名结果 (MWP-ADM-005)。其先决条件是完整的六阶段结果 (MWP-SDV-015) 以及与准入无关的签名哈希 (MWP-SDV-017) 和正确的当前或历史 Registry 证据合约(MWP-SDV-010)。

准入层取决于这些不同的证据和权限边界:

Admission Log 逻辑密钥是 (organizationId, signingHash)。它必须对接受服务进行身份验证,区分发现和权威缺席,保留仅附加完整性,并因不可用、不确定、未经身份验证、完整性失败、冲突或提交失败结果而失败关闭(MWP-ADM-003)。调用者提供的信任布尔值不是这些结果之一。

逻辑键最多存在一条权威记录。重试时发现的相同有效记录是幂等成功,而冲突的文档类型、密钥 ID 或 Principal 会被拒绝而不是被替换 (MWP-ADM-004)。

六阶段密码验证
→ Admission Log 权威查找
→ 验证已找到的记录,或权威确认不存在
→ 准备可信上下文和候选记录
→ 原子式追加或返回现有记录
→ 验证返回的记录
→ 已准入结果

只有权威缺席才允许可信的上下文获取和候选人准备。追加可能会返回本地候选人或并发获胜者,并且返回的记录始终在成功之前经过验证(MWP-ADM-006)。

First-Admission Record 是一个单独的无符号九字段对象。它不会对自身进行身份验证,并且不能包含 signature (MWP-ADM-001)。保留trustedAcceptedAt的词法拼写;将其作为 RFC 3339 即时进行比较,而不需要受保护文档时间使用的大写 Z 拼写 (MWP-ADM-002)。

候选准备不会附加 Event、执行转换或暗示成功。并发获胜者可能会返回不同的记录 ID 或可信时间,但只有经过验证的返回字节才能成功 (MWP-ADM-007)。

记录验证:

  1. 严格解析恰好一个 UTF-8 JSON 值;
  2. 应用规范的 First-Admission Record Schema;
  3. 将 organizationId、documentKind、signingHash、keyId 和 principal 与六阶段结果逐项精确比较;
  4. 将 acceptedBy 与 Admission Log 适配器认证的服务身份精确比较;
  5. 独立检查 trustedAcceptedAt 是否处于所选密钥保留的半开有效区间内。

确切的绑定规则为MWP-ADM-009,可信时间间隔规则为MWP-ADM-010。仅验证候选字节是不够的。已签名的 Event 不能充当其自己的 First-Admission Record;稍后的 Event 只能发布或引用单独的记录 (MWP-ADM-011)。

使用权威历史 Registry 证据进行六阶段密码验证
→ 必须找到记录
→ 验证记录
→ 不签发可信上下文,也不追加

重播无法创建丢失的准入、发出新的可信上下文或将旧文档视为新准入的文档 (MWP-ADM-008)。

承认的结果仍然无法建立 Command 新鲜度或签名者授权。新提出的 Command 具有单独的新鲜度和时钟偏差检查(MWP-ADM-013),并且相关机构在受保护和可信的接受时间分别验证签名者的角色和策略(MWP-ADM-014)。

每次加密后准入失败都会保留受保护的阶段 admission 并在线上映射到 AUTH_INVALID_SIGNATURE (MWP-ADM-012)。

使用本地 准入一致性捆绑包 测试首次准入和历史重放,包括失败的适配器结果。