4. 密钥管理基础:非对称加密、短期证书、EPID与密钥轮换策略

在镜像供应链中,信任的根植于密钥的安全管理。Sigstore 体系摒弃了传统的长期密钥对,转而采用非对称加密、短期证书、临时身份(EPID)以及自动化的密钥轮换策略,从而大幅降低密钥泄露带来的影响范围。本章将深入剖析这些核心机制及其在 OCI 分发集成中的调优要点。

4.1 非对称加密:签名与验证的数学基础

非对称加密使用一对密钥:私钥(保密)用于签名,公钥(公开)用于验证。Sigstore 默认使用 ECDSA(椭圆曲线数字签名算法)或 Ed25519 曲线,相比 RSA 具有更短的密钥长度和更高的性能。

特性 RSA-2048 ECDSA P-256 Ed25519
密钥长度 2048 位 256 位 256 位
签名速度 较慢 快 极快
验证速度 较快 快 极快
安全性 高 高(推荐) 极高(抗侧信道)
Sigstore 支持 有限 默认 可选
调优建议:在 CI/CD 流水线中,优先使用 Ed25519 进行签名操作,可减少约 30% 的签名耗时;验证端保持与签名算法一致,避免因算法不匹配导致的验证失败。

4.2 短期证书:Fulcio 与动态身份

Sigstore 的 Fulcio 证书颁发机构(CA)签发短期 X.509 证书,有效期通常为 10 分钟。开发者无需管理长期私钥,每次签名时通过 OIDC 身份(如 GitHub、Google、Microsoft)动态获取证书。

核心流程:
  1. 开发者通过 OIDC 提供者认证身份(如 GitHub Actions 的 id-: write)。
  2. Fulcio 验证 OIDC ,签发短期证书,证书中包含公钥和身份信息。
  3. 开发者使用证书对应的临时私钥对镜像摘要进行签名。
  4. 验证者通过 Fulcio 的根证书链验证签名证书的有效性。
Fulcio 短期证书签发流程 开发者/CI OIDC 提供者 Fulcio CA 临时密钥对 短期证书 证书有效期仅 10 分钟,私钥无需持久化存储,泄露风险极低

4.3 EPID:临时身份与匿名性

EPID(Enhanced Privacy ID) 是 Intel 提出的零知识证明协议,Sigstore 的 Rekor 组件利用其变体实现临时身份。EPID 允许签名者在不暴露长期身份的情况下证明自己是某个可信组的成员。

  • 匿名性:验证者只能确认签名来自可信组,无法追踪具体签名者。
  • 不可链接性:同一签名者的多次签名无法被关联。
  • 撤销能力:组管理员可撤销特定成员的签名权限,而不影响其他成员。
注意:EPID 在 Sigstore 中主要用于硬件安全模块(HSM)或 TPM 场景。在纯软件 CI/CD 环境中,通常使用 Fulcio 短期证书 + OIDC 即可满足需求,EPID 会增加实现复杂度。

4.4 密钥轮换策略:自动化与生命周期管理

密钥轮换是降低长期密钥风险的核心手段。Sigstore 通过以下机制实现自动化轮换:

轮换对象 轮换频率 触发方式 影响范围
Fulcio 根证书 1 年 手动 + 审计 全局信任链
Fulcio 中间证书 3 个月 自动(TLS 类似) 所有短期证书
短期签名证书 10 分钟 自动(每次签名) 单个镜像签名
Rekor 日志签名密钥 6 个月 自动 + 手动备份 透明日志完整性
Sigstore 密钥轮换生命周期 根证书 (1年) 中间证书 (3月) 短期证书 (10分) 日志密钥 (6月) 轮换策略核心原则: 1. 短期证书自动轮换,无需人工干预 2. 根证书轮换需离线仪式,确保信任链安全

4.5 调优实践:OCI 分发中的密钥管理

在 OCI 分发集成中,密钥管理调优需关注以下要点:

  • 签名代理缓存:在 CI 中复用短期证书的临时密钥对,避免每次签名都请求 Fulcio,减少网络延迟。
  • 验证端证书缓存:缓存 Fulcio 的中间证书和根证书,TTL 设置为证书剩余有效期的 80%。
  • 密钥轮换监控:对 Rekor 日志签名密钥设置告警,在轮换前 7 天通知运维团队。
  • 硬件安全模块(HSM)集成:对于根证书和中间证书,使用 HSM 存储私钥,并启用 EPID 模式增强匿名性。
推荐配置示例(cosign 环境变量):
# 启用短期证书缓存,减少 Fulcio 请求
export COSIGN_FULCIO_URL=https://fulcio.sigstore.dev
export COSIGN_CERT_CACHE_TTL=480  # 8 分钟

# 指定密钥轮换策略
export COSIGN_REKOR_KEY_ROTATION_INTERVAL=180d  # 180 天

# 启用 EPID 模式(需 HSM 支持)
export COSIGN_EPID_ENABLED=true
export COSIGN_EPID_GROUP_ID="your-group-id"

通过上述机制,Sigstore 实现了从数学基础到工程实践的完整密钥管理闭环,确保镜像供应链的信任边界在动态环境中始终保持安全与高效。