pqcstatus
Guide

Qu'est-ce qu'un CBOM, la nomenclature cryptographique ?

Le format d'inventaire qui transforme votre cryptographie en données que vous pouvez interroger, comparer et partager.

· 7 min

Une nomenclature cryptographique (CBOM, Cryptographic Bill of Materials) est un inventaire lisible par machine de la cryptographie utilisée par un système : algorithmes et leurs paramètres, clés, certificats, protocoles et bibliothèques qui les implémentent. Elle répond à des questions auxquelles un tableur ne peut pas répondre de manière fiable à grande échelle : où utilisons-nous encore RSA-2048 ? Quels services dépendent d'une bibliothèque sans prise en charge de ML-KEM ? Qu'est-ce qui a changé depuis le trimestre dernier ?

CBOM et SBOM

Une nomenclature logicielle (SBOM) recense les composants logiciels et leurs versions. Elle vous indique qu'un service utilise OpenSSL 3.0, mais pas quels algorithmes ce service appelle réellement, avec quelles tailles de clé, ni quels certificats il présente. Le CBOM ajoute cette couche cryptographique. Les deux sont complémentaires, et la norme CycloneDX prend en charge les deux dans un même document.

Le format CycloneDX 1.6

Depuis la version 1.6, CycloneDX définit un type de composant cryptographic-asset doté de cryptoProperties. Un actif peut être un algorithme, un certificat, un protocole ou un élément associé, comme une clé. Une entrée minimale pour une signature RSA-2048 se présente ainsi :

{
  "bomFormat": "CycloneDX",
  "specVersion": "1.6",
  "components": [
    {
      "type": "cryptographic-asset",
      "bom-ref": "crypto/algorithm/rsa-2048",
      "name": "RSA-2048",
      "cryptoProperties": {
        "assetType": "algorithm",
        "algorithmProperties": {
          "primitive": "signature",
          "parameterSetIdentifier": "2048",
          "cryptoFunctions": ["sign", "verify"],
          "classicalSecurityLevel": 112,
          "nistQuantumSecurityLevel": 0
        }
      }
    }
  ]
}

Le champ nistQuantumSecurityLevel est ce qui rend un CBOM utile pour planifier la migration post-quantique : 0 signifie que l'algorithme n'offre aucune sécurité face à un attaquant quantique, comme RSA et ECDSA, tandis que ML-KEM-768 atteint le niveau 3.

Qui demande un CBOM

Comment en produire un

Un CBOM complet combine plusieurs sources :

  1. La découverte réseau de ce qu'exposent les services : versions TLS, suites cryptographiques, groupes d'échange de clés et certificats. C'est ce que fait notre scanner gratuit pour les points de terminaison publics.
  2. L'analyse statique du code source pour repérer les appels cryptographiques, les tailles de clé et les algorithmes codés en dur.
  3. L'analyse de configuration des serveurs web, des proxys et de l'infrastructure en tant que code.
  4. L'analyse des dépendances pour savoir quelles bibliothèques cryptographiques, et en quelles versions, chaque application embarque.

Des outils open source couvrent une partie de ce travail, comme CBOMkit et le plugin de cryptographie pour Sonar, maintenus au sein de la Post-Quantum Cryptography Alliance. PQC Status développe un scanner en ligne de commande qui s'exécute localement, afin que votre code ne quitte jamais votre machine, et qui produit un CBOM au format CycloneDX.

Le maintenir à jour

Un CBOM n'est utile que s'il reste à jour. Générez-le en intégration continue à chaque version, conservez chaque itération et comparez-les : un nouvel actif vulnérable au quantique dans un service critique devrait être aussi visible qu'une nouvelle dépendance vulnérable.

Questions fréquentes

Un CBOM est-il obligatoire ?

Pour les agences fédérales américaines, un inventaire cryptographique automatisé est exigé par l'OMB M-26-15. Ailleurs, les réglementations exigent un inventaire ou des politiques de cryptographie sans imposer le format CBOM, mais c'est la manière la plus structurée de s'y conformer.

Quelle différence entre un CBOM et un SBOM ?

Un SBOM recense les composants logiciels et leurs versions. Un CBOM recense les actifs cryptographiques : algorithmes et paramètres, clés, certificats et protocoles, ainsi que leur lieu d'utilisation.

Quel format utiliser pour un CBOM ?

CycloneDX 1.6 ou ultérieur est le format le plus répandu, avec un type de composant dédié, cryptographic-asset.

Un CBOM peut-il contenir des secrets ?

Il ne le devrait pas. Un CBOM décrit les clés et les certificats, par exemple leur type, leur taille et leur emplacement, mais n'inclut jamais de clé privée.