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

113 lines
6.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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` 三种操作必须经过下列状态机:
```text
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 探针跨区域执行,以及信任运营告警自动关联人工接管工单。