Sigstore供应链签名安全监控与告警 - 第1节

1.1 Sigstore 项目背景

软件供应链攻击在近五年呈指数级增长——从 SolarWinds 到 Codecov,攻击者不再直接攻击最终应用,而是污染构建工具、依赖库和签名基础设施。传统 PGP 签名体系存在三个致命缺陷:

  • 密钥管理分散:每个开发者自行生成、保管和轮换密钥,缺乏统一生命周期管理;
  • 信任锚模糊:PGP 的 Web of Trust 依赖人工验证,大规模场景下几乎不可操作;
  • 无透明审计:签名行为不可公开验证,事后追溯困难。

Sigstore 由 Google、Red Hat、Purdue 大学等联合发起,旨在用 无密钥签名(Keyless Signing) 和 透明日志(Transparency Log) 彻底重构软件签名生态。2021 年进入 CNCF Sandbox,2023 年晋升为 Incubating 项目,已成为业界事实标准。

核心驱动力:Sigstore 将签名从“开发者私钥保管”转变为“短期身份凭证 + 公开可审计日志”,使任何使用 OIDC 身份(GitHub、Google、Microsoft 等)的开发者都能在 30 秒内完成可验证签名。

1.2 核心目标与设计原则

目标 说明 解决的传统痛点
无密钥签名 使用短期 OIDC 令牌 + 临时密钥对,签名后立即丢弃私钥 私钥泄露、丢失、轮换困难
透明日志 所有签名记录写入 Rekor 不可篡改日志,支持公开审计 签名不可追溯、无防抵赖机制
开放联邦 支持任意 OIDC 身份提供商,不绑定特定平台 供应商锁定、身份孤岛
零成本入门 无需管理密钥基础设施,CLI 工具 cosign 一行命令完成签名 PGP/GPG 学习曲线陡峭

Sigstore 的设计哲学可概括为:默认安全、公开透明、身份即密钥。它不要求开发者成为密码学专家,而是将安全责任下沉到基础设施层。

1.3 与软件供应链安全的关系

软件供应链安全的核心是回答三个问题:

  1. 谁 生产了这份工件?
  2. 它 是否被篡改过?
  3. 我 能否信任这个来源?

Sigstore 通过三个组件分别对应这三个问题:

供应链安全环节 Sigstore 组件 作用
身份认证(Who) Fulcio(证书颁发机构) 基于 OIDC 签发短期代码签名证书
完整性验证(What) Cosign(签名/验证工具) 对容器镜像、blob、SBOM 等进行签名和校验
透明审计(Trust) Rekor(透明日志) 永久存储签名元数据,支持公开查询和监控
实践建议:在 CI/CD 流水线中集成 Sigstore 后,每次构建都会自动生成可验证的签名记录。即使攻击者拿到构建机权限,也无法伪造历史签名——因为 Rekor 日志的 Merkle 树结构会暴露任何篡改行为。

1.4 Sigstore 核心架构

下图展示了 Sigstore 在软件供应链中的位置及其内部组件交互流程:

Sigstore 核心架构与供应链安全交互图 Sigstore 核心架构与供应链安全交互 开发者 / CI 流水线 OIDC 身份令牌 Fulcio 短期证书签发 Cosign 签名 / 验证 Rekor 透明日志存储 容器镜像 / 包 带签名的工件 请求证书 下发证书 写入签名记录 推送签名工件 签名指令 🔐 供应链安全闭环 1. 开发者使用 OIDC 身份从 Fulcio 获取短期证书 2. Cosign 用该证书对工件签名,同时将签名哈希写入 Rekor 日志 3. 消费者验证时,Cosign 从 Rekor 查询签名记录,无需预先信任任何公钥

1.5 透明日志与告警的关系

Rekor 透明日志是 Sigstore 区别于传统签名方案的核心创新,也是本课程告警体系的数据基础。每条签名记录包含:

  • 工件摘要(SHA256 哈希)
  • 签名者身份(OIDC 邮箱或 Subject)
  • 证书序列号及有效期
  • 时间戳(RFC3161 可信时间)

当安全团队需要检测异常签名行为时,Rekor 日志提供了不可抵赖的审计线索。例如:

告警场景示例:某开发者的 OIDC 令牌在非工作时间从异常 IP 签名了生产镜像。通过查询 Rekor 日志,安全团队可以立即定位该签名记录,并结合 Fulcio 证书的 OIDC 声明判断是否为身份盗用。