已验收 4 · 含当前剩余 32
正式第 5/36 刀 · D05-A03-P03c-S08-R02-C01 · Auth 7/8 · S08 1/4
Auth S08 R02 四席独立 Ballot 工作台合同已就绪,外部权威待绑定,生产仍关闭
R02-C01 已把 Authority Set、十八组 Ballot 字段、Ed25519 外部签名、四席 IdentityRef/KeyRef 去重、最长一小时有效期、十步验证和十六类拒绝固化为机器合同。当前 C02 四席外部权威绑定 0/4、真实 Ballot 0/4;私钥不进入 Portal,4/4 也只准入 R03,不是迁移、部署、shadow、active、ES256、JWKS 或正式推进许可。
PR #27 经 PR #76/#77 与主干 #78/#79 四条检查后进入 Auth main;Ballot/Authority Set 合同、失败关闭验证器、QA 与中文说明已经落库。
旧 release 持续 ACTIVE;生产连接、数据库迁移、写入、Auth 部署、路由、active 与签名切换全部为 0。
FORMAL · AUTH · S08 · R02 · AUTHORITY · BALLOT · VALIDATION · EFFECTS08 R02 进行中 · 不虚报 8/8
当前步骤 2 · 含当前剩余 3
C01 完成 · 当前 C02 · 剩余 3
IdentityRef + KeyRef + Ed25519 公钥
收到 0 · 有效 0 · 接受 0
十步验证 · 十六类拒绝
签票、连接、迁移、部署均为 0
这不是目标稿:页面逐项读出演练回执中的真实值
源码、二进制、数据库传输、Auth 传输、迁移账本、真实旅程、恢复摘要与清场状态共同组成一次可复算的演练。
reits/reits-auth · 候选源码
85607848f264ba4b7c6605ae…11.4.12-MariaDB
NETWORK LISTENING · FALSEshadow · 012-ready
PRODUCTION ACTIVATED · FALSE生产 DSN / 凭据 / 数据均未加载
REMOTE PARAMS · REJECTED六份迁移,两轮执行,一个结构摘要
首次必须全部应用;第二次只能以相同文件摘要跳过。结构摘要变化、未知文件或隐式远程连接都会阻断回执。
BASELINEBASELINEBASELINEBASELINECONVERGENCECONVERGENCE身份、刷新、资源服务器三条真实运行链
每条链都写入隔离 SQL、使用确定性时钟,并对冲突或重放做最终状态读回;成功数量与拒绝数量同时展示。
32 路 SQL 身份并发
- 并发
- 32
- 旧链接
- 1
- 规范读取
- 31
- 非法写入
- 0
单账户收敛 · 所有权冲突拒绝 · key version 7 预检通过
双实例刷新与重放
- 实例
- 2
- 成功
- 1
- 拒绝
- 1
- 代次
- 2
跨实例重放拒绝 · 整族撤销 · 已消费 token、过期会话、未知 pepper 全部拒绝
六类资源服务器令牌
- 正向
- 6/6
- 敌对
- 54/54
- Fallback
- 0
- 时钟
- FIXED
email_otp · phone_otp · hosted · pws · im_delegate · machine
先预检、后监听、持续观察;四类错误永远到不了端口
观察窗口只访问 loopback 健康与元数据端点,不签发生产 token、不读取生产密钥,也不将 shadow 解释为 active。
监听前拒绝
写前拒绝
预检拒绝
启动前拒绝
精确恢复不是“命令成功”:结构与数据必须逐位回到同一摘要
恢复完成后再次启动同一源码下限做 store preflight;任何表漂移都会在回执签发前显示具体表名并终止。
二进制安全 hex dump
db02d96c85fa… = db02d96c85fa…
0d6fca10a986… = 0d6fca10a986…
Store preflight · PASS
实跑发现四个问题,全部保留根因与回归路径
失败不是被删除的噪音;它们说明恢复顺序、字节语义、时间语义和 CI 容量都必须进入架构合同。
恢复顺序触发外键约束
备份按表恢复时子表先于父表进入事务
恢复窗口加 FOREIGN_KEY_CHECKS 围栏,恢复后重启完整约束校验
二进制列破坏文本管道
BINARY 摘要列经普通 dump 产生不可逆字节
备份固定 --hex-blob,恢复前后逐表数据摘要完全相等
TIMESTAMP 发生时区漂移
备份与恢复进程继承不同会话时区
数据库固定 +00:00,Auth client 与回执统一 UTC
CI 工具链展开空间不足
临时 Runner 的 setup-go 无法展开 Go 1.24.13
清理本刀依赖与旧发布临时目录后同提交重跑全绿
临时资源六项归零,生产边界十二项归零
只有这两个账本同时为 0,演练才能从“通过”升级为“可进入评审”。
临时资源清场 · 6/6
authProcesses0databaseProcesses0databaseSockets0loopbackListeners0temporaryWorkDirectories0secretMounts0生产零效果 · 12/12
connections0databaseMigrations0databaseWrites0authDeployments0routeChanges0keyReads0keyWrites0accountMutations0sessionMutations0tokenIssuanceChanges0algorithmChanges0jwksChanges0四步评审协议:Dossier 已封装,四席真实签署才是当前动作
R01 只证明证据和评审输入完整;R02、R03、R04 必须由外部独立 Owner、生产窗口签发方和最终见证人分别完成,Portal 与 CI 都无权自我晋级。
- 01R01COMPLETE
精确评审 Dossier 组装
十六项证据 16/16 绑定、四份逐席检查包和十二项停止条件通过本地确定性验证。
- 02R02CURRENT
四席独立 Ballot
Auth、Security、SRE/DBA、QA/Witness 使用四个不同 IdentityRef 与 KeyRef 对同一 Dossier 摘要形成 4/4 决定。
- 03R03BLOCKED
一次性生产窗口许可
四席全部接受后,另行生成绑定精确时间、目标、停止条件和回滚预算的非 Bearer 单次许可。
- 04R04BLOCKED
独立最终裁决
独立见证复算 Ballot、窗口和生产零变更读回后,才决定 S08 是否完成;Dossier 本身不能自我晋级。
四个工程切片:系统先证明“会严格验票”,再接入真实外部权威
工程进度与正式 S08 进度分账。C01 可以由代码与 CI 完成;C02–C04 必须引入四个独立控制域的真实输入,Portal 不生成 IdentityRef、KeyRef、公钥、Ballot 或签名。
- 01C01COMPLETE
合同与失败关闭验证器
两份 Schema、十步流水线、十六类拒绝、Ed25519 验证与负向 QA 通过。
- 02C02CURRENT
四席外部权威绑定
四席分别提交不同 IdentityRef、KeyRef 与 Ed25519 公钥;私钥不离开各自控制域。
- 03C03BLOCKED
Ballot 收件与独立复算
四份 Ballot 绑定同一 Dossier、六项检查、有效期、唯一 nonce 并通过签名验证。
- 04C04BLOCKED
全票裁决与 R03 交接
四份有效 ACCEPT 只生成 ADMIT_R03_ONLY;任一 REJECT 或缺席继续关闭。
R02-C01 候选与合并后主干完成四条精确绑定检查
PR #76/#77 绑定候选 eecb37d765ae…;main #78/#79 绑定合并提交 038707beb439…。只有 Run API 的 run_number、head_sha、event 与 conclusion 可以作为证据,Runner 名称不能替代任务归属。
ci.yml
- RUN
- #76
- HEAD
- eecb37d7
- CONCLUSION
- SUCCESS
- RUNNER
- EPHEMERAL
reits-minimum-ci.yml
- RUN
- #77
- HEAD
- eecb37d7
- CONCLUSION
- SUCCESS
- RUNNER
- EPHEMERAL
ci.yml
- RUN
- #78
- HEAD
- 038707be
- CONCLUSION
- SUCCESS
- RUNNER
- EPHEMERAL
reits-minimum-ci.yml
- RUN
- #79
- HEAD
- 038707be
- CONCLUSION
- SUCCESS
- RUNNER
- EPHEMERAL
首批按目标编号命名的一次性 Runner 实际承接了仓库中更早排队的 #74/#75。
根因:Gitea 按仓库任务队列调度;Runner 名称不构成 run_number 绑定证据。
处置:读取实际 task 与 Run API 后立即清退旧容器和卷,重新注册两台仓库级一次性 Runner,确认 #76/#77 进入 in_progress 后才继续;主干 #78/#79 再使用另一组全新 Runner。
只按 Gitea Run API 的 run_number、head_sha、event、status、conclusion 记账,不按 Runner 名称推断。授权绑定接入器已就绪:十二步失败关闭,真实输入仍为 0/4
接入器只读外部 Authority Set,精确绑定冻结 Dossier,校验固定席位、公开引用、Ed25519 公钥与跨席唯一性。回执只保留 IdentityRef、KeyRef 和公钥 SHA-256 指纹;私钥、seed、口令、token、签名与代理授权一律拒绝。
外部 Owner 在各自控制域准备公开授权集
Portal 不生成身份、密钥或签名。文件到达后,命令行验证器先完成十二步检查,再输出不含原始公钥的净化回执。
node scripts/verify-auth-s08-r02-c02-authority-binding.mjs --authority-set <外部授权集路径> --expected-dossier-digest 684783317dc35c1c7a1303e57b7143278d1f5fb2e3ba743671c6555f4a883f6b工程能力与外部授权严格分账
- 验证器
- IMPLEMENTED
- Authority Set
- ABSENT
- 绑定
- 0 / 4
- Ballot 收件
- DENIED
- 生产效果
- 0 / 14
- 正式推进
- FALSE
- 01A01
拒绝未知根字段与非对象输入
REJECT_AND_HOLD_PRODUCTION - 02A02
验证 Authority Set Schema 版本
REJECT_AND_HOLD_PRODUCTION - 03A03
精确匹配冻结 Dossier 摘要
REJECT_AND_HOLD_PRODUCTION - 04A04
验证四席数量、固定顺序和 Owner ID
REJECT_AND_HOLD_PRODUCTION - 05A05
验证 IdentityRef URI 与长度边界
REJECT_AND_HOLD_PRODUCTION - 06A06
验证 KeyRef URI 与长度边界
REJECT_AND_HOLD_PRODUCTION - 07A07
验证 Ed25519 公钥编码和 32 字节长度
REJECT_AND_HOLD_PRODUCTION - 08A08
验证四席 IdentityRef 全局去重
REJECT_AND_HOLD_PRODUCTION - 09A09
验证四席 KeyRef 全局去重
REJECT_AND_HOLD_PRODUCTION - 10A10
验证四席公钥全局去重
REJECT_AND_HOLD_PRODUCTION - 11A11
禁止代理和任何私钥、秘密、口令或签名材料
REJECT_AND_HOLD_PRODUCTION - 12A12
仅输出公开引用与 SHA-256 公钥指纹回执
REJECT_AND_HOLD_PRODUCTION
签票不是一句“同意”:十八组字段共同绑定事实、身份、时限、检查和签名
决定只允许 ACCEPT 或 REJECT;有效期最多 60 分钟;ACCEPT 必须六项检查全部通过。签名覆盖所有字段,签署后修改决定、摘要或时间都会失败。
- 01
schemaVersion - 02
subknifeId - 03
ballotId - 04
dossierSubknifeId - 05
dossierDigest - 06
ownerId
- 01
decision - 02
identityRef - 03
keyRef - 04
nonce - 05
issuedAt - 06
expiresAt
- 01
evidenceVectorDigest - 02
checksDigest - 03
checkResults - 04
attestation - 05
signatureAlgorithm - 06
signature
十步验票流水线:从 Dossier 摘要到全票汇总,不允许跳步或宽松解析
每一步只读复算;任何失败都返回 REJECT_AND_HOLD_PRODUCTION。验票器不连接生产数据库、不读取私钥、不写 Ballot,也不创建 R03 窗口。
- 01V01
读取并验证 R01 Dossier 固定摘要
REJECT_AND_HOLD_PRODUCTION - 02V02
验证 Ballot Schema、子阶段和 Owner 席位
REJECT_AND_HOLD_PRODUCTION - 03V03
验证 IdentityRef 与 KeyRef 绑定
REJECT_AND_HOLD_PRODUCTION - 04V04
验证四席身份和密钥全局去重
REJECT_AND_HOLD_PRODUCTION - 05V05
验证六项逐席检查及证据向量摘要
REJECT_AND_HOLD_PRODUCTION - 06V06
验证 issuedAt、expiresAt 与一小时上限
REJECT_AND_HOLD_PRODUCTION - 07V07
验证 nonce 与 Ballot ID 未重放
REJECT_AND_HOLD_PRODUCTION - 08V08
验证 Ed25519 外部签名
REJECT_AND_HOLD_PRODUCTION - 09V09
验证禁止代理、人工独立审阅和非执行许可声明
REJECT_AND_HOLD_PRODUCTION - 10V10
汇总四席全票或任一否决并只准入 R03
REJECT_AND_HOLD_PRODUCTION
十六类拒绝矩阵:拒绝原因可定位,处置只有保持生产关闭
覆盖摘要漂移、未知或重复席位、身份/密钥碰撞、公钥无效、签名篡改、时间失效、重放、检查缺失、代理、冒充执行许可、否决票和不足 4/4。
Dossier 摘要不一致
REJECT_AND_HOLD_PRODUCTIONBallot Schema 或子阶段不一致
REJECT_AND_HOLD_PRODUCTIONOwner 不属于四个固定席位
REJECT_AND_HOLD_PRODUCTION同一 Owner 出现重复 Ballot
REJECT_AND_HOLD_PRODUCTIONIdentityRef 缺失、错误或跨席重复
REJECT_AND_HOLD_PRODUCTIONKeyRef 缺失、错误或跨席重复
REJECT_AND_HOLD_PRODUCTION外部 Ed25519 公钥无效
REJECT_AND_HOLD_PRODUCTION签名无效或签署后字段被篡改
REJECT_AND_HOLD_PRODUCTIONBallot 尚未生效、过期或有效期超过一小时
REJECT_AND_HOLD_PRODUCTIONBallot ID 或 nonce 重放
REJECT_AND_HOLD_PRODUCTION六项逐席检查缺失、乱序或 ACCEPT 中存在未接受项
REJECT_AND_HOLD_PRODUCTION证据向量或检查摘要格式无效
REJECT_AND_HOLD_PRODUCTION代理签署、非人工签署或非独立审阅
REJECT_AND_HOLD_PRODUCTIONBallot 声称自身是执行许可
REJECT_AND_HOLD_PRODUCTION任一有效 Ballot 明确 REJECT
REJECT_AND_HOLD_PRODUCTION不足四份有效 ACCEPT Ballot
REJECT_AND_HOLD_PRODUCTION外部权威 0/4 · Ballot 0/4
系统已经能够严格验票,但尚未收到任何真实外部权威或签票。当前状态必须保持 WAITING,而不是用 Fixture、机器人或页面按钮伪造完成。
- RECEIVED
- 0/4
- VALID
- 0/4
- ACCEPTED
- 0/4
4/4 只准入 R03,不是生产执行许可
即使未来四席全部有效 ACCEPT,也仍需 R03 一次性生产窗口和 R04 独立最终裁决。任一有效 REJECT 具有完整否决权,不能被多数票或 Product Owner 覆盖。
FOUR_OF_FOUR_VALID → ADMIT_R03_ONLY → EXECUTION_PERMIT FALSE证据墙:每项都同时显示权威来源、对象和 SHA-256 摘要
本墙冻结 R01 的评审输入:EV01 / EV12 保留 S07 运行时代码基线及其 CI 续链;当前 Auth main d18b62b0be8d… 与 PR #25 / run 70–73 在“主线交付”区另账。Owner 必须从原始权威重新读取并复算,任一摘要不一致都会触发 SC01。
Auth 受保护主干 a3ebd7a947570498a602438e20f11a9b847753fa
e8d2c6a0c12ddeb57651a41b328e4262324e38e0189a6a3a949cfa507d30649aS07 隔离演练二进制
85607848f264ba4b7c6605aeda7ccbc2e9cd9f5c2b021aef3aef362ee415bda4S07 完全隔离演练回执
27523c8bb94ea64f6501fb39d8889ad701892a3fb411674b9553aad1c52cf6e3S07 精确候选源码 e85ec44fabd1382f53b06d5569cce1d8d0895eb6
b7a2b70e2316dd018a2149984c0a846b5fd2a35f14d86ce16ec9e9c280157583001/002/003/004/011/012 迁移集合与文件摘要
67ce2423ad884f7fd71dfb0bfe41f0470d53808a411b0dfd97cf6dd165be6532S07 两轮迁移后结构摘要
db02d96c85fab1c26a3b5100965bb4af50e5c5a1b5e8791d8d7ba4f71cfa02c3身份、刷新与六类资源服务器旅程
81139b973f3ce5e55e70366c4df08b3a564443aea816f7c13a01d4440b7b7c6524 次 shadow 观察与四类监听前拒绝
ba65c4b07bb262efee02797eec1220e025adef5831bf208a1ef82ae4f13028e1结构、数据精确恢复与回滚下限
0f4cad1fc9305855b2b9c8f1c19553fa2e10760e1511301700363f72407871ac临时进程、Socket、监听、目录与秘密挂载六项清场
b5668d3285ecfb9f94eaa0b7b8dbc7e2c902af9d8dcba10e79feb99db5cb8334生产连接、迁移、写入、部署、路由、密钥、账户、会话、签发、算法与 JWKS 十二项为零
15c71297c3101faec0bb378c11dcd14598f9be3af537affc1deabb79ce746c16PR run 65/66、main run 67/68 与合并提交
9f1258433ba0abda97d24539d275114bee0f9e39c3eac203c9736f4946709514生产非 disabled、active 与冲突配置监听前拒绝
81959e1ce981ff3c565e87be7dd5a83bc06067973037b57126440453ece37fd9S07 隔离演练架构、事故与 QA 说明
d54cc27130e55ec0ec29eecd1268483eb2d094885ea9963634ae735a6cf2c95fe85ec44 回滚下限与恢复后 Store preflight
7fd0a9c6dfd78b192975b8e4f0f65aa3e487eb1ce4fbdede8a6e68c3c45c3b04生产 release 18c553c、productionSafe、HS256、JWKS 0 与 Auth 部署 0
23118d7e39010fbc793bacf62567a54f6a0aa6db6414261508e6105c9da93746四个真实评审席位:每席一份输入包、六条检查、四个空签名字段
IdentityRef、KeyRef、Signature、SignedAt 保持空值,是当前 0/4 的真实状态。四席禁止代理、禁止共用身份或密钥、禁止默认同意;Dossier 本身不是授权票。
EV01 · EV02 · EV03 · EV04 · EV07 · EV13 · EV15
- 1
确认 a3ebd7a 是唯一受保护主干,旧 Hosted/PWS 分叉不进入发布谱系。
- 2
复算 e85ec44 源码、S07 二进制和不可变回执摘要。
- 3
确认身份双读、刷新升级和六类校验器没有通用 fallback。
- 4
确认生产默认保持 disabled,active 与 production shadow 仍在监听前拒绝。
- 5
确认回滚下限可在恢复后通过 Store preflight。
- 6
确认本 Ballot 不等于部署、迁移、active 或正式 D05 推进许可。
- IdentityRef
- NULL
- KeyRef
- NULL
- Signature
- NULL
- SignedAt
- NULL
EV02 · EV03 · EV07 · EV08 · EV10 · EV11 · EV13
- 1
确认演练只使用非生产密钥、合成数据、Unix Socket 数据库和 loopback Auth。
- 2
确认六类资源服务器 6/6 正向与 54/54 敌对向量结果。
- 3
确认跨类别 fallback 为 0,issuer、audience、tenant、scope、AMR 与时限失败关闭。
- 4
确认回执、日志、文档和门户不包含秘密、Bearer、个人数据或可重放摘要。
- 5
确认生产密钥读取、写入、算法变化和 JWKS 发布均为 0。
- 6
确认签署必须绑定独立 IdentityRef、KeyRef 和 Dossier 摘要,禁止代理或默认同意。
- IdentityRef
- NULL
- KeyRef
- NULL
- Signature
- NULL
- SignedAt
- NULL
EV03 · EV05 · EV06 · EV08 · EV09 · EV10 · EV15 · EV16
- 1
确认 001/002/003/004/011/012 文件集合和两轮 6+6 迁移账本。
- 2
确认结构摘要、数据摘要、逐表定位和二进制安全备份恢复完全一致。
- 3
确认 shadow 必须先完成 Store preflight 才允许创建 listener。
- 4
确认十二项停止条件均映射为立即中止并保持生产关闭。
- 5
确认临时进程、Socket、监听器、工作目录与秘密挂载 6/6 清零。
- 6
确认真实生产窗口、备份点、回滚预算和单次许可仍不存在。
- IdentityRef
- NULL
- KeyRef
- NULL
- Signature
- NULL
- SignedAt
- NULL
EV01 · EV03 · EV06 · EV07 · EV08 · EV09 · EV10 · EV11 · EV12 · EV16
- 1
独立复算十六项 Evidence Binding,不能信任页面显示值或同一生成进程。
- 2
独立复核 32 路身份、双实例刷新、六类资源与 54 个敌对向量终态。
- 3
独立复核 24 次观察、四类监听前拒绝、精确恢复和回滚下限。
- 4
独立读取 Gitea PR/main 四条 CI、合并提交与 Runner 退役状态。
- 5
独立读取生产 release、HS256、JWKS 0 和十二项生产效果 0。
- 6
四席不是 4/4、IdentityRef/KeyRef 重复或摘要不同即裁决 DENY。
- IdentityRef
- NULL
- KeyRef
- NULL
- Signature
- NULL
- SignedAt
- NULL
十二道评审门矩阵:前三门通过,四席门等待,生产与终局门保持关闭
三种状态必须分开:PASS 是已复核的输入事实;WAITING 是需要真实外部签署;HELD 是依赖条件尚未满足,不能通过页面操作提前解锁。
十六项评审证据完整且摘要有效
S07 精确回执、源码、二进制和恢复下限连续
当前生产独立读回仍为旧 release 与十二项零效果
Auth Owner 独立 Ballot
Security Owner 独立 Ballot
SRE / DBA Owner 独立 Ballot
QA / Independent Witness 独立 Ballot
4/4 Ballot 独立复算与身份、密钥去重
精确生产变更窗口和单次非 Bearer 许可
备份点、回滚预算、自动停止和恢复许可
生产迁移、Auth 部署与 shadow/active 单独授权
独立最终裁决与正式计划推进
自动停止台:任何一项触发,都只有“中止并保持生产关闭”
停止条件覆盖证据、签名、生产结构、恢复预算、运行态、算法与 JWKS、秘密泄露、未授权迁移、未授权部署和自我晋级。
任一源码、二进制、回执或证据摘要不一致
ABORT_AND_HOLD_PRODUCTION四席 IdentityRef、KeyRef 不完整、重复或发生代理签署
ABORT_AND_HOLD_PRODUCTIONBallot 未绑定同一 Dossier 摘要、有效时间或明确决定
ABORT_AND_HOLD_PRODUCTION生产结构与 S05/S07 基线出现未知迁移或摘要漂移
ABORT_AND_HOLD_PRODUCTION生产备份点、恢复演练、回滚下限或预算缺失
ABORT_AND_HOLD_PRODUCTION生产环境不是 productionSafe、Preview 开启或现有服务不健康
ABORT_AND_HOLD_PRODUCTION生产算法、JWKS、路由或 release 在评审窗口外发生变化
ABORT_AND_HOLD_PRODUCTION任何生产 DSN、密钥、Bearer、身份明文或个人数据进入 Dossier
ABORT_AND_HOLD_PRODUCTION迁移 011/012 在单次窗口许可签发前被执行
ABORT_AND_HOLD_PRODUCTIONAuth 候选在独立部署许可前进入生产 current
ABORT_AND_HOLD_PRODUCTIONshadow 或 active 在 S08 最终裁决前被启用
ABORT_AND_HOLD_PRODUCTION任何门户、机器人、CI 或单一 Owner 尝试自我晋级正式进度
ABORT_AND_HOLD_PRODUCTION八段真实运行链:每一段都有代码、失败边界和下一权威
登录类别先严格校验,再进入身份双读和会话轮换;shadow 只做只读预检。任何仓库通过都不能替代预发布或生产评审。
email / phone / hosted / pws / im / machineissuer · aud · tenant · scope · AMRlegacy SHA + versioned HMACSERIALIZABLE · conflict closedpromote · rotate · replay witness012-ready · read only真实 SQL 旅程 + rollbackAuth / Security / SRE / QA不是概念图:十组真实变更面组成 R02-C01 签票验证交付
Ballot 合同、Authority Set、Ed25519 验证器、正负向测试、中文说明、远程门禁、任务包与消费证据来自 Auth 权威仓;Portal 只读导入,不复制私钥或替 Owner 生成签票。
.reits/review-dossiers/knife5-s08-r02-owner-ballot-intake.json
固定正式 5/36、Auth 7/8、S08 1/4、R02 工程 1/4、Ballot 0/4、十步验证与十六类拒绝。
.reits/review-dossiers/auth-s08-owner-ballot.v1.schema.json
固定十八组签票字段、最长一小时有效期、六项检查、独立人工声明、ED25519 和非执行许可。
.reits/review-dossiers/auth-s08-owner-authority-set.v1.schema.json
固定四席公开 IdentityRef、KeyRef、公钥和禁止代理字段;私钥永不进入合同或门户。
internal/review/ballot.go
验证 Dossier 摘要、四席身份/密钥去重、检查摘要、时间窗、重放、签名和全票边界。
internal/review/ballot_test.go
在进程内生成一次性 Fixture,验证 4/4 只准入 R03,并拒绝篡改、过期、重复身份与代理。
cmd/s08-ballot-verify/main.go
安全空态可直接验证;外部 Authority Set 与 Ballot 目录必须同时提供,只读复算且不接触私钥。
docs/knife5-s08-r02-independent-owner-ballots.md
解释四个工程切片、十八组字段、十步验证、十六类拒绝、操作命令和真实下一动作。
.gitea/workflows/ci.yml
在 gofmt、vet、race 和构建之外强制运行 R01/R02 两个只读验证器。
.reits/task-packets/knife5-s08-r02-owner-ballot-intake.json
固定本切片范围、验收、回滚、私钥禁区和跨仓消费责任。
.reits/consumer-evidence/knife5-s08-r02-owner-ballot-intake.json
绑定合同、Schema、验证器、测试、中文文档和任务包摘要;Portal 在自己的仓库另建消费证据。
身份双读事务:同一已验证输入,同时计算旧 SHA 与版本化 HMAC
事务内先校验 key version verifier,再锁定 canonical/legacy link。任何双命中不一致都拒绝,禁止跨账户“自动修复”。
kind + normalized value
未验证、空值、非法类别在计算摘要和数据库写入前拒绝。
SHA256 · READ ONLY
只查询历史 link,不从旧摘要反推出新键,不再新增旧摘要。
HMAC-SHA256 · vN
身份域隔离、版本显式、verifier 常量时间预检。
ONE ACCOUNT
账户与 link 原子写入;冲突、竞态和双账户命中全部回滚。
新 0 · 旧 0创建或绑定单一账户仅真实已验证身份可进入新 1 · 旧 0命中 canonical link不得补写跨账户 legacy新 0 · 旧 1原子升级 legacy link同一事务写入 HMAC link新 1 · 旧 1账户必须完全一致不一致立即回滚,写入 0刷新令牌族:按需升级、精确轮换、跨实例重放整族撤销
清除旧 SHA 不等于丢失重放能力;独立 replay witness 保留最小不可逆识别面,任何重放都撤销整个 family。
解析版本
只接受 rfr2_<version>_<opaque> 或合法旧会话
验证 pepper
版本状态与 verifier 常量时间校验
锁定令牌族
SERIALIZABLE 事务读取 family 与 current token
升级或轮换
旧会话只升级一次;当前 token 只消费一次
写 replay witness
清除 legacy SHA 后仍可跨实例识别重放
整族撤销
重放、冲突或竞态触发 family 原子 revoke
版本位用于选择 pepper,不把 secret 或摘要暴露给客户端。
有效旧会话才能升级;legacy SHA 在原子提交后清除。
跨进程、跨实例仍能识别已消费旧令牌。
重放、冲突、过期或未知版本都不签发新令牌。
六类严格校验器:没有通用 fallback,也没有“差不多可用”
每类都绑定自己的发行者、受众、客户端、主体、租户、scope、AMR、TTL 和 auth_time;任一 hostile mutation 必须确定拒绝。
监听前冲突关闭:配置错误不能变成运行时事故
LoadStrict 先收敛环境别名、秘密来源、版本环、validator profile 和 schema 状态,再决定是否允许创建 listener。
同义变量出现不同值
LISTENER DENIED内联值与文件值同时存在
LISTENER DENIED重复、未知、禁用或 verifier 不符
PREWRITE DENIED重复版本或 current 缺失
STARTUP DENIED类别重复、缺失或 profile 不完整
STARTUP DENIEDshadow 但状态不是 012-ready
PREFLIGHT DENIEDproduction 且 mode ≠ disabled
STARTUP DENIED012 休眠拓扑:四张刷新表加一条 receipt 族关联
结构只扩展、不写数据、不存明文 token、不复制 Bearer digest。生产未执行 011/012,S07 只能在隔离预发布数据库演练。
refresh_pepper_versions
版本、状态与 pepper verifier
refresh_families
账户会话族、撤销状态与当前代
refresh_tokens
一次性 token digest、代次与消费状态
refresh_replay_witnesses
旧令牌最小重放见证,不保存原 token
Dossier 候选与合并后主线四条远程检查继续保留为前置证据
这里是 R01 历史基线,不是当前 R02 交付。PR run 70/71 与 main run 72/73 均为 success;当前 R02-C01 的 PR #27 与 run #76–#79 已在上方独立记账。
REITS Minimum CI / gate
- RUN
- #70
- HEAD
- c05001d8
- CONCLUSION
- SUCCESS
- RUNNER
- EPHEMERAL
reits-auth security CI / verify
- RUN
- #71
- HEAD
- c05001d8
- CONCLUSION
- SUCCESS
- RUNNER
- EPHEMERAL
REITS Minimum CI / gate
- RUN
- #72
- HEAD
- d18b62b0
- CONCLUSION
- SUCCESS
- RUNNER
- EPHEMERAL
reits-auth security CI / verify
- RUN
- #73
- HEAD
- d18b62b0
- CONCLUSION
- SUCCESS
- RUNNER
- EPHEMERAL
主线 Security CI 收尾时本地 actcache 写入报告 no space left on device。
run 70/71/72/73 均成功;没有源码、测试或生产影响。
处置:在全部远程结论成功后停止并删除仓库 Runner,清理 .runner、临时目录与 1.6GiB actcache,独立读回 Runner/进程/目录/缓存均为 0。
S07 没有覆盖或抹掉数据库副本与兼容运行时基线
S05 的结构摘要、双次重放、旧表不变量与 S06 身份、刷新、校验、配置证据继续作为 S08 评审输入。
生产只读 = 克隆导入
空库与克隆两次重放
迁移前后与恢复后一致
旧、新二进制只读通过
结构、数据、行数一致
S01–S07 二十九项准入:源码、实跑、恢复、CI 与生产边界闭环
前十七项保留 S06 连续性,后十二项固定 S07 隔离演练;不能用本地测试替代 Gitea,也不能用演练通过替代生产授权。
当前主干精确继承
S06 候选父提交为 S05 主线 ecd099c3,未从旧 Hosted/PWS 分叉直接合并。
只扩展数据库边界
012 只创建休眠结构和外键,不含数据写入、破坏性 DDL、明文令牌或 Bearer 摘要。
本地代码质量
gofmt、go vet、go test -race 与 CGO_ENABLED=0 构建在候选 346563a7 全部通过。
最低治理合同
12 项治理检查、5 个任务包与 5 份消费方证据全部通过。
S05 数据库副本基线
生产只读结构摘要、001–004+011 双次重放、五张旧表不变量和精确恢复保持有效。
版本化身份双读
32 并发调用收敛到单一账户;双链接、旧新冲突和无效身份均失败关闭,非法路径写操作为 0。
身份版本密钥验证
版本行在事务中锁定并做常量时间 verifier 校验;未知、禁用或不匹配版本在写前拒绝。
刷新会话原子升级
仍有效旧会话只升级一次,新令牌按版本 pepper 生成并精确轮换;过期或未知版本拒绝。
重放整族撤销
legacy SHA 清除后仍由 replay witness 识别跨实例重放,并原子撤销整个 token family。
六类校验矩阵
Email、Phone、Hosted、PWS、IM Delegate、Machine 六类均逐项校验发行者、受众、租户、scope、AMR 与时限。
跨类降级禁止
issuer、audience、client、principal、tenant、scope、AMR、TTL、auth_time 任一变异均不能回退到其他类别。
配置冲突关闭
环境别名、内联/文件密钥、schema 状态、重复 key/pepper/validator 和 production 非 disabled 在监听前拒绝。
Shadow 只读预检
shadow 只读取版本 verifier/status;active 在 S06 对所有环境拒绝,生产不启动新监听。
候选远程双 CI
同一候选 346563a7 的 Security 与 Minimum CI 均成功。
受保护主干合并
PR #22 在必需检查全绿后合并为 0eeb4798,双父节点精确绑定 S05 main 与 S06 候选。
主干远程双 CI
合并后 main 0eeb4798 的 Security 与 Minimum CI 均成功。
Runner 退役与生产边界
仓库 Runner、临时容器、命名卷均为 0;生产 Auth 仍运行旧 release,迁移、部署、路由和签名变化均为 0。
完全隔离网络边界
MariaDB 只开放本地 Unix Socket 且 skip-networking;Auth 只绑定 loopback,远程数据库参数与生产 DSN、凭据、数据均未加载。
六迁移两轮精确重放
001/002/003/004/011/012 首轮应用 6 次、次轮同摘要跳过 6 次,两轮结构摘要完全一致。
SQL 身份并发旅程
32 路并发得到 1 次旧链接建立与 31 次 canonical 读取,单账户收敛、所有权冲突拒绝、非法身份写入为 0。
双实例刷新重放
两个实例完成两次预检;旧会话并发一成一拒,跨实例重放触发整族撤销,轮换达到第 2 代。
六类资源服务器真实向量
六类正向令牌 6/6 通过,九维乘六类共 54 个敌对变更 54/54 拒绝,跨类 fallback 为 0。
Shadow 观察窗口
store preflight 通过后才监听;24 次健康与元数据观察全部成功,观察失败为 0。
四类监听前失败关闭
active、密钥冲突、Schema 冲突与 production shadow 均在 listener 创建前拒绝。
备份恢复精确一致
恢复前后结构摘要和数据摘要分别完全一致;恢复后二进制在同一源码回滚下限再次通过 store preflight。
实跑问题闭环
外键恢复顺序用约束围栏修复,二进制列用 hex dump 修复,TIMESTAMP 漂移用数据库 UTC 固定修复。
候选与主干远程门禁
PR #23 的 Security/Minimum CI 与合并后 main 的两条同类门禁全部成功,精确绑定 1e6bb35 与 a3ebd7a。
临时执行面完全退役
仓库 Runner、守护进程、本地工作目录和动作缓存均独立读回为 0。
生产十二项零效果
生产连接、迁移、写入、部署、路由、密钥、账户、会话、签发、算法与 JWKS 变化均为 0。
S07 演练器已经进入 main,但生产 Auth 保持旧运行态
源码主线、门户文档、隔离演练和生产运行面必须分账。S07 完成不等于迁移、部署、active、ES256 或 JWKS 发布。
/opt/reits-auth/releases/sso-s39-20260727T023532Z
原 release 持续运行
生产未执行 011/012
DDL 0 · DML 0
未部署 S07 候选二进制
S08 四方签署前拒绝
未切换 ES256
公开 keys 仍为 0
S07 已完成;S08 R01 已封装,当前 R02 四席独立 Ballot
隔离演练和评审材料已经可复算;生产连接、迁移、部署与 active 仍必须在四席 4/4、一次性窗口和独立最终裁决后另行授权。
- 01S01 · 架构COMPLETE
基线分类
确认当前 main 是唯一发布主线,旧分支只作为设计输入。
- 02S02 · AuthCOMPLETE
休眠候选
从当前 main 创建只扩展数据库与配置基础。
- 03S03 · CI Owner / Gitea / QACOMPLETE
远程必需 CI
仓库级一次性 Runner 完成候选远程验证并退役。
- 04S04 · Auth OwnerCOMPLETE
受保护主干
休眠基础通过受保护规则进入主线并完成主干回归。
- 05S05 · DBA / SRECOMPLETE
数据库副本演练
结构指纹、迁移账本、双次重放、备份恢复与旧二进制预检通过。
- 06S06 · Auth / Security / QACOMPLETE
兼容运行时
身份双读、刷新按需升级、六类校验器、配置冲突关闭、候选与主线双 CI 全部通过。
- 07S07 · SRE / Security / QACOMPLETE
预发布演练
隔离数据库迁移、shadow、SQL 旅程、资源向量、观察、恢复、回滚和资源清场全部通过。
- 08S08 · Auth / Security / SRE / QACURRENT
生产变更评审
R01 Dossier 已完成;四席 4/4、一次性生产窗口和独立最终裁决全部通过后,S08 才能完成。
四席外部权威绑定动作
C01 不再重复开发。四位 Owner 必须分别从自己的控制域提交不同 IdentityRef、KeyRef 与 Ed25519 公钥;私钥不离开 Owner 控制域,Portal、CI 与 Codex 都不能读取或代管。
- 01Auth Owner
在各自控制域提交不可代理 IdentityRef、KeyRef 与 Ed25519 公钥
四席 IdentityRef/KeyRef 必须全局唯一;私钥留在 Owner 控制域,Portal、CI 与 Codex 不读取。
- 02Security Owner
在各自控制域提交不可代理 IdentityRef、KeyRef 与 Ed25519 公钥
四席 IdentityRef/KeyRef 必须全局唯一;私钥留在 Owner 控制域,Portal、CI 与 Codex 不读取。
- 03SRE / DBA Owner
在各自控制域提交不可代理 IdentityRef、KeyRef 与 Ed25519 公钥
四席 IdentityRef/KeyRef 必须全局唯一;私钥留在 Owner 控制域,Portal、CI 与 Codex 不读取。
- 04QA / Independent Witness
在各自控制域提交不可代理 IdentityRef、KeyRef 与 Ed25519 公钥
四席 IdentityRef/KeyRef 必须全局唯一;私钥留在 Owner 控制域,Portal、CI 与 Codex 不读取。
R01 交付 2、R02 工程交付 3;十四项签票与生产效果全部 0
真正发生的是 R02 合同实现、Auth main 合并和 Portal 只读导入;外部权威、Ballot、生产连接、迁移、部署、路由、密钥、会话、算法、JWKS 与正式推进均未发生。
- r01AuthMainMerge
- 1
- r01ReviewDossierPublished
- 1
- r02ContractImplemented
- 1
- r02AuthMainMerge
- 1
- r02PortalContractImported
- 1
- authorityBindings
- 0
- ballotsReceived
- 0
- ballotsValidated
- 0
- ballotsAccepted
- 0
- productionConnections
- 0
- databaseMigrations
- 0
- databaseWrites
- 0
- authDeployments
- 0
- routeChanges
- 0
- keyChanges
- 0
- sessionChanges
- 0
- algorithmChanges
- 0
- jwksChanges
- 0
- formalAdvances
- 0
C01 完成:验票合同可执行;当前 C02 外部权威仍为 0/4
R02-C01 已完成 Ballot/Authority Set Schema、十步验证、十六类拒绝与 Ed25519 失败关闭验证器。当前 C02 必须由 Auth、Security、SRE/DBA、QA/Witness 四席分别提供真实外部 IdentityRef、KeyRef 和公钥;私钥不得进入 Portal。四席真实 Ballot 仍为 0/4,R03/R04 与生产继续关闭。