Sigstore是什么?
对于不熟悉的读者:Sigstore是由Linux基金会主导的项目,汇集了科技巨头和知名学术机构的贡献,其核心使命是让每个人都能进行代码签名和验证。该项目通过两大核心服务实现:
- Fulcio:公共根证书颁发机构,为授权身份颁发短期签名证书,并将证书提交至证书透明度日志;
- Rekor:为签名制品提供透明度和时间戳服务,具有强大的完整性保证。
这两个服务采用x509v3和CT等标准协议,可与现有验证方案无缝集成。例如,您现在就能使用gitsign工具通过Sigstore签署git提交,而无需修改git本身。
Sigstore的创新之处
虽然本质上是PKI生态系统,但Sigstore专为短期签名证书设计。其核心创新在于身份验证机制:
- Fulcio作为根CA仅验证开发者或机器身份,要求每个证书签名请求必须附带OpenID Connect (OIDC)令牌
- 目前支持的身份提供方包括GitHub(个人邮箱和工作流机器身份)、Google/Microsoft账户以及云平台Kubernetes集群
这种"身份优先"的模式颠覆了传统代码签名:
- 验证方只需确认特定身份是否签署过目标制品
- 默认采用强密码学原语
- 无需管理长期密钥
- 所有签名记录公开透明
实战:使用Sigstore签名验证
通过官方Python客户端演示完整流程:
|
|
签名过程包含7个自动化步骤:
- 生成临时密钥对
- 获取OIDC身份令牌
- 向Fulcio提交证书请求
- 接收并验证证书链
- 使用私钥签名
- 将签名提交至Rekor
- 保存验证材料
现状与未来规划
目前已有重要进展:
- CPython官方发布包已采用Sigstore签名
- 提供GitHub Action实现自动化发布签名
未来重点方向包括:
- 完善sigstore-python的稳定API
- 优化身份验证的用户体验
- 为PyPI等仓库提供原生支持
- 开发客户端一致性测试套件
Sigstore正在重塑软件供应链安全范式,其免密钥管理、强身份绑定的特性为开发者提供了前所未有的安全便利。