Files
ai-contract-platform/project-docs/V2-P1-07.5-evidence-trust-operations-2026-08-25.md
T
yuqei 1d85329a6a
Build and Test Quality Gate / Contract Web typecheck and build (pull_request) Successful in 9m12s
Build and Test Quality Gate / Isolated Alibaba and Tencent KMS gateway (pull_request) Failing after 4m53s
Build and Test Quality Gate / Python tests and Contract API migration (pull_request) Failing after 24m55s
Security Quality Gate / npm audit, Bandit, pip-audit, detect-secrets (pull_request) Failing after 8m42s
feat: deliver governed contract platform and async AI tasks
2026-08-26 12:53:47 +08:00

6.8 KiB
Raw Blame History

V2 P1-07.5 证据信任运营闭环实施说明

实施日期:2026-08-25
状态:已实现,进入隔离 UAT 与发布门禁
适用角色:平台超级管理员、安全负责人、SRE、法务运营、内外部审计人员

1. 交付结论

P1-07.5 在 P1-07.4 的非对称签名、离线验签、证书吊销和多窗口 SLO 之上补齐了可运营的信任闭环:外部审计方不再共享匿名配额;证书关键状态不再允许单人直接修改;所有关键变更、审计凭证和合成探针形成连续哈希链;平台持续用不含合同数据的合成载荷验证“签名服务—公钥—验签器”链路。

本阶段没有扩大“可靠合同决策”的业务口径,也没有把合同正文、账号凭据、审计令牌或签名私钥写入运营账本。

2. 第三方审计客户端

  • 平台超级管理员可为每个外部审计项目签发独立 Bearer 凭证;
  • 凭证由随机前缀与高熵秘密组成,完整值只在创建响应中显示一次;
  • 数据库只保存带随机盐的 PBKDF2-SHA-256 慢哈希,不保存、记录或再次返回明文凭证;
  • 支持 evidence:verify、trust-bundle:read、transparency:read 作用域元数据;在线验签强制要求 evidence:verify;
  • 每个客户端拥有独立的每分钟、每日和单证据每日配额,匿名访问与不同客户端之间互不抢占;
  • 凭证可设置到期时间,可不可逆撤销;撤销后统一返回无效凭证,不向外部暴露存在性或状态差异;
  • 每次验证仅在最小化账本中关联审计客户端 ID,仍不保存原始 IP、合同正文或凭证。

3. 证书双人审批

证书注册只读取并固化 KMS 公钥、算法、版本和指纹,初始状态为 retired。activate、retire、revoke 三种操作必须经过下列状态机:

registered/active
      │
      ▼
pending change ── reject ──> rejected(证书不变)
      │
      └── approve by another platform admin ──> approved + atomic state change
  • 提议人和审批人按用户 ID 强制不同;同一账号自审返回冲突错误;
  • 审批时重新锁定申请和证书,避免审批期间状态漂移;
  • 激活新证书与退役原活动证书在同一数据库事务内完成;
  • 吊销仍不可恢复,申请原因不少于 8 个字符;
  • 原直接状态接口保留为兼容占位,但总是拒绝写入并提示使用双人变更接口;
  • 本地开发和隔离 UAT 可在首次引导时自动激活配置密钥;staging/production 禁止自动激活并 fail closed。

4. 透明事件哈希链

新增 reliable-evidence-transparency/v1 透明事件链,覆盖:

  • 签名证书注册;
  • 证书变更申请、批准或驳回及最终状态;
  • 审计客户端创建和撤销;
  • 合成验签探针结果。

事件保存连续序号、上一事件哈希、规范化负载摘要和当前事件哈希。公开检查点返回事件数、链头、最近事件时间和全链重算结果;信任包同时携带当前检查点。链验证失败属于高优先级安全事件,应暂停证据交付并保全数据库快照。

边界声明:当前检查点由平台自身发布,用于发现库内历史事件被修改;它不是 RFC 6962 Certificate Transparency 实现,也尚未锚定到外部时间戳、第三方见证者或不可变对象存储,因此不能单独证明平台未重写整条历史。

5. 合成验签探针与 SLO

定时扫描和管理员手动操作均可触发合成探针。探针只生成随机 nonce、当前时间和固定用途标识,计算规范化 SHA-256 摘要后调用当前活动签名器,再使用数据库固化的公钥立即验签。

  • 不读取合同、租户业务字段或真实证据包;
  • 保存签名证书 ID、算法、公钥指纹、耗时、结果和脱敏错误码;
  • 默认每 15 分钟运行,目标成功率 99%;
  • 与扫描和通知 SLO 一样计算快速、中速、长周期错误预算和燃烧率;
  • 活动证书不存在、KMS 不可用、公钥漂移或签名无效均记录失败,不降级到无签名或本地生产签名。

6. 接口和数据迁移

新增管理接口:

  • GET|POST /api/v1/admin/pilot-operations/evidence-signing/change-requests
  • POST /api/v1/admin/pilot-operations/evidence-signing/change-requests/{change_id}/review
  • GET|POST /api/v1/admin/pilot-operations/evidence-audit/clients
  • POST /api/v1/admin/pilot-operations/evidence-audit/clients/{client_id}/revoke
  • GET /api/v1/admin/pilot-operations/evidence-transparency/events
  • GET /api/v1/admin/pilot-operations/evidence-probes
  • POST /api/v1/admin/pilot-operations/evidence-probes/run

新增公开接口:

  • GET /api/v1/public/reliable-decision/transparency-checkpoint

升级接口:

  • POST /api/v1/public/reliable-decision/verify:可选审计客户端认证;
  • GET /api/v1/public/reliable-decision/trust-bundle:附带透明检查点;
  • GET /api/v1/admin/pilot-operations/insights:附带验签探针 SLO;
  • GET|PUT /api/v1/admin/pilot-operations/policy:附带探针开关、间隔和 SLO 目标。

迁移版本为 20260825_0070 与 20260825_0071:前者新增审计客户端、密钥变更申请、透明链头、透明事件和验签探针运行五张表,并让验证账本可选关联审计客户端;后者用数据库部分唯一索引保证每个运营主体最多一个活动证书、每个证书最多一项待审批变更,且同一运营主体最多一项待审批激活申请。

7. 前端运营体验

试点运营中枢新增三组工作区:

  • “KMS 签名证书与双人变更”:注册待用证书、发起变更、审批或驳回;
  • “第三方审计客户端”:设置作用域和独立配额、一次性复制凭证、撤销项目访问;
  • “证据信任运营”:查看透明检查点、事件链和探针历史并手动探测。

公共验签页支持可选审计凭证。凭证只保存在页面内存,不写 Local Storage、Cookie 或服务端会话;代理只转发满足 rac_<prefix>.<secret> 格式的 Bearer 值。

8. 发布门禁与后续边界

发布必须满足:

  • 空库升级、0070 → 0069 → 0070 及 0071 → 0070 → 0071 往返成功;
  • 双人审批、自审拒绝、吊销历史证书、审计凭证撤销、透明链重算和探针通过自动化测试;
  • OpenAPI 解析及引用检查、Contract API 全量测试、Web 测试、TypeScript 和生产构建全部通过;
  • staging 使用两个真实独立平台管理员账号完成轮换演练;
  • staging 使用真实阿里云或腾讯云 KMS 完成正常、超时、拒绝和恢复探针演练;
  • 首个生产检查点应复制到受控的外部不可变存储并留存审批证据。

后续建议进入 P1-07.6:透明检查点外部见证/时间戳、审计凭证双人签发与轮换、KMS 探针跨区域执行,以及信任运营告警自动关联人工接管工单。