shiftleftcyber/sbom-signing-best-practices
GitHub: shiftleftcyber/sbom-signing-best-practices
多语言参考实现项目,通过规范化哈希计算解决跨平台 SBOM 签名与完整性验证的一致性问题。
Stars: 5 | Forks: 0
# SBOM 签名最佳实践
[](LICENSE)
[](https://github.com/shiftleftcyber/sbom-signing-best-practices/actions/workflows/lint.yml)
[](https://github.com/shiftleftcyber/sbom-signing-best-practices/actions/workflows/go.yml)
[](https://github.com/shiftleftcyber/sbom-signing-best-practices/actions/workflows/java.yml)
[](https://github.com/shiftleftcyber/sbom-signing-best-practices/actions/workflows/javascript.yml)
[](https://github.com/shiftleftcyber/sbom-signing-best-practices/actions/workflows/python.yml)
[](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, 可视化界面, 域名枚举, 多语言实现, 密码学签名, 数据可视化, 日志审计, 硬件无关, 软件供应链安全, 远程方法调用, 逆向工具