Les formats
Deux formats répondent à l’exigence du règlement. Ils sont tous deux légitimes, normalisés et largement outillés ; ils n’ont pas la même histoire ni les mêmes points forts.
Comparatif
| CycloneDX | SPDX | |
|---|---|---|
| Origine | OWASP | Linux Foundation |
| Normalisation | ECMA-424 | ISO/IEC 5962 (pour SPDX 2.2.1) |
| Orientation d’origine | Sécurité | Conformité des licences |
| Sérialisations | JSON, XML, Protobuf | Tag-value, JSON, YAML, RDF/XML, tableur |
| Vulnérabilités dans le document | Natif (vulnerabilities) |
Via profil sécurité (SPDX 3.x) |
| VEX | Natif | Par mécanismes externes ou profil |
| Richesse licences | Bonne | Référence du domaine (liste et expressions SPDX) |
| Extensions | SaaSBOM, HBOM, ML-BOM, CBOM, OBOM | Profils SPDX 3 : sécurité, build, IA, données, licensing |
| Adoption | Forte côté outillage sécurité et CI/CD | Forte côté conformité juridique et distributions |
Ce qui les rapproche
Les deux formats expriment les mêmes notions de base : composants, versions, identifiants, empreintes, licences, relations de dépendance, métadonnées de création. Les outils de conversion existent dans les deux sens.
Ce qui les distingue vraiment
CycloneDX a été conçu par une communauté sécurité, pour alimenter des chaînes de traitement automatisées. Il porte nativement les vulnérabilités et les assertions d’exploitabilité, ce qui en fait le format de travail naturel d’une plateforme de pilotage.
SPDX a été conçu par une communauté de conformité juridique, autour de la question « quelles licences y a-t-il dans ce logiciel, et qu’imposent-elles ». Sa liste de licences et ses expressions de licence font autorité mondiale, y compris pour CycloneDX qui les réutilise.
La conversion et ses pertes
Convertir n’est pas neutre. Les pertes typiques :
- les extensions propres à un format n’ont pas d’équivalent dans l’autre ;
- les relations entre composants sont exprimées différemment et peuvent s’aplatir ;
- les assertions VEX de CycloneDX n’ont pas de destination naturelle en SPDX 2.x ;
- les métadonnées de construction peuvent disparaître.
Toute conversion doit donc être documentée : outil utilisé, version, pertes connues.
Le choix retenu
Format pivot : CycloneDX, dans une version récente, produit par la chaîne de construction et consommé par la plateforme de pilotage. C’est le format qui porte nativement le VEX, donc celui qui permet de documenter les décisions de ne pas corriger.
Export SPDX à la demande, pour les usages juridiques et pour les clients qui l’exigent contractuellement.
Ce choix doit être figé et documenté, avec les versions minimales acceptées, et appliqué uniformément : deux équipes produisant deux formats différents rendent le portefeuille incomparable.
Dans cette section
Cyber
CycloneDX
Le format de l'OWASP normalisé ECMA-424 : structure du document, extensions BOM, prise en charge native du VEX, et exemple commenté.
Legal
SPDX
Le format de la Linux Foundation normalisé ISO/IEC 5962 : structure, profils SPDX 3, liste et expressions de licence faisant autorité, et exemple commenté.