security: add release trust authority bootstrap

This commit is contained in:
2026-09-27 11:10:21 +08:00
parent 440099e069
commit c600023c83
5 changed files with 2597 additions and 1 deletions
@@ -6,7 +6,7 @@
本工具只处理 RC-06 的一个精确发布批次:60 个合同资产、14 个 Prompt 模块和 31 项处置结论。唯一人工审核人为陈钰麒(总经理)。离线根密钥和 apply 服务密钥由系统按用途隔离管理,它们不是人工审核人。
当前没有生成真实审核私钥、正式签名、候选 tag、发布收据或生产授权。内部试点、UAT、生产及公众开放继续 `NO_GO`。一次 RC-06 签名不等于资产已经发布,也不等于授权公众生产切流。
陈钰麒已在受控本机完成审核密钥初始化;该事实只表示审核私钥已加密保存并完成公钥注册准备。RC-06/recovery/apply 技术密钥、源码 pin、正式签名、候选 tag、发布收据和生产授权仍未形成。内部试点、UAT、生产及公众开放继续 `NO_GO`。一次 RC-06 签名不等于资产已经发布,也不等于授权公众生产切流。
## 2. 审核人只需要执行的两个入口
@@ -54,6 +54,30 @@
- 后续通过业务 API 应用 74 项内容,并由服务密钥签署 74 项机器结果和在线 hash;
- 继续验证 1 个起草+8 个审查运行时 Prompt 快照以及 RC-06 UAT。
系统侧使用 `yuqei-infra/scripts/Launch-ReleaseAuthority.ps1` 调用
`rc06-release-trust-bootstrap.py`。该入口与审核人入口分离,默认非交互:
- `initialize` 一次性生成互不相同的 RC-06 approval root、recovery root 和
apply-service 三把 Ed25519 技术密钥;私钥只以 Windows CurrentUser DPAPI
密文保存在源码树外,并继承仅当前账户与 SYSTEM 可访问的 DACL;
- `build-recovery-keyrings` 使用 recovery root 分别签发 first-release 与
rollback 两种 schema/key-id 的 keyring;两者可共享 recovery root,但不能
混用 schema、root key id 或签名 payload;
- `pin-source` 默认只预览,显式 `--apply` 才会以严格匹配和事务回退方式固定
三类公钥 SHA、两个 recovery keyring payload SHA 和精确 epoch;不写入私钥;
- `sign-rc06-keyring` 只在冻结 manifest 形成后签发绑定精确 manifest 原始 SHA
的候选专属 keyring;
- `sign-apply-payloads` 只签署已经包含 74 项在线 hash、且可由正式 RC-06
verifier 完整验证的 canonical apply payload;所有 receipt 先在内存生成并
逐项自验,再作为禁止覆盖的完整 bundle 原子写出,不调用业务 API;
- `provision-apply-private-key` 在安全 secret-store 交付适配器完成前保持
fail-closed,不会导出明文或 DPAPI 私钥。
DPAPI 与 DACL 不能抵御已经控制当前 Windows 账户的进程。正式初始化仍只能在
发布负责人确认的干净受控主机上执行;临时 UAT 主机、源码仓库、聊天、邮件、
共享盘和构建 artifact 均不得成为技术私钥的保存位置。当前新增工具代码本身不
表示真实技术密钥、pin、keyring、apply receipt 或发布授权已经形成。
## 4. 不得执行的操作
- 不得手工编辑 manifest、request、keyring、approval、SHA 或签名 JSON;