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
113 lines
6.8 KiB
Markdown
113 lines
6.8 KiB
Markdown
# 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 探针跨区域执行,以及信任运营告警自动关联人工接管工单。
|