ISO/IEC 5962:2021 資訊技術 — SPDX® 規範第 2.2.1 版
SPDX Specification V2.3
3.1.2
<>
原理
<>
為簡化電信供應鏈中供應商和軟體消費者的工具和流程,符合 OpenChain 電信 SBOM 指引的文件應採用 ISO/IEC 5962:2021 標準化的 SPDX 資料格式。透過統一
SBOM 資料格式,供應商和使用者的工具和流程可以簡化,僅需遵循一致的要求,從而減少複雜性。
實體可自由選擇替代資料格式用於內部用途,或根據需求向組織提供其他格式的 SBOM。本指引僅適用於 SBOM 文件,而非整個組織。
3.2
<>
適用於
<>
OpenChain
<>
電信
<>
SBOM
<>
指引文件的
<>
SPDX
<>
元素內容
<>
需要包含以下元素。
文件生成資訊
SPDXVersion: SPDX 中的強制項目
DataLicense: SPDX 中的強制項目
SPDXID: SPDX 中的強制項目
DocumentName: SPDX 中的強制項目
DocumentNamespace: SPDX 中的強制項目
Creator: SPDX 中的強制項目
Created: SPDX 中的強制項目
CreatorComment: 填寫 “SBOM 建立資訊”
套件資訊
PackageName: SPDX 中的強制項目
SPDXID: SPDX 中的強制項目
PackageVersion: “NTIA SBOM 最小元素” 必要項目
PackageSupplier: “NTIA SBOM 最小元素” 必要項目
PackageDownloadLocation: SPDX 中的強制項目
FilesAnalyzed
PackageChecksum: “NTIA SBOM 最小元素” 建議項目
PackageLicenseConcluded: SPDX 中的強制項目
PackageLicenseDeclared: SPDX 中的強制項目
PackageCopyrightText: SPDX 中的強制項目
ExternalRef: 填寫軟體套件 URL
軟體包應該使用 套件 URL (PURL) 進行識別,並填寫於 ExternalRef 欄位,例如:
ExternalRef: PACKAGE-MANAGER purl pkg:pypi/
[email protected]
SPDX 元素之間的關係
Relationship: 至少需要描述並包含 “NTIA SBOM 最小元素” 必要項目
3.2.1
<>
驗證與參考資料
<>
NTIA SBOM 最小元素
3.2.2
<>
原理
<>
考慮到電信行業的調和需求以及可能超越 NTIA 最小元素的特定要求, “OpenChain 電信 SBOM 指引” 目的在為行業提供可預期的 SBOM 元素標準。
“元件雜湊值” 是建議項目,但不是 “NTIA SBOM 最小元素” 的強制要求。在 SPDX 中對應到 PackageChecksum,我們將其設定為強制項目,因為其對唯一識別軟體套件
相當重要。大多數 SCA 工具均具有生成雜湊值的功能。
Package URL (PURL) 是唯一識別軟體包的事實標準。
3.3
<>
機器可讀的資料格式
<>
符合 OpenChain 電信 SBOM 指引的文件應包括至少以下之一的 SPDX 機器可讀格式:Tag:Value 或 JSON。
3.3.1
<>
驗證與參考資料
<>
Tag:Value 和 JSON 格式的描述見以下連結:
在 SPDX 2.2 https://spdx.github.io/spdx-spec/v2.2.2/conformance/#44-standard-data-format-requirements
在 SPDX 2.3 https://spdx.github.io/spdx-spec/v2.3/conformance/#44-standard-data-format-requirements
3.3.2
<>
原理
<>
目前 SBOM 的主要格式有三種:SPDX、CycloneDX 和 SWID。 這三種格式被 NTIA 文件《軟體物料清單 (SBOM) 最小元素》中推薦(請參閱「5. 參考資料」部分)。
選擇 SPDX 作為 OpenChain 電信 SBOM 指引的資料格式的原因包括:
SPDX 是 ISO 標準;
SPDX 在合規授權方面比 CycloneDX 具有更多功能;
SPDX 具有人類可閱讀的格式(CycloneDX 僅支持 JSON 和 XML);
SWID 更像是軟體識別碼,而非完整的 SBOM 格式。