shiftleftcyber/sbom-signing-best-practices

GitHub: shiftleftcyber/sbom-signing-best-practices

多语言参考实现项目,通过规范化哈希计算解决跨平台 SBOM 签名与完整性验证的一致性问题。

Stars: 5 | Forks: 0

# SBOM 签名最佳实践 [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE) [![Linter](https://static.pigsec.cn/wp-content/uploads/repos/cas/be/be0d199429f19346a6c4d6e8e154859e1760c43774c34a82be699063d76ad8d4.svg)](https://github.com/shiftleftcyber/sbom-signing-best-practices/actions/workflows/lint.yml) [![Go](https://static.pigsec.cn/wp-content/uploads/repos/cas/64/643a5a3ae0f87a2551f024d1583944c1cdc1fdf155ef8a27414e7f503a6795c5.svg)](https://github.com/shiftleftcyber/sbom-signing-best-practices/actions/workflows/go.yml) [![Java](https://static.pigsec.cn/wp-content/uploads/repos/cas/c0/c073d568f0b83385f47a0e1788384cefac7ae5793cf79c3544ac09ae66340179.svg)](https://github.com/shiftleftcyber/sbom-signing-best-practices/actions/workflows/java.yml) [![JavaScript](https://static.pigsec.cn/wp-content/uploads/repos/cas/52/52a374a01bb78a3f57ca78b44323b6c913d518d7afaa1ed2c9eae07bad39c164.svg)](https://github.com/shiftleftcyber/sbom-signing-best-practices/actions/workflows/javascript.yml) [![Python](https://static.pigsec.cn/wp-content/uploads/repos/cas/43/43634daae5dde80b1a72c000ebcc8abe85548d76ad130e57bf44ab8052a73615.svg)](https://github.com/shiftleftcyber/sbom-signing-best-practices/actions/workflows/python.yml) [![Rust](https://static.pigsec.cn/wp-content/uploads/repos/cas/88/8863c708180231f0500e4d10135894c94a20b677995ecbb1de9d92e99f115787.svg)](https://github.com/shiftleftcyber/sbom-signing-best-practices/actions/workflows/rust.yml) 这是一组用于计算软件物料清单 (SBOM) 规范哈希的参考实现和测试套件。本项目展示了多语言的互操作性,以支持可靠的签名和完整性验证。 ## 支持的标准 | 标准 | 版本 | 格式 | 规范化 | 签名规范 | | :--- | :--- | :--- | :--- | :--- | | **CycloneDX** | 1.7 | JSON | JCS (RFC 8785) | JSF | | **SPDX** | 2.2 | JSON | JCS (RFC 8785) | 未定义( detached ) | | **SPDX** | 3.0 | JSON-LD | JCS (RFC 8785) | 未定义( detached ) | \* 针对 XML 格式 (CycloneDX 和 SPDX) 的规范哈希目前正在评估中,并计划在未来的版本中发布。 ## 目标:确定性哈希 其目标是对 SBOM 的**内容**计算哈希值,且独立于其**格式**。通过在计算哈希之前应用**规范化** (JCS) 和**修剪** (JSF),我们确保相同的逻辑数据总是产生相同的哈希值。这使得 SBOM 可以以任何形式传输——无论是“压缩 (minified)”还是“美化打印 (pretty-printed)”——同时在不同平台间保持稳定的加密身份: ## 技术规范 有关属性排除、签名处理和序列化的确切规则,详见技术规范: - [技术规范:JSON SBOM 规范哈希](/specs/README.md) ## 目录结构 - `go/`: Go 参考实现。 - `java/`: Java 参考实现。 - `javascript/`: JavaScript 参考实现。 - `python/`: Python 参考实现。 - `rust/`: Rust 参考实现。 - `specs/`: 所使用的规范化规则的技术细节。 - `test-vectors/`: 共享的“黄金”SBOM 以及包含预期哈希的测试清单文件,用于验证跨语言的一致性。 ## 快速开始 有关构建说明,请参阅各语言目录中的 `README.md`。
标签:CycloneDX, JS文件枚举, SBOM, SPDX, 可视化界面, 域名枚举, 多语言实现, 密码学签名, 数据可视化, 日志审计, 硬件无关, 软件供应链安全, 远程方法调用, 逆向工具