CycloneDX vs SPDX : choisir son format SBOM conforme au CRA

CycloneDX et SPDX sont les deux formats qui satisfont à l'exigence du CRA en matière de SBOM lisible par machine. Le choix entre les deux n'est pas une question de conformité : les deux qualifient. C'est une question de flux de travail, autour du format le mieux adapté à la façon dont votre équipe gère le suivi des vulnérabilités et la conformité des licences. CycloneDX est un projet OWASP optimisé pour les cas d'usage sécurité. SPDX est une norme de la Linux Foundation qui bénéficie de la reconnaissance ISO/IEC 5962:2021. Cette page compare les deux sur les dimensions qui comptent pour la conformité CRA et BSI TR-03183, avec des exemples opérationnels pour chacun.

Synthèse

  • CycloneDX (OWASP) et SPDX (Linux Foundation) satisfont tous deux à l'exigence de format lisible par machine du CRA
  • CycloneDX 1.6 ou ultérieur est préféré pour les flux de travail sécurité ; le support natif VEX est arrivé en 1.4 et la structure evidence enrichie en 1.5
  • SPDX 2.2.1 est la version normalisée en tant qu'ISO/IEC 5962:2021 ; SPDX 2.3 est la révision stable actuelle et reste rétrocompatible avec le socle ISO. SPDX 3.0 est en cours de normalisation en tant qu'ISO/IEC DIS 5962
  • Le choix du format n'a aucune incidence sur les champs que vous devez renseigner au titre de la BSI TR-03183 : les exigences de champs sont identiques pour les deux formats
2
Formats acceptés
CycloneDX ou SPDX
VEX
CycloneDX natif
Vulnerability eXploitability
ISO 5962
Reconnaissance SPDX 2.2.1
Norme internationale 2021
Déc. 2027
Application intégrale
Le format doit être en place

Quels formats SBOM sont acceptés au titre du CRA ?

Le CRA exige des formats « couramment utilisé et lisible par machine couvrant au moins les dépendances de niveau supérieur des produits ». En pratique, deux normes qualifient :

Format Norme Cas d'usage
CycloneDX OWASP Orienté sécurité, support VEX natif
SPDX Linux Foundation Conformité des licences, adoption plus large

Les deux formats sont acceptés. CycloneDX est de plus en plus privilégié pour les cas d'usage sécurité grâce à son support natif de :

  • Vulnerability Exploitability eXchange (VEX)
  • Avis de sécurité
  • Graphes de dépendances
graph LR
    SCN[Component Names] --- SBOM((SBOM))
    VS[Versions] --- SBOM
    SUP[Supplier Info] --- SBOM
    DEP[Dependencies] --- SBOM
    SBOM --- LIC[Licenses]
    SBOM --- PURL[Package URLs]
    SBOM --- HASH[Hash Values]
    SBOM --- OSC[Open Source Components]
    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

Comparaison côte à côte

Dimension CycloneDX SPDX
Origine Projet OWASP Linux Foundation
Dernière version stable 1.7 (oct. 2025) ; ciblez 1.6 ou ultérieur pour le CRA 2.3 (actuelle) ; 3.0 en ISO DIS
Reconnaissance normative OWASP, ECMA TC54 (en cours) ISO/IEC 5962:2021 (couvre SPDX 2.2.1)
Orientation principale Sécurité et gestion des vulnérabilités Conformité des licences et revue juridique
Support VEX Natif (depuis 1.4, janv. 2022) Via CSAF externe
evidence composants Identité et occurrences depuis 1.5 (juin 2023) Sans objet
Expression de licence Adéquate Complète (la liste de licences SPDX fait référence)
Outillage Syft, Trivy, cdxgen produisent nativement du CycloneDX Syft, scancode-toolkit, FOSSA
Poids de la spécification Plus léger, plus facile à implémenter Plus complet, plus verbeux

CycloneDX

Projet OWASP. Conçu pour la sécurité dès l'origine : spécification légère, VEX natif, liaison CVE directe, outillage natif robuste (Trivy, Syft, cdxgen). Choisissez CycloneDX lorsque le suivi des vulnérabilités est la priorité.

Exemple d'entrée de composant 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

Norme de la Linux Foundation. SPDX 2.2.1 est reconnue en tant qu'ISO/IEC 5962:2021 ; SPDX 2.3 est la révision stable actuelle et reste rétrocompatible avec le socle ISO. Syntaxe d'expression de licence complète, historique plus long dans la conformité des chaînes d'approvisionnement et meilleure gestion des scénarios de licences complexes. Choisissez SPDX lorsque la conformité des licences et la revue juridique pilotent votre flux de travail.

Exemple d'entrée de composant 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..."
        }
      ]
    }
  ]
}

Comment choisir

Cas d'usage Recommandation
Priorité : sécurité et vulnérabilités CycloneDX
Priorité : conformité des licences SPDX
Besoin d'intégration VEX pour les flux de vulnérabilités CycloneDX
Entreprise disposant d'un outillage SPDX existant SPDX
Marché allemand (alignement BSI TR-03183) L'un ou l'autre (les deux sont recommandés)
Démarrage sans préférence de format préalable CycloneDX (plus simple, orienté sécurité)

Pour la conformité CRA, les deux formats fonctionnent. Le CRA ne désigne pas de format préféré. Choisissez-en un et soyez cohérent sur l'ensemble de votre portefeuille de produits. Vous pouvez générer les deux à partir du même build avec des outils comme Syft ou Trivy, mais standardiser sur un seul réduit la charge opérationnelle.

Les exigences de champs BSI TR-03183 s'appliquent aux deux formats

Le format que vous choisissez n'a aucune incidence sur les champs que vous devez renseigner. Le nom, la version, le fournisseur, le PURL, le hachage, la licence et les relations de dépendance sont obligatoires au titre de la BSI TR-03183, que votre SBOM soit en CycloneDX ou en SPDX.

Questions fréquentes

Quels formats SBOM le CRA accepte-t-il ?

Le CRA exige des formats « couramment utilisé et lisible par machine couvrant au moins les dépendances de niveau supérieur des produits ». CycloneDX (OWASP) et SPDX (Linux Foundation) sont les deux formats qui satisfont à cette exigence. Le règlement ne les désigne pas explicitement, mais aucun autre format ne franchit actuellement la barre en pratique.

CycloneDX ou SPDX : lequel choisir pour la conformité CRA ?

Les deux satisfont à l'exigence du CRA de format « couramment utilisé et lisible par machine couvrant au moins les dépendances de niveau supérieur des produits ». Choisissez CycloneDX si votre priorité est la sécurité : il dispose du support VEX natif (Vulnerability Exploitability eXchange), d'une meilleure adéquation aux flux de vulnérabilités, et est de plus en plus le format de référence pour l'outillage aligné CRA. Choisissez SPDX si votre priorité est la conformité des licences, une reconnaissance ISO plus large (ISO/IEC 5962), ou si vous disposez déjà de SPDX dans le cadre de travaux de conformité open source existants. Vous pouvez produire les deux à partir du même build, mais standardiser sur un seul format sur l'ensemble de votre portefeuille de produits réduit la charge opérationnelle. Le choix du format n'a aucune incidence sur les champs que vous devez renseigner au titre de la BSI TR-03183.

Pour aller plus loin

  1. Confirmez votre format : CycloneDX pour les équipes à priorité sécurité, SPDX si vous disposez de flux de conformité des licences existants. En cas de doute, commencez par CycloneDX (1.4 minimum pour le CRA).
  2. Vérifiez vos champs obligatoires par rapport aux niveaux de qualité BSI TR-03183 : nom, version, fournisseur, PURL/CPE, hachage, dépendances, licences. Ces exigences s'appliquent aux deux formats.
  3. Comprenez les obligations de l'Annexe I auxquelles votre SBOM doit répondre : consultez les exigences SBOM CRA pour le format, le périmètre et les règles de documentation de l'Annexe VII.
  4. Automatisez la génération dans votre CI/CD avec Syft, Trivy ou cdxgen. Un export manuel ne satisfait pas à l'obligation continue de mise à jour déclenchée par chaque version, correctif ou changement de composant.
  5. Placez votre SBOM dans le dossier technique Annexe VII (point 2(b) pour la description de la gestion des vulnérabilités ; point 8 pour les copies sur demande), prêt pour les autorités de surveillance du marché. Si vous préférez ne pas configurer l'intégration du SBOM depuis zéro, CRA Evidence prend en charge l'intégration CycloneDX/SPDX et le scoring de qualité TR-03183 sur l'ensemble des versions de vos produits.