CycloneDX/transparency-exchange-api
GitHub: CycloneDX/transparency-exchange-api
CycloneDX透明交换API是一个标准化规范,用于自动化交换软件供应链制品如SBOM和VEX,以增强供应链安全性和透明度。
Stars: 107 | Forks: 22
[](LICENSE)
[](https://cyclonedx.org/)
[](https://cyclonedx.org/slack/invite)
[](https://groups.io/g/CycloneDX)
[](https://twitter.com/CycloneDX_Spec)
[](https://tc54.org)
[](https://ecma-international.org/task-groups/tc54-tg1/)
# OWASP 透明交换 API 标准
透明交换 API (TEA) 正在 ECMA TC54 tg 1 内开发,
目标是在 ECMA 中标准化该 API。
工作组在 CycloneDX Slack 空间有一个 Slack 频道。

## 标准状态:Beta 2
我们鼓励开发者开始实现 TEA 的客户端和服务器端,
并参与互操作性测试。这些测试将通过黑客松活动和
使用 Slack 频道的非正式方式进行组织。
v1.0 的优先事项:
- 端到端的认证/授权工作流概念验证,使用 TEA 消费者规范,包括调整消费者规范以更好地支持认证/授权
- 合规性文档工作流,参见 https://github.com/CycloneDX/transparency-exchange-api/issues/205
查看可用的 [实现](doc/tea-implementations.md) 列表。
## 简介
创建 TEA API 是为了支持软件供应链的自动化。上游供应商和
开源项目可以使用此标准,让下游消费者了解最新的透明制品,
例如但不限于物料清单、VEX 文件、证明等等。
- [服务器发现](/discovery/readme.md):描述使用透明交换标识符 (TEI) 进行发现
- 制品检索
- 制品发布
- [认证和授权](/auth/readme.md)
- 查询
鼓励系统和工具实施者采用此 API 标准,
以便在系统间发送/接收透明制品。
这将在 BOM 生态系统中实现更广泛的
"开箱即用"集成支持。
## 用例与需求
工作组已制定了一份协议用例和需求列表。
- [TEA 需求](doc/tea-requirements.md)
- [TEA 用例](doc/tea-usecases.md)
## 数据模型
- [TEA 产品发布](tea-product/tea-product-release.md):主要入口点。[透明交换标识符, TEI](/discovery/readme.md) 解析到特定的产品发布。一个产品发布可选择性地属于一个 [TEA 产品](tea-product/tea-product.md)。
- [TEA 产品](tea-product/tea-product.md):可选的更高级别对象,将一组产品发布按产品线或系列进行分组。产品可被发现和浏览;发布可通过 `/product/{uuid}/releases` 访问。
- [TEA 组件](tea-component/tea-component.md):表示组件谱系。组件是组件发布集合(可通过 `/component/{uuid}/releases` 访问)。
- [TEA 发布](/tea-component/tea-release.md):组件发布对象。每个组件发布可能有其自己的 TEA 集合。
- [TEA 集合](tea-collection/tea-collection.md):针对特定发布(组件发布)或产品发布的版本化制品列表。集合是版本化的,以指示更改,例如更新的 VEX 或更正的 SBOM。
- [TEA 制品](tea-artifact/tea-artifact.md):与集合关联的文件。单个 TEA 制品可以出现在多个集合中。请注意,TEA 制品是由 TEA 标准引入的命名术语。
有关适用于上述所有数据模型 UUID 的唯一性和稳定性规则,请参见 [TEA UUID 范围和稳定性](doc/tea-uuid-scope.md)。
## API 可用的制品
透明交换 API (TEA) 支持发布和检索一组透明交换制品。API 本身不限制发布制品的类型。一些示例:
### *xBOM 规范
支持任何类型组件和服务的物料清单。这包括但不限于 SBOM、HBOM、AI/ML-BOM、SaaSBOM 和 CBOM。该 API 提供了一种与 BOM 格式无关的方式,用于发布、搜索和检索 xBOM 制品。
### CDXA 标准
标准和要求以及针对这些标准和要求的证明,通过 CycloneDX 证明 (CDXA) 来捕获和支持。与 xBOM 非常相似,这些是被捕获的供应链制品,允许进行一致的发布、搜索和检索。
### VDR/VEX 规范
支持的制品类型包括漏洞披露报告 (VDR) 和漏洞可利用性交换 (VEX)。与 xBOM 元素一样,VDR/VEX 支持是格式无关的。然而,CSAF 有其自身的分发要求,可能与 API 不兼容。因此,初始重点将放在 CycloneDX(VDR 和 VEX)和 OpenVEX 上。
### CLE 框架
产品生命周期事件通过 [ECMA-428 通用生命周期枚举标准](https://ecma-international.org/publications-and-standards/standards/ecma-428/)进行通信。
这包括产品更名、重新包装、合并与收购,以及产品里程碑事件,如生命周期终止和停止支持。
CLE 的包含是可选的,可以在以下级别引入:
- TEA 产品
- TEA 组件
- TEA 产品发布
- TEA 组件发布
如果包含 CLE,TEA 实现有责任确保 CLE 事件在 TEA 产品及其发布之间的一致性,同样在 TEA 组件及其发布之间保持一致性。
## 洞察
美国政府及其他机构对软件透明度的大部分关注都集中在“完全透明”的概念上。消费者通常需要摄入、处理和分析 SBOM 或 VEX,才能回答一些简单的问题,例如:
- 来自供应商 A 的我授权使用的任何产品是否使用了 Apache Struts?
- 来自供应商 A 的我授权使用的任何产品是否易受 log4shell 攻击?我是否需要采取任何行动?
洞察功能允许使用可严格限定范围或结果驱动的表达式语言,来提问和回答实现“有限透明度”的问题。洞察还将 BOM 格式转换的复杂性从消费者身上移除。派生自 CycloneDX 的对象模型将是此 API 的一个组成部分,因为 CycloneDX 中的对象是自包含的(因此对 API 友好),并且该规范支持所有必要的 xBOM 类型以及 CDXA。
洞察功能将在 1.0 版本发布后集成到 API 中。
## 演讲和视频
- 您可以在仓库的 [演示文稿](/presentations) 目录中找到演示文稿
- 我们的双周会议可在 [YouTube 播放列表:Project Koala](https://www.youtube.com/playlist?list=PLqjEqUxHjy1XtSzGYL7Dj_WJbiLu_ty58) 上观看
- KoalaCon 2024 - 项目介绍 - 可在 [YouTube 上观看](https://youtu.be/NStzYW4WnEE?si=ihLirpGVjHc7K4bL)
## 贡献者
贡献者列在 [贡献者](contributors.md) 文件中。
## 术语
- API:应用程序编程接口
- 授权 (authz):用户有权访问哪些产品/组件
- 认证 (authn):获取授权的凭据
- 集合:代表产品某个版本的一组制品
- 产品:以单一名称销售或交付的物品
- 产品变体:产品的变体
- 版本:

## 以往工作
- [CycloneDX BOM 交换 API](/api/bomexchangeapi.md)
在 [CycloneDX BOM Repo 服务器](https://github.com/CycloneDX/cyclonedx-bom-repo-server)中实现
标签:API标准, API规范, ECMA标准, Homebrew安装, meg, VEX文件, 互操作性, 人工智能安全, 供应链管理, 供应链透明度, 信息安全, 合规性, 安全情报, 开发运维安全, 开源, 标准化, 物料清单, 网络调试, 自动化, 行业标准, 证明, 软件供应链, 软件透明度, 透明度交换