6.8 KiB
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-requestsPOST /api/v1/admin/pilot-operations/evidence-signing/change-requests/{change_id}/reviewGET|POST /api/v1/admin/pilot-operations/evidence-audit/clientsPOST /api/v1/admin/pilot-operations/evidence-audit/clients/{client_id}/revokeGET /api/v1/admin/pilot-operations/evidence-transparency/eventsGET /api/v1/admin/pilot-operations/evidence-probesPOST /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 探针跨区域执行,以及信任运营告警自动关联人工接管工单。