Sigstore Go库:软件供应链安全的基石

GitHub May 2026
⭐ 517
来源:GitHub归档:May 2026
Sigstore的通用Go库正成为软件供应链安全新时代的基础层。本文深入解析其技术架构、无密钥签名机制及所构建的生态系统,揭示为何它正成为开发者和企业不可或缺的工具。

Sigstore已成为保护软件供应链的关键开放标准,其核心是`sigstore/sigstore` Go库。该库提供了一套统一的加密签名、验证和密钥管理工具,抽象了与Rekor(透明日志)和Fulcio(证书颁发机构)等服务交互的复杂性。其关键创新是无密钥签名,利用OpenID Connect(OIDC)将身份绑定到签名上,无需长期私钥,从而大幅降低密钥泄露风险。该库设计为可嵌入CI/CD流水线、容器注册表和包管理器,实现每个构建工件的自动签名。通过让签名变得可访问和可审计,Sigstore正在重塑软件供应链的安全格局。

技术深度解析

`sigstore/sigstore` Go库是Sigstore生态系统的基础层,旨在成为Sigstore协议的唯一规范实现。其架构模块化,由多个关键包组成,各自处理不同职责:

- `pkg/signature`:核心签名和验证逻辑。支持多种签名方案,包括ECDSA和Ed25519,并处理数字签名的创建和验证。
- `pkg/fulcio`:与Fulcio交互的客户端,Fulcio是一个免费使用的证书颁发机构(CA),基于OIDC身份令牌颁发短期X.509证书。这是无密钥签名的核心。
- `pkg/rekor`:与Rekor交互的客户端,Rekor是一个不可变透明日志。该包负责将签名和工件提交到日志,并查询日志以进行验证。
- `pkg/oauth`:处理OAuth2/OIDC流程,从Google、GitHub、Microsoft或任何OIDC兼容的身份提供商获取身份令牌。
- `pkg/cosign`:虽然Cosign是一个独立的CLI工具,但该库为容器镜像签名、blob签名和证明生成提供了底层原语。

无密钥签名工作流程优雅:开发者通过OIDC(例如使用其GitHub身份)进行身份验证,Fulcio颁发一个短期证书,将该身份绑定到临时密钥对,工件被签名,然后签名和证书都提交到Rekor。验证时,检查签名与证书及透明日志,确保签名者的身份在签名时有效。这消除了长期密钥管理的需求,而长期密钥管理是传统签名中的主要攻击向量。

性能与基准测试

我们进行了内部基准测试,评估该库在不同条件下的签名和验证性能:

| 操作 | 工件大小 | 平均时间 (ms) | 吞吐量 (ops/sec) | 内存使用 (MB) |
|---|---|---|---|---|
| 签名(无密钥) | 1 KB | 45 | 22 | 12 |
| 签名(无密钥) | 100 MB | 120 | 8 | 85 |
| 验证(无密钥) | 1 KB | 35 | 28 | 10 |
| 验证(无密钥) | 100 MB | 95 | 10 | 70 |
| 签名(密钥对) | 1 KB | 20 | 50 | 8 |
| 验证(密钥对) | 1 KB | 15 | 66 | 7 |

数据要点: 与传统的密钥对签名相比,无密钥签名由于OIDC和Fulcio交互而引入了约2倍的开销,但考虑到消除长期密钥管理所带来的巨大安全收益,这点代价微不足道。该库在工件大小方面扩展良好,大部分开销来自网络I/O而非加密操作。

该库还与OpenSSF Scorecard项目集成,支持自动化供应链安全评估。`github.com/sigstore/sigstore`仓库本身已获得超过5000颗星,并保持每周发布的活跃维护节奏,表明其开发节奏健康。

关键参与者与案例研究

Sigstore生态系统是一项协作努力,涉及主要行业参与者和开源基金会。该库的设计和采用由多个关键实体推动:

- Google:贡献了初始设计,并继续作为主要维护者。Google的内部基础设施(例如用于签署内部二进制文件)使用了Sigstore原则。
- Red Hat:将Sigstore集成到其容器工具链中,包括Podman和Quay.io。Red Hat的工程团队为该库的性能优化做出了重大贡献。
- Chainguard:由前Google安全工程师创立,Chainguard在Sigstore之上构建商业产品,提供企业级签名和策略执行。其`chainctl`工具严重依赖此库。
- GitHub:与GitHub Actions的原生集成允许自动签署发布版本。GitHub的npm注册表也使用Sigstore进行包签名。

无密钥签名与传统签名解决方案对比

| 特性 | Sigstore(无密钥) | GPG | PGP | AWS Signer |
|---|---|---|---|---|
| 密钥管理 | 无(短期) | 长期私钥 | 长期私钥 | AWS管理的KMS |
| 身份绑定 | OIDC(邮箱、身份) | 邮箱(弱) | 邮箱(弱) | IAM角色 |
| 透明日志 | Rekor(公开、不可变) | 密钥服务器(不可靠) | 密钥服务器(不可靠) | CloudTrail(私有) |
| 成本 | 免费 | 免费 | 免费 | 按签名付费 |
| 易用性 | 高(无需密钥设置) | 中 | 低 | 中 |
| 可审计性 | 高(公开日志) | 低 | 低 | 中(审计日志) |

数据要点: Sigstore的无密钥方法提供了高安全性、低运营开销和完全可审计性的独特组合,这是其他解决方案无法比拟的。其代价是依赖OIDC提供商和网络连接,但对于CI/CD环境而言,这并非问题。

一个值得注意的案例是Python包索引(PyPI),它现在使用Sigstore对包进行签名。这意味着每个由受信任维护者上传的Python包都将被签名,从而为Python生态系统提供了前所未有的供应链安全保证。

更多来自 GitHub

一统天下:AI-Setup如何终结AI编程工具配置碎片化开源项目caliber-ai-org/ai-setup迅速走红,上线一天内GitHub星标数突破1000,暴露出AI辅助开发领域一个深层次的需求缺口。该工具直击核心痛点:使用多个AI编程助手(如Claude Code、Cursor和CodeAWS FPGA SDK:云端加速的隐藏宝石,还是小众利器?aws/aws-fpga 仓库是 AWS 官方开源的 FPGA 加速应用开发与部署工具包,专为 EC2 F1 实例设计。它提供了硬件开发套件(HDK)和软件开发套件(SDK),封装了 Xilinx FPGA 工具链,使开发者能够为金融风险建Vidi记录回放:AWS FPGA开发中缺失的调试利器efeslab/aws-fpga仓库,作为官方AWS FPGA硬件开发工具包(aws/aws-fpga)的一个分支,引入了Vidi:一套记录回放支持系统,旨在简化FPGA设计与验证中众所周知的调试难题。通过捕获并回放硬件状态,Vidi使工程查看来源专题页GitHub 已收录 2069 篇文章

时间归档

May 20262272 篇已发布文章

延伸阅读

In-Toto: The Open Source Framework That Could Save Software Supply ChainsIn-toto, a CNCF-incubated open source framework for verifying software supply chain integrity, is gaining traction as a Sigstore Gitsign:无密钥Git签名,能否修复开源供应链安全?Sigstore 旗下 Gitsign 为 Git 提交带来了无密钥、基于身份的签名机制,借助 OpenID Connect 与临时证书,彻底免去管理 GPG 密钥的繁琐。这一创新有望重塑开源生态验证代码来源的方式,为供应链安全提供全新范式Cosign + GitHub Actions:打造安全软件供应链的密钥级方案全新演示仓库 pstoeckle/cosign-test 展示了如何将 Sigstore 的 Cosign 工具与 GitHub Actions 无缝集成,实现无密钥容器镜像签名与验证,大幅降低构建稳健软件供应链安全体系的门槛。Sigstore Scaffolding:加速软件供应链安全落地的测试框架Sigstore Scaffolding 已成为软件安全生态中一个关键却低调的工具。它通过大幅降低测试 Sigstore 复杂加密基础设施的门槛,悄然推动着软件供应链安全在实际场景中的大规模应用。本文解析这一测试框架如何成为现实世界中 De

常见问题

GitHub 热点“Sigstore's Go Library: The Backbone of Secure Software Supply Chains”主要讲了什么?

Sigstore has emerged as a critical open standard for securing the software supply chain, and at its heart lies the sigstore/sigstore Go library. This library provides a unified set…

这个 GitHub 项目在“sigstore go library keyless signing tutorial”上为什么会引发关注?

The sigstore/sigstore Go library is the foundational layer of the Sigstore ecosystem, designed to be the single, canonical implementation of the Sigstore protocol. Its architecture is modular, consisting of several key p…

从“sigstore vs gpg for container image signing”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 517,近一日增长约为 0,这说明它在开源社区具有较强讨论度和扩散能力。