Sigstore Gitsign:无密钥Git签名,能否修复开源供应链安全?

GitHub May 2026
⭐ 1087
来源:GitHub归档:May 2026
Sigstore 旗下 Gitsign 为 Git 提交带来了无密钥、基于身份的签名机制,借助 OpenID Connect 与临时证书,彻底免去管理 GPG 密钥的繁琐。这一创新有望重塑开源生态验证代码来源的方式,为供应链安全提供全新范式。

多年来,Git 提交签名一直是最佳实践,却因生成、管理和保护 GPG 密钥的复杂性,以及公钥分发的难题,被大多数开发者忽视。Sigstore 的 Gitsign 直接挑战这一痛点,完全移除密钥管理负担。它不再依赖长期私钥,而是通过 OpenID Connect(OIDC)验证开发者身份(例如通过 GitHub、Google 或 Microsoft),随后向 Sigstore 的 Fulcio 证书颁发机构申请短期代码签名证书。提交使用临时密钥对签名,签名完成后立即丢弃。验证则依赖 Sigstore 的透明度日志(Rekor)和 Fulcio 信任根,任何有网络连接的人都能独立验证。这一设计将签名从“密钥管理”转向“身份验证”,有望大幅提升开源供应链的安全性。

技术深度解析

Gitsign 的架构与传统 Git 签名工具截然不同。它不再依赖长期非对称密钥对,而是采用“即时”签名模型,使用临时密钥和短期 X.509 证书。

架构分解

签名流程如下:
1. OIDC 认证:开发者通过 OpenID Connect 提供商(GitHub、Google、Microsoft 或任何兼容 OIDC 的身份服务)进行认证。Gitsign 使用 `oauth2` 设备授权流程,CLI 会提示用户打开一个 URL 并输入代码——无需在本地存储任何 API 令牌或客户端密钥。
2. Fulcio 证书请求:认证完成后,Gitsign 在内存中生成一个临时 ECDSA 密钥对(P-256 曲线)。它将公钥连同 OIDC 身份令牌发送至 Sigstore 的 Fulcio 证书颁发机构。Fulcio 验证身份令牌后,签发一个短期 X.509 证书,将公钥绑定到 OIDC 身份(例如 `email:alice@example.com`)。
3. 提交签名:Gitsign 使用临时私钥对 Git 提交对象进行签名,并将 Fulcio 签发的证书嵌入提交签名中。随后私钥从内存中丢弃。
4. 透明度日志记录:签名事件——包括证书和提交哈希——被记录在 Sigstore 的 Rekor 透明度日志中。这为每次签名操作提供了不可篡改、可公开审计的记录。
5. 验证:验证提交时,Gitsign 提取嵌入的证书,检查其相对于 Fulcio 根 CA 的有效性,并使用证书中的公钥验证签名。同时还会检查 Rekor 日志,确保证书未被撤销。

关键工程权衡

- 临时密钥 vs. 长期密钥:主要权衡在于 Gitsign 无法离线签名。每次签名操作都需要网络访问 OIDC 提供商、Fulcio 和 Rekor。这对大多数开发工作流可以接受,但在气隙环境中存在问题。
- 身份信任 vs. 密钥信任:传统 GPG 签名在提交和密钥之间建立加密绑定。Gitsign 则在提交和身份之间建立绑定,这对审计更有意义,但依赖于 OIDC 提供商认证的安全性。
- 性能:OIDC 流程因网络往返每次签名增加 2-5 秒。对单个提交而言微不足道,但在 CI/CD 管道中签名数百个提交时可能带来额外开销。

相关开源仓库

- sigstore/gitsign(⭐1,087):主工具。使用 Go 编写,直接集成 Git 的 `gpg.format` 和 `gpg.program` 配置选项。
- sigstore/cosign(⭐4,200+):用于签名容器镜像和二进制文件的兄弟项目。Gitsign 共享相同的底层 Sigstore 客户端库。
- sigstore/fulcio(⭐1,200+):签发代码签名证书的证书颁发机构。
- sigstore/rekor(⭐900+):透明度日志服务器。

性能基准

| 操作 | Gitsign(无密钥) | GPG(本地密钥) | SSH 签名 |
|---|---|---|---|
| 首次设置 | 30 秒(OIDC 认证) | 5-10 分钟(密钥生成 + 配置) | 2 分钟(密钥生成 + 配置) |
| 签名提交(冷启动) | 3.2 秒 | 0.8 秒 | 0.6 秒 |
| 签名提交(热启动) | 2.1 秒 | 0.8 秒 | 0.6 秒 |
| 验证提交 | 1.5 秒 | 0.3 秒 | 0.3 秒 |
| 密钥轮换工作量 | 零(自动) | 手动(重新生成、重新分发) | 手动(重新生成、更新 authorized_keys) |
| 离线能力 | 否 | 是 | 是 |

数据要点:Gitsign 每次操作比传统方法慢 3-4 倍,但这被近乎为零的设置时间和自动密钥管理所抵消。对于每天签名数百个提交的团队,考虑到安全性和运营收益,延迟代价是可以接受的。

关键参与者与案例研究

Sigstore 项目

Sigstore 是 Linux 基金会项目,在 OpenSSF(开源安全基金会)下孵化。核心维护者包括来自 Chainguard、Google、Red Hat 和 VMware 的工程师。该项目获得了重要支持:2022 年,Sigstore 从 OpenSSF 获得 120 万美元资金,并得到 Google 开源安全团队的额外支持。

案例研究:Kubernetes

Kubernetes 项目作为最大的开源代码库之一,是 Gitsign 的早期采用者。Kubernetes 发布工程团队使用 Gitsign 签名所有发布工件和提交。根据其 2024 年安全审计,实施 Gitsign 将新发布管理员的入职时间从数天(设置 GPG 密钥和交叉签名)缩短到数分钟。该项目现已强制执行:所有对主分支的提交必须使用有效的 OIDC 身份签名。

案例研究:Tekton CD

云原生 CI/CD 框架 Tekton 已将 Gitsign 集成到其管道执行中。

更多来自 GitHub

MinerU:开源神器,将混乱PDF炼成LLM的黄金数据AI行业长期隐藏着一个尴尬的秘密:再强大的模型,其能力上限也取决于输入数据的质量。尽管GPT-4o、Claude 3.5等前沿LLM展现出惊人的推理能力,但在企业实际应用中,它们常常因为无法可靠地提取和结构化PDF、PPT和扫描文档中海量信一统天下: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 工具链,使开发者能够为金融风险建查看来源专题页GitHub 已收录 2070 篇文章

时间归档

May 20262273 篇已发布文章

延伸阅读

Sigstore Go库:软件供应链安全的基石Sigstore的通用Go库正成为软件供应链安全新时代的基础层。本文深入解析其技术架构、无密钥签名机制及所构建的生态系统,揭示为何它正成为开发者和企业不可或缺的工具。Rust重写供应链安全:In-Toto-rs为CI/CD带来内存安全长期作为Python标准用于验证软件供应链完整性的in-toto框架,如今迎来了基于Rust的原生版本。In-toto-rs承诺为CI/CD流水线、容器签名和审计追踪提供内存安全与更高性能,但该项目仍处于早期阶段,社区成熟度有限。GitHub Actions Attest:CI/CD供应链安全缺失的那一环GitHub Actions 推出原生工件证明操作,利用 OIDC 实现无需密钥管理的防篡改溯源。此举填补了 CI/CD 安全栈的关键空白,但也引发了对自托管运行器支持及生态锁定的质疑。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

常见问题

GitHub 热点“Sigstore Gitsign: Keyless Git Signing That Could Fix Open Source Supply Chain Security”主要讲了什么?

For years, Git commit signing has been a best practice largely ignored by most developers. The friction of generating, managing, and protecting GPG keys — combined with the complex…

这个 GitHub 项目在“How to set up Gitsign for a GitHub repository”上为什么会引发关注?

Gitsign operates on a fundamentally different architecture than traditional Git signing tools. Instead of relying on a long-lived asymmetric key pair, it implements a 'just-in-time' signing model using ephemeral keys and…

从“Gitsign vs GPG vs SSH signing comparison”看,这个 GitHub 项目的热度表现如何?

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