来源证明(Provenance Attestation)
来源证明(Provenance Attestation) 是什么?
来源证明(Provenance Attestation)对软件工件如何生成(源代码、构建系统、参数与依赖)进行签名且可机器验证的声明,使使用者能够信任其来源。
来源证明用密码学证据而非约定俗成的信任来回答"这份工件来自哪里"的问题。标准格式包括 in-toto 证明与 SLSA Provenance v1,记录源代码仓库提交、构建平台、构建配方、原料与时间戳,并由构建者签名。使用方对照策略校验证明,例如可信构建者身份、允许的源仓库、期望的工作流、SLSA 等级等。Sigstore Cosign、GitHub Actions、Tekton Chains、GitLab CI 以及对齐 SLSA 的构建平台,都可以自动生成证明。来源证明是检测被篡改二进制以及满足美国第 14028 号行政令、欧盟《网络韧性法案》等监管要求的关键控制。
● 示例
- 01
由 GitHub 可复用工作流生成、并在部署时校验的 SLSA Provenance v1。
- 02
Kyverno 策略要求所有容器镜像必须带有可信构建者的来源证明。
● 常见问题
来源证明(Provenance Attestation) 是什么?
对软件工件如何生成(源代码、构建系统、参数与依赖)进行签名且可机器验证的声明,使使用者能够信任其来源。 它属于网络安全的 应用安全 分类。
来源证明(Provenance Attestation) 是什么意思?
对软件工件如何生成(源代码、构建系统、参数与依赖)进行签名且可机器验证的声明,使使用者能够信任其来源。
来源证明(Provenance Attestation) 是如何工作的?
来源证明用密码学证据而非约定俗成的信任来回答"这份工件来自哪里"的问题。标准格式包括 in-toto 证明与 SLSA Provenance v1,记录源代码仓库提交、构建平台、构建配方、原料与时间戳,并由构建者签名。使用方对照策略校验证明,例如可信构建者身份、允许的源仓库、期望的工作流、SLSA 等级等。Sigstore Cosign、GitHub Actions、Tekton Chains、GitLab CI 以及对齐 SLSA 的构建平台,都可以自动生成证明。来源证明是检测被篡改二进制以及满足美国第 14028 号行政令、欧盟《网络韧性法案》等监管要求的关键控制。
如何防御 来源证明(Provenance Attestation)?
针对 来源证明(Provenance Attestation) 的防御通常结合技术控制与运营实践,详见上方完整定义。
来源证明(Provenance Attestation) 还有哪些其他名称?
常见的别称包括: SLSA Provenance, 构建来源证明。
● 相关术语
- appsec№ 1053
SLSA Framework
Supply-chain Levels for Software Artifacts:OpenSSF 发布的分级要求集合,逐级强化软件构建、签名与验证,以抵御供应链篡改。
- appsec№ 522
in-toto
一项开放框架,对软件供应链的每一步进行密码学证明,使消费者能够验证工件的构建与处理过程完全符合项目所有者的设计意图。
- appsec№ 1044
Sigstore
Linux 基金会下的开源项目,通过短期密钥、OIDC 身份和透明日志,使签名、验证与保护软件工件变得简单。
- appsec№ 226
Cosign
Sigstore 项目提供的开源命令行工具,可使用有密钥或无密钥工作流对 OCI 工件及其他软件进行签名、验证与证明。
- appsec№ 1069
软件供应链安全
保护软件生产链中每一个环节——源代码、依赖、构建、签名、分发与部署——使其免受篡改、恶意代码与完整性破坏的学科。
- appsec№ 921
可复现构建
通过特定的构建实践,使同一份源代码在同一构建指令下,无论何时何地构建都能产生比特位一致的工件。
● 参见
- № 1068软件物料清单(SBOM)
- № 784软件包签名