Nomenclature des composants cryptographiques

Une nomenclature des composants cryptographiques (en anglais cryptographic bill of materials, abrégé CBOM, également appelé cryptography bill of materials) est un inventaire structuré de l'ensemble des actifs cryptographiques présents dans un logiciel, un micrologiciel, un appareil ou un système. Elle recense les algorithmes cryptographiques et leurs paramètres (notamment les tailles de clés et les modes de fonctionnement), les bibliothèques et modules cryptographiques, les certificats numériques, les clés et les éléments associés, ainsi que les protocoles utilisés. Elle décrit les relations entre ces actifs et les composants qui les implémentent ou les utilisent[1],[2].

Les CBOM facilitent l'analyse de la sécurité, la conformité aux politiques de sécurité et l'agilité cryptographique. Ils jouent également un rôle dans la préparation de la migration vers la cryptographie post-quantique[3].

Historique

modifier

Le concept de CBOM s'est développé au début des années 2020, parallèlement aux travaux sur la transparence de la chaîne d'approvisionnement logicielle et à la préparation de la transition vers la cryptographie post-quantique. Le standard CycloneDX de l'OWASP a introduit une prise en charge native des CBOM à partir de sa version 1.6, en représentant les algorithmes, les clés, les certificats et les protocoles comme des actifs cryptographiques à part entière. Il permet également de décrire les relations d'utilisation et d'implémentation entre les logiciels et leurs mécanismes cryptographiques[3].

Des outils ouverts, notamment CBOMkit d'IBM, ont été développés pour automatiser la découverte et la représentation de l'utilisation de la cryptographie[4],[5].

Définition et périmètre

modifier

Un CBOM inventorie les primitives et actifs cryptographiques : algorithmes de chiffrement et de signature numérique (avec leurs variantes et modes de fonctionnement), tailles de clés, bibliothèques et modules cryptographiques, certificats numériques tels que X.509, clés et matériel associé, ainsi que protocoles de sécurité comme TLS et IPsec.

Il décrit également les dépendances : une application peut utiliser un algorithme fourni par une bibliothèque, tandis qu'un protocole peut faire appel à plusieurs algorithmes. Un CBOM peut documenter le cycle de vie des certificats, les certifications des modules cryptographiques (par exemple FIPS 140-3) et des métadonnées relatives à la conformité aux politiques de sécurité[3],[1].

Un CBOM peut être intégré à une nomenclature des composants logiciels (software bill of materials, SBOM) au format CycloneDX, ou être exporté comme un document distinct relié à cette nomenclature[3],[5].

Champs typiques

modifier

Les champs exacts varient selon le schéma de données utilisé. Le tableau suivant présente des exemples[3],[2].

Exemples de champs d'un CBOM
ChampExemplesUtilité
AlgorithmeAES-128-GCM ; RSA-2048 ; ECDSA-P-256 ; SHA-256Préciser la variante ou le mode, identifier les algorithmes vulnérables aux attaques quantiques.
ParamètresTaille de clé ; mode GCM/CTR ; bourrage PSS/PKCS#1 v1.5Détecter les risques liés à la configuration et les écarts aux politiques de sécurité.
Bibliothèque ou moduleOpenSSL ; BoringSSL ; wolfCrypt ; module HSM/KMSIdentifier une implémentation et, éventuellement, sa certification.
Protocole ou suite cryptographiqueTLS 1.3 ; SSHAssocier les protocoles aux algorithmes sous-jacents.
CertificatsX.509 ; émetteur ; sujet ; dates de validité ; noms alternatifs (SAN)Contrôler les expirations, les chaînes de certification et les contraintes d'utilisation.
Clés et éléments associésType RSA/ECC/symétrique ; taille ; stockage dans un HSM, TPM ou fichier ; politique de renouvellementInventorier les caractéristiques sans exposer les secrets en clair.
Relation de dépendanceuses / implementsDécrire comment les fonctionnalités cryptographiques sont fournies et utilisées.
Emplacement et périmètreComposant, service, hôte, micrologiciel, image de conteneurFaciliter la recherche, l'analyse d'impact et la remédiation.
Politique et étatApprouvé ; obsolète ; interdit ; dérogationFaciliter les rapports de conformité et l'agilité cryptographique.

Relations avec les SBOM

modifier

Un CBOM est complémentaire d'une nomenclature des composants logiciels (SBOM), tout en étant distinct de celle-ci. Un SBOM répertorie les composants logiciels et leurs versions ; un CBOM se concentre sur la cryptographie présente dans ces composants et sur la manière dont elle est configurée et utilisée.

Par exemple, un SBOM peut indiquer la présence d'OpenSSL, tandis qu'un CBOM précise les algorithmes et paramètres associés (RSA-2048, ECDH P-256, AES-GCM) et les clés ou certificats pertinents[1],[3]. Ensemble, ces deux nomenclatures améliorent la transparence de la chaîne d'approvisionnement logicielle et celle des mécanismes cryptographiques.

Contexte réglementaire et politiques publiques

modifier

Aux États-Unis, les politiques publiques ont présenté l'inventaire cryptographique comme une étape préalable à la transition post-quantique. Le mémorandum de sécurité nationale no 10 de 2022 prévoyait une transition de l'administration fédérale vers la cryptographie résistante aux attaques quantiques[6].

Le mémorandum M-23-02 de l'Office of Management and Budget (novembre 2022) demandait aux agences de produire, avant le 4 mai 2023 puis annuellement, un inventaire hiérarchisé de leurs systèmes cryptographiques, avec les informations relatives aux algorithmes et aux clés. Il confiait à la CISA, à la NSA et au NIST la préparation de stratégies d'inventaire et de découverte automatisés[7].

Un rapport de l'Office of the National Cyber Director, publié en juillet 2024, soulignait la nécessité de disposer d'un inventaire cryptographique exhaustif, régulièrement mis à jour à l'aide de méthodes automatisées et manuelles[8]. Le guide NIST SP 1800-38B (projet préliminaire) expose des méthodes de découverte et de documentation de la cryptographie à l'échelle d'une organisation[2].

La CISA a également publié une stratégie consacrée à l'adoption d'outils automatisés de découverte et d'inventaire cryptographiques[9]. Par ailleurs, la NSA, la CISA et le NIST ont recommandé aux organisations de préparer des inventaires cryptographiques et des feuilles de route de migration post-quantique[10].

Préparation à l'ère quantique et agilité cryptographique

modifier

Le développement d'ordinateurs quantiques suffisamment puissants menace certains algorithmes de cryptographie asymétrique, notamment RSA et les mécanismes fondés sur les courbes elliptiques. Les organisations préparent ainsi des transitions pluriannuelles vers la cryptographie post-quantique.

Les CBOM permettent de repérer où sont utilisés les algorithmes vulnérables, de hiérarchiser les systèmes concernés et de suivre leur remplacement[2]. Lorsqu'un algorithme, une bibliothèque ou un certificat devient vulnérable ou non conforme, un CBOM exploitable automatiquement facilite l'identification des produits touchés et la définition des priorités de correction[1],[3].

Normes et outils

modifier
  • CycloneDX (OWASP) : prise en charge native des actifs cryptographiques à partir de la version 1.6 et publication de guides et de cas d'utilisation[3],[1].
  • NIST NCCoE SP 1800-38 : guides pratiques de migration vers la cryptographie post-quantique proposant des méthodes de découverte des mécanismes cryptographiques[2].
  • Initiatives publiques d'automatisation : stratégie de la CISA destinée à encourager l'adoption d'outils de découverte et d'inventaire automatisés.
  • Outils libres et commerciaux : CBOMkit d'IBM et ses composants associés permettent de générer, analyser et visualiser des CBOM ; les travaux d'IBM ont été intégrés à CycloneDX 1.6[4],[5].

Modèle de données et échanges

modifier

CycloneDX fournit des représentations lisibles par machine en JSON et XML. L'exemple simplifié suivant représente une application dépendant de la bibliothèque OpenSSL, qui fournit l'algorithme AES-256-GCM, ainsi que d'un certificat X.509 d'entité finale. Les propriétés dependsOn et provides décrivent ces relations[3],[11],[12].

{
  "bomFormat": "CycloneDX",
  "specVersion": "1.7",
  "serialNumber": "urn:uuid:12345678-90ab-cdef-1234-567890abcdef",
  "version": 1,
  "metadata": {
    "timestamp": "2025-01-01T12:00:00Z",
    "component": {
      "bom-ref": "app:inventory",
      "type": "application",
      "name": "Inventory Service",
      "version": "2.3.1"
    }
  },
  "components": [
    { "bom-ref": "lib:openssl@3.0.13", "type": "library",
      "name": "OpenSSL", "version": "3.0.13" },
    { "name": "AES-256-GCM", "type": "cryptographic-asset",
      "bom-ref": "crypto/algorithm/aes-256-gcm@2.16.840.1.101.3.4.1.46",
      "cryptoProperties": {
        "assetType": "algorithm",
        "algorithmProperties": {
          "primitive": "ae", "mode": "gcm", "parameterSetIdentifier": "256",
          "cryptoFunctions": ["encrypt", "decrypt"]
        },
        "oid": "2.16.840.1.101.3.4.1.46"
      }
    },
    { "name": "www.example.com", "type": "cryptographic-asset",
      "bom-ref": "crypto/cert/www.example.com@sha256:abcdef...",
      "cryptoProperties": {
        "assetType": "certificate",
        "certificateProperties": {
          "subjectName": "CN=www.example.com",
          "issuerName": "C=US, O=Example Trust, CN=ET CA 1",
          "notValidBefore": "2024-09-01T00:00:00Z",
          "notValidAfter": "2026-09-01T00:00:00Z"
        }
      }
    }
  ],
  "dependencies": [
    { "ref": "app:inventory",
      "dependsOn": ["lib:openssl@3.0.13", "crypto/cert/www.example.com@sha256:abcdef..."] },
    { "ref": "lib:openssl@3.0.13",
      "provides": ["crypto/algorithm/aes-256-gcm@2.16.840.1.101.3.4.1.46"] }
  ]
}

Relations avec la sécurité de la chaîne d'approvisionnement numérique

modifier

Les CBOM complètent les initiatives de transparence de la chaîne d'approvisionnement fondées sur les SBOM, notamment celles liées au décret présidentiel américain 14028 et aux travaux de la NTIA et du NIST. Les SBOM documentent les composants logiciels ; les CBOM précisent leurs mécanismes cryptographiques afin de faciliter la gestion des risques, le respect des politiques de sécurité et la transition post-quantique[13],[14].

Voir aussi

modifier

Notes et références

modifier
  1. 1 2 3 4 5 (en) « Cryptography Bill of Materials (CBOM) », sur CycloneDX (consulté le )
  2. 1 2 3 4 5 (en) « SP 1800-38B (Preliminary Draft): Migration to Post-Quantum Cryptography — Quantum Readiness: Cryptographic Discovery », sur NIST NCCoE, (consulté le )
  3. 1 2 3 4 5 6 7 8 9 (en) « Authoritative Guide to CBOM (2nd ed.) », sur CycloneDX, (consulté le )
  4. 1 2 (en) « Managing cryptography with CBOMkit », sur IBM Research, (consulté le )
  5. 1 2 3 (en) « IBM/CBOM: Cryptography Bill of Materials », sur GitHub (consulté le )
  6. ↑ (en) « National Security Memorandum on Promoting U.S. Leadership in Quantum Computing While Mitigating Risks to Vulnerable Cryptographic Systems », sur Maison-Blanche (archives),
  7. ↑ (en) « Memorandum M-23-02: Migrating to Post-Quantum Cryptography », sur Office of Management and Budget,
  8. ↑ (en) « Report on Post-Quantum Cryptography », sur Maison-Blanche / ONCD,
  9. ↑ (en) « Strategy for Migrating to Automated Post-Quantum Cryptography Discovery and Inventory Tools », sur CISA,
  10. ↑ (en) « Post-Quantum Cryptography: CISA, NIST, and NSA Recommend How to Prepare Now », sur NSA,
  11. ↑ (en) « CycloneDX v1.6 JSON Reference », sur CycloneDX
  12. ↑ (en) « Implementation details: dependsOn and provides », sur CycloneDX,
  13. ↑ (en) « Executive Order 14028: Improving the Nation's Cybersecurity », sur NIST,
  14. ↑ (en) « Minimum Elements for a Software Bill of Materials (SBOM) », sur NTIA,