ADR-0003:双层签名 + 复用 app-api 基础设施承载清单服务¶
日期:2026-07-20 状态:已接受
决策¶
通道:热修清单接口新增在现有 app-api-*.dvdfab.cn API 家族(参照 youtube_dl_update 模式),热修包走现有 CDN。硬要求:热修全链路强制 HTTPS + 严格证书校验(不继承现状 VERIFYPEER=0);清单发布权限走热修审批流,与发版系统权限分离。
签名: - 平台层(复用现有):热修 exe 走 Jenkins 既有代码签名流程(Authenticode / Developer ID + 公证)。 - 应用层(新建):清单 + 每个受管文件用 Ed25519 签名;公钥硬编码进客户端,另预埋一把备用公钥供应急轮换;清单带单调递增版本号与过期时间,客户端拒绝旧清单(防 rollback / freeze / mix-and-match,依据 TUF 威胁模型)。 - 密钥与执行点:Ed25519 私钥进 Jenkins 凭据库(与现有签名证书同级管理);热修发布做成专门的 Jenkins 流水线,内置产品+技术双人审批节点,审批通过才执行签名与发布。
理由¶
服务端 1 人 6 周的现实约束下复用成熟基础设施;签名并入 Jenkins 把 PRD 审批流固化为工具流程。参照:Firefox Remote Settings(内容签名)、Sparkle(公钥内置)、CrowdStrike RCA(通道校验教训)。