pqcstatus
Guide

What is a CBOM, the cryptographic bill of materials?

The inventory format that turns your cryptography into data you can query, compare and share.

· 7 min

A cryptographic bill of materials (CBOM) is a machine-readable inventory of the cryptography used by a system: algorithms and their parameters, keys, certificates, protocols and the libraries that implement them. It answers questions a spreadsheet cannot answer reliably at scale: where do we still use RSA-2048? Which services depend on a library without ML-KEM support? What changed since last quarter?

CBOM versus SBOM

A software bill of materials (SBOM) lists software components and their versions. It tells you that a service uses OpenSSL 3.0, but not which algorithms that service actually calls, with which key sizes, or which certificates it presents. A CBOM adds that cryptographic layer. The two are complementary, and the CycloneDX standard supports both in the same document.

The CycloneDX 1.6 format

Since version 1.6, CycloneDX defines a component type cryptographic-asset with cryptoProperties. An asset can be an algorithm, a certificate, a protocol or related material such as a key. A minimal entry for an RSA-2048 signature looks like this:

{
  "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
        }
      }
    }
  ]
}

The field nistQuantumSecurityLevel is what makes a CBOM useful for post-quantum planning: 0 means the algorithm offers no security against a quantum attacker, as for RSA and ECDSA, while ML-KEM-768 reaches level 3.

Who asks for a CBOM

How to produce one

A complete CBOM combines several sources:

  1. Network discovery of what services expose: TLS versions, cipher suites, key exchange groups and certificates. This is what our free scanner does for public endpoints.
  2. Static analysis of source code to find cryptographic calls, key sizes and hard-coded algorithms.
  3. Configuration analysis of web servers, proxies and infrastructure as code.
  4. Dependency analysis to know which cryptographic libraries, and which versions, each application ships.

Open-source tools exist for parts of this work, such as the CBOMkit and the Sonar cryptography plugin maintained under the Post-Quantum Cryptography Alliance. PQC Status is building a command-line scanner that runs locally, so your code never leaves your machine, and outputs a CycloneDX CBOM.

Keeping it alive

A CBOM is only useful if it stays current. Generate it in continuous integration on every release, store each version, and compare them: a new quantum-vulnerable asset in a critical service should be as visible as a new vulnerable dependency.

Frequently Asked Questions

Is a CBOM mandatory?

For US federal agencies, an automated cryptographic inventory is required by OMB M-26-15. Elsewhere, regulations require an inventory or cryptography policies without imposing the CBOM format, but it is the most structured way to comply.

What is the difference between a CBOM and an SBOM?

An SBOM lists software components and versions. A CBOM lists cryptographic assets: algorithms with parameters, keys, certificates and protocols, and where they are used.

Which format should a CBOM use?

CycloneDX 1.6 or later is the most widely used format, with a dedicated cryptographic-asset component type.

Can a CBOM contain secrets?

It should not. A CBOM describes keys and certificates, such as their type, size and location, but never includes private key material.