Proof of Provenance (PoP)

摘要:“Proof of Provenance”(PoP)是指验证和认证软件组件或产品的起源和历史,以确保其合法性和未被篡改。这一过程涉及收集和分析描述软件组件创建、修改和分发历史的元数据,从而验证其真实性和完整性。PoP的目标是向用户和组织保证软件组件或产品是可信

“Proof of Provenance”(PoP)是指验证和认证软件组件或产品的起源和历史,以确保其合法性和未被篡改。这一过程涉及收集和分析描述软件组件创建、修改和分发历史的元数据,从而验证其真实性和完整性。PoP的目标是向用户和组织保证软件组件或产品是可信、安全和可靠的。在供应链管理中,PoP是一种重要的安全措施,用于降低供应链攻击和其他可能威胁软件系统完整性和安全性的风险。

需要注意的是,PoP与“Proof of Possession”(PoP)不同,后者是用于证明持有者对某个密钥或物品的控制权的一种技术手段。此外,PoP也不同于“Proof of Product”(PoP),后者在国际贸易中用于证明卖方确实拥有某些货物。

因此,Proof of Provenance(PoP)主要应用于软件供应链安全领域,通过验证软件组件的来源和历史来确保其可信度和安全性。

#### Proof of Provenance(PoP)在软件供应链安全中的具体应用案例是什么?

Proof of Provenance(PoP)在软件供应链安全中的具体应用案例主要体现在以下几个方面:

Threatrix通过提供详细的证明来源(POP),为组织提供全面的软件物料清单(SBOM),包括开源漏洞和软件组件的正确许可证。Threatrix为每个应用中的软件组件创建数字签名,记录组件的创建者、创建日期和任何修改信息。这种持续监控机制使得组织能够在构建时间点上持续监控开源软件许可证,及时应对可能损害公司知识产权的风险。

Witness是一个可插拔的供应链安全框架,能够创建整个软件开发生命周期(SDLC)的证据跟踪,确保软件从源代码到目标的完整性。它支持大多数主要的CI和基础架构提供商,并通过安全PKI分发系统的使用和验证Witness元数据的能力,进一步增强了流程的安全性,有助于减少许多软件供应链攻击向量。

LPM是一种工具,用于在内核层安全地收集证明信息,并支持应用程序层的认证披露。LPM可以与现有的安全机制一起使用,并在现实中的恶意环境中提供首个安全的证明信息收集系统。此外,LPM还引入了基于证明的数据丢失预防(PB-DLP)的概念,通过搜索对象证明来识别和阻止敏感数据的传播。

根据NIST的报告,Provenance是一个新的控制措施,专门用于解决信息通信技术(ICT)供应链中的问题。它记录系统和组件的起源、变更历史以及相关人员,以确保可追溯性。Provenance有助于政府机构在发生负面事件时实现更高的可追溯性,并对风险进行评估和缓解。

#### 如何实现和验证软件组件的Proof of Provenance?

要实现和验证软件组件的Proof of Provenance,可以采用以下步骤:

1. **生成项目证明**:

- 使用GitHub Actions和Sigstore生成项目证明。项目证明通过加密签名确立了软件的构建过程和来源,并包含指向工作流、存储库信息、环境详情、提交SHA以及OIDC令牌等信息。

- 在构建工作流中,需要配置适当的权限,并添加特定步骤来生成项目证明。例如,对于二进制文件,可以使用如下命令:

```bash

- name: Generate artifact attestation

uses: actions/attest-build-provenance@v1

with:

subject-path: 'PATH/TO/ARTIFACT'

```

对于容器镜像,则可以使用类似的方法。

2. **包含软件物料清单(SBOM)**:

- 生成的项目证明可以包括SBOM,以提供透明度并帮助遵守数据保护标准。

3. **验证项目证明**:

- 使用GitHub CLI命令`gh attestation verify`来检查二进制文件或容器映像的项目证明。

- 验证过程中,确保签名和元数据符合预期,例如构建器ID、源代码仓库、分支或标签等值。

4. **使用SLSA框架**:

- SLSA(Supply-chain Levels for Software Artifacts)是一个端到端的框架,用于验证软件工件的完整性。它通过加密签名确保构建过程的可信性,并提供不同级别的完整性保证。

- SLSA框架要求生成的项目证明必须由可信的构建器生成,并且其元数据需要符合预期。

5. **使用npm进行包管理与验证**:

- 当从npm注册表下载包时,可以使用`npm audit signatures`命令来验证包的来源和完整性。如果包缺少或无效的签名或证明,该命令会返回错误,这可能表明包已被篡改。

6. **确保安全性和合规性**:

- 使用加密技术如软件签名和哈希值计算来验证软件和数据的完整性和来源。

- 在嵌入式系统中,操作系统供应商会将公钥包含在操作系统中,以确保软件包、更新和安全补丁来自官方渠道。

#### Proof of Provenance(PoP)与区块链技术之间的关系是什么?

Proof of Provenance(PoP)与区块链技术之间的关系主要体现在通过区块链技术来验证和记录物品的来源和历史信息。具体来说,PoP是一种机制,用于在区块链网络中记录和追踪物品的创建、所有权变更和版本更新等信息,从而确保物品的透明度和可信度。

根据证据,PoP在区块链中的应用包括以下几个方面:

1. **验证作品的起源**:PoP是区块链中用于验证作品起源的第二种机制。创作者将关于其作品的元数据(如标题、创作日期和创作者信息)纳入区块链网络进行记录。这使得伪造所有权声明变得更加困难,因为记录了PoP证据的作品历史被全面记录。

2. **追踪宝石供应链**:在宝石行业,PoP技术被用于提升供应链透明度。例如,Gemfields公司利用Provenance Proof区块链技术追踪祖母绿从矿山到市场的整个过程,确保宝石的来源和处理过程可追溯且不可篡改。

3. **提高交易安全性和防止欺诈**:PoP在区块链中还被用于防止欺诈和提升数字交易的安全性。通过确保每个个体拥有独一无二的身份,PoP有助于创建更安全、可信的数字环境。

4. **共识机制的应用**:在某些区块链项目中,PoP也被用作一种共识机制,以追踪物理资产的移动、识别所有权并确保其安全。例如,DigixDAO项目使用Proof-of-Provenance(POP)来跟踪物理资产从供应商到托管库的移动。

#### Proof of Provenance(PoP)在防止软件供应链攻击中的效果如何评估?

Proof of Provenance(PoP)在防止软件供应链攻击中的效果评估可以从多个方面进行分析。

PoP通过不可变地记录每个步骤的动作、时间和顺序,提供了一个安全且可验证的审计追踪。这种机制能够确保过程的透明性和可追溯性,从而增强对过程的信任。在软件供应链中,这种信任是至关重要的,因为任何环节的恶意行为都可能对整个系统造成影响。

然而,尽管PoP提供了强大的审计追踪功能,但其在实际应用中仍面临一些挑战。例如,如果一个受攻击的应用程序能够指示其活动的虚假来源信息或完全禁用负责收集来源信息的机制,那么PoP的效果将大打折扣。这表明,在恶意攻击者具有足够权限的情况下,PoP的保护能力可能会受到威胁。

此外,PoP系统在面对拒绝服务(DoS)攻击时也存在一定的脆弱性。如果攻击者通过资源耗尽攻击来阻止来源信息的收集,那么所有内核操作将被禁止,主机将停止运行。这意味着,尽管PoP能够记录系统事件,但在极端情况下,其功能可能会被完全破坏。

综合来看,PoP在防止软件供应链攻击中具有显著的优势,特别是在提高过程透明度和增强信任方面。然而,其效果也受到系统环境和潜在攻击手段的影响。

#### 目前存在哪些主要的Proof of Provenance(PoP)解决方案或工具?

目前,存在多种主要的Proof of Provenance(PoP)解决方案或工具,这些工具利用区块链技术来确保数据和资产的来源可追溯性和真实性。以下是几种主要的PoP解决方案:

Provenance Blockchain 是一个基于 Cosmos SDK 构建的去中心化区块链网络,专注于提供现代化金融服务。它通过定制化的方式帮助银行、资产管理公司和金融科技公司更便宜、更高效、更安全地部署资产。截至2023年9月30日,Provenance Blockchain 已成为全球最大的区块链网络之一,管理着超过90亿美元的金融资产,并为160亿美元的交易提供了支持。

2. **Wat-provenance**:

这是一种新型的证明源形式,扩展了 why-provenance 并细化了因果关系。Wat-provenance 规范编写在黑盒的高级API上,便于理解和使用,有助于缓解自动提取 Wat-provenance 的复杂性,尤其在处理复杂分布式系统时。

3. **Linux Provenance-aware Multi-Protocol Library (LPM)**:

LPM 使用数字签名算法(DSA)来确保 IP 选项字段中的可信来源序列号,并使用IMA(Linux Integrity Measurement Architecture)来评估用户空间源证明披露的完整性。当应用程序需要披露源证明时,它会打开一个新的 UNIX 域套接字发送源证明数据到源证明记录器。

4. **Proof of Existence (PoE)**:

PoE 是区块链技术中的一项关键功能,允许用户将任何文档的哈希值永久记录在分布式账本上,从而验证其真实性和所有权。这种技术可以应用于版权保护、专利验证、资产实现、文档完整性检查等多个领域。PoE 项目如 Factom、BTProof、Origin Timestamp 和 Florincoin 等,利用区块链的计算能力和加密算法,为用户提供了一种安全、隐私且成本低廉的证明存在性的方式。

5. **智能合约**:

智能合约在区块链中用于自动化支付许可和版税的处理流程。通过在每次交易中自动向版权所有者支付版税,提高了行业版税支付系统的透明度。智能合约中建立的协议不可更改,确保了法律确定性,符合合同法中的 pacta sunt servanda 原则。

来源:百态老人

相关推荐