sigstore/sigstore-go
GitHub: sigstore/sigstore-go
Sigstore 官方的 Go 客户端库,提供轻量级的制品签名和验证能力,用于软件供应链安全集成。
Stars: 84 | Forks: 44
# sigstore-go
一个用 Go 编写的 [Sigstore](https://www.sigstore.dev/) 客户端库。
[](https://pkg.go.dev/github.com/sigstore/sigstore-go)
[](https://goreportcard.com/report/github.com/sigstore/sigstore-go)
[](https://github.com/sigstore/sigstore-go/actions/workflows/build.yml)
[](https://securityscorecards.dev/viewer/?uri=github.com/sigstore/sigstore-go)
功能:
- 签名和验证符合 Sigstore Client Spec 的 [Sigstore bundles](https://github.com/sigstore/protobuf-specs/blob/main/protos/sigstore_bundle.proto)
- 通过为原始 Sigstore 签名创建 bundles 来验证它们(参见 [conformance tests](test/conformance/main.go) 示例)
- 使用 Timestamp Authority (TSA) 进行签名和验证
- 使用 Rekor (Artifact Transparency Log) 进行签名和验证
- 包含证书元数据的结构化验证结果
- TUF 支持,用于获取可信根证书和日志密钥
- 支持验证自定义的 [trusted root](https://github.com/sigstore/protobuf-specs/blob/main/protos/sigstore_trustroot.proto)
- 用于签名和验证 artifacts 的示例
目前不内置支持使用 KMS 或其他 bring-your-own-key 进行签名;但是,您可以通过实现 `pkg/sign/keys.go:Keypair` 接口的版本来轻松添加支持。
## 背景
Sigstore 已经有一个权威的 Go 客户端实现 [cosign](https://github.com/sigstore/cosign),它是专注于容器镜像签名/验证开发的。它具有丰富的 CLI 和悠久的功能与开发历史。`sigstore-go` 是一个更精简且友好的 API,用于将 Go 代码与 Sigstore 集成,重点在于 [sigstore/protobuf-specs](https://github.com/sigstore/protobuf-specs) 中新定义的数据结构。`sigstore-go` 旨在最大限度地减少简单签名和验证任务的依赖树,省略了 KMS 支持和容器镜像验证,我们计划重构 `cosign` 的部分代码以依赖 `sigstore-go`。
## 状态
`sigstore-go` 被认为是稳定的,可供生产使用。它通过了 [`sigstore-conformance`](https://github.com/sigstore/sigstore-conformance) 签名和验证测试套件。
## 文档和示例
文档可在 [`docs`](./docs) 子目录和 [pkg.go.dev](https://pkg.go.dev/github.com/sigstore/sigstore-go) 上找到。
有关如何使用此库的示例,请参阅 [examples directory](./examples/README.md)。
请注意,CLI 示例旨在演示如何使用该库,并不打算作为像 [cosign](https://github.com/sigstore/cosign) 那样功能齐全的 Sigstore CLI。
## 系统要求
[Tested](https://github.com/sigstore/sigstore-go/blob/main/.github/workflows/build.yml) 环境:
- Unix 兼容操作系统和 Windows
- [Go 1.23+](https://go.dev/doc/install)
请注意,我们不提供此库的构建版本,但您可以使用 `go tool dist list` 查看您的 `go` 版本支持哪些架构。
## 测试
测试使用标准 Go 测试框架调用。Makefile 中也存在一个辅助工具。
```
$ make test
```
## 支持
欢迎通过 issues 提交 Bug 报告,欢迎通过 discussion 提问。请参阅 [SUPPORT.md](./SUPPORT.md) 了解详情。
本项目按“原样”提供。
## 安全
如果您发现任何安全问题,请参阅 sigstore 的 [security
process](https://github.com/sigstore/.github/blob/main/SECURITY.md)
标签:DNS 反向解析, DNS 解析, EVTX分析, EVTX分析, Go语言, Rekor, Sigstore, TUF, 代码签名, 密码学, 工件完整性, 开发库, 手动系统调用, 数据来源验证, 日志审计, 时间戳服务, 程序破解, 签名验证, 软件供应链安全, 远程方法调用, 透明日志