CycloneDX y SPDX son los dos formatos que satisfacen el requisito del CRA de contar con un SBOM legible por máquina. Elegir entre ellos no es una cuestión de cumplimiento: ambos califican. Es una cuestión de flujo de trabajo sobre qué formato encaja mejor con la forma en que tu equipo gestiona el seguimiento de vulnerabilidades y el cumplimiento de licencias. CycloneDX es un proyecto de OWASP optimizado para casos de uso de seguridad. SPDX es un estándar de la Linux Foundation con reconocimiento ISO/IEC 5962:2021. Esta página compara ambos en las dimensiones que importan para el cumplimiento del CRA y de BSI TR-03183, con ejemplos funcionales de cada uno.
Resumen
- Tanto CycloneDX (OWASP) como SPDX (Linux Foundation) satisfacen el requisito de formato legible por máquina del CRA
- CycloneDX 1.6 o posterior es preferible para flujos de trabajo de seguridad; el soporte nativo de VEX llegó en la versión 1.4 y la estructura enriquecida de
evidenceen la 1.5 - SPDX 2.2.1 es la versión estandarizada como ISO/IEC 5962:2021; SPDX 2.3 es la revisión estable actual y es compatible con la línea base ISO. SPDX 3.0 está en proceso como ISO/IEC DIS 5962
- La elección del formato no afecta a los campos que debes cubrir bajo BSI TR-03183: los requisitos de campo son los mismos para ambos
¿Qué formatos de SBOM acepta el CRA?
El CRA exige formatos «comúnmente utilizados y legibles por máquina». En la práctica, dos estándares cumplen el requisito:
| Formato | Estándar | Más adecuado para |
|---|---|---|
| CycloneDX | OWASP | Enfoque en seguridad, soporte nativo de VEX |
| SPDX | Linux Foundation | Cumplimiento de licencias, mayor adopción |
Ambos formatos son aceptados. CycloneDX es cada vez más preferido para casos de uso de seguridad gracias a su soporte nativo de:
- Vulnerability Exploitability eXchange (VEX)
- Avisos de seguridad
- Grafos de dependencias
graph LR
SCN[Nombres de componentes] --- SBOM((SBOM))
VS[Versiones] --- SBOM
SUP[Información del proveedor] --- SBOM
DEP[Dependencias] --- SBOM
SBOM --- LIC[Licencias]
SBOM --- PURL[URLs de paquete]
SBOM --- HASH[Valores hash]
SBOM --- OSC[Componentes de código abierto]
style SBOM fill:#008080,color:#fff,stroke:#006666,stroke-width:4px
style SCN fill:#e8f4f8,stroke:#008080,color:#333
style VS fill:#e8f4f8,stroke:#008080,color:#333
style SUP fill:#e8f4f8,stroke:#008080,color:#333
style DEP fill:#e8f4f8,stroke:#008080,color:#333
style LIC fill:#e8f4f8,stroke:#008080,color:#333
style PURL fill:#e8f4f8,stroke:#008080,color:#333
style HASH fill:#e8f4f8,stroke:#008080,color:#333
style OSC fill:#e8f4f8,stroke:#008080,color:#333
Comparativa
| Dimensión | CycloneDX | SPDX |
|---|---|---|
| Origen | Proyecto OWASP | Linux Foundation |
| Última especificación estable | 1.7 (oct. 2025); objetivo 1.6 o posterior para el CRA | 2.3 (actual); 3.0 en ISO DIS |
| Reconocimiento de estándares | OWASP, ECMA TC54 (en curso) | ISO/IEC 5962:2021 (cubre SPDX 2.2.1) |
| Enfoque principal | Seguridad y gestión de vulnerabilidades | Cumplimiento de licencias y revisión legal |
| Soporte VEX | Nativo (desde la versión 1.4, ene. 2022) | Mediante CSAF externo |
evidence de componente |
Identidad y apariciones desde la versión 1.5 (jun. 2023) | No aplicable |
| Expresión de licencias | Adecuada | Completa (la lista de licencias SPDX es canónica) |
| Herramientas | Syft, Trivy, cdxgen generan CycloneDX de forma nativa | Syft, scancode-toolkit, FOSSA |
| Peso de la especificación | Más ligera, más fácil de implementar | Más completa, más detallada |
CycloneDX
Proyecto OWASP. Diseñado para la seguridad desde el principio: especificación más ligera, VEX nativo, vinculación directa a CVEs y sólidas herramientas nativas (Trivy, Syft, cdxgen). Elige CycloneDX cuando el seguimiento de vulnerabilidades sea la prioridad.
Ejemplo de entrada de componente CycloneDX:
{
"bomFormat": "CycloneDX",
"specVersion": "1.5",
"version": 1,
"components": [
{
"type": "library",
"name": "lodash",
"version": "4.17.21",
"purl": "pkg:npm/lodash@4.17.21",
"hashes": [
{
"alg": "SHA-256",
"content": "cc6d..."
}
],
"licenses": [
{
"license": {
"id": "MIT"
}
}
]
}
]
}
SPDX
Estándar de la Linux Foundation. SPDX 2.2.1 está reconocido como ISO/IEC 5962:2021; SPDX 2.3 es la revisión estable actual y mantiene compatibilidad con la línea base ISO. Sintaxis completa para la expresión de licencias, mayor trayectoria en el cumplimiento de la cadena de suministro y mejor gestión de escenarios de licencias complejos. Elige SPDX cuando el cumplimiento de licencias y la revisión legal sean los impulsores de tu flujo de trabajo.
Ejemplo de entrada de componente SPDX:
{
"spdxVersion": "SPDX-2.3",
"dataLicense": "CC0-1.0",
"SPDXID": "SPDXRef-DOCUMENT",
"name": "my-application",
"packages": [
{
"SPDXID": "SPDXRef-Package-lodash",
"name": "lodash",
"versionInfo": "4.17.21",
"downloadLocation": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"licenseConcluded": "MIT",
"checksums": [
{
"algorithm": "SHA256",
"checksumValue": "cc6d..."
}
]
}
]
}
Cómo elegir
| Caso de uso | Recomendación |
|---|---|
| El enfoque principal es la seguridad y las vulnerabilidades | CycloneDX |
| El enfoque principal es el cumplimiento de licencias | SPDX |
| Necesitas integración VEX para flujos de trabajo de vulnerabilidades | CycloneDX |
| Empresa con herramientas SPDX ya implantadas | SPDX |
| Mercado alemán (alineación con BSI TR-03183) | Cualquiera (ambos recomendados) |
| Comienzo desde cero sin preferencia de formato previa | CycloneDX (más sencillo, orientado a seguridad) |
Para el cumplimiento del CRA, cualquiera de los dos formatos funciona. El CRA no nombra un formato preferido. Elige uno y mantén la coherencia en todo tu portfolio de productos. Puedes generar ambos a partir de la misma compilación con herramientas como Syft o Trivy, pero estandarizarte en uno reduce la carga operativa.
El formato que elijas no afecta a los campos que debes cubrir. Nombre, versión, proveedor, PURL, hash, licencia y relaciones de dependencia son obligatorios bajo BSI TR-03183 independientemente de si tu SBOM es CycloneDX o SPDX.
Preguntas frecuentes
¿Qué formatos de SBOM acepta el CRA?
El CRA exige formatos «comúnmente utilizados y legibles por máquina». CycloneDX (OWASP) y SPDX (Linux Foundation) son los dos formatos que satisfacen este requisito. El reglamento no los nombra explícitamente, pero en la práctica ningún otro formato alcanza el nivel exigido actualmente.
CycloneDX o SPDX: ¿cuál debo elegir para el cumplimiento del CRA?
Ambos satisfacen el requisito del CRA de formatos «comúnmente utilizados y legibles por máquina». Elige CycloneDX si tu prioridad es la seguridad: tiene soporte nativo de VEX (Vulnerability Exploitability eXchange), un ajuste más preciso para los flujos de trabajo de vulnerabilidades y es cada vez más el formato de referencia para las herramientas alineadas con el CRA. Elige SPDX si tu prioridad es el cumplimiento de licencias, el mayor reconocimiento ISO (ISO/IEC 5962) o ya tienes SPDX implantado por trabajos de cumplimiento de código abierto anteriores. Puedes producir ambos a partir de la misma compilación, pero estandarizarte en uno en todo tu portfolio de productos reduce la carga operativa. La elección del formato no afecta a los campos que debes cubrir bajo BSI TR-03183.