QianHeng乾珩 PQC Docs Hub量子文档 ✦ Ask AI✦ 问问文档 ⚐ Scan⚐ 扫一扫

Cryptographic Discovery & CBOM

You cannot migrate what you cannot see. Discovery builds a cryptographic inventory of every algorithm, key, certificate, and protocol in your estate, captured as a CBOM — a Cryptography Bill of Materials — so you can prioritize what to migrate first and prove progress over time.

Why inventory comes first

Most organizations have no authoritative list of where cryptography lives. It is buried in application code, third-party binaries, network protocols, TLS endpoints, certificates, HSMs, and libraries — much of it added years ago by people who have moved on. Without an inventory you cannot estimate Y (migration time) in the risk equation, you cannot prioritize, and you cannot tell when you are done. Discovery is therefore the first and most repeated phase of any migration program.

What to scan

  • Source code. Static scans for crypto API calls, hard-coded algorithm names, OIDs, and key sizes.
  • Binaries and dependencies. Linked crypto libraries and their versions, including transitive dependencies.
  • Network traffic. TLS/SSH scans of live endpoints to discover negotiated versions, cipher suites, and named groups.
  • Certificates. Public-key algorithms, key sizes, signature algorithms, validity, and issuing CAs across the PKI.
  • HSMs and key stores. Stored keys, their algorithms, and how they are used.
  • Libraries and platforms. Crypto providers in OS, JVM, language runtimes, and frameworks.

CBOM: a Bill of Materials for crypto

A CBOM (Cryptography Bill of Materials) extends the CycloneDX SBOM standard with cryptographic asset components — algorithms, keys, certificates, protocols, and the dependencies between them. Using CycloneDX means CBOMs plug into existing supply-chain tooling and can be generated, stored, and queried alongside your SBOMs.

Field names follow the current CycloneDX schema / tool implementations; the example below illustrates structure and is not guaranteed to be accepted as-is by every tool.

{
  "bomFormat": "CycloneDX",
  "specVersion": "1.6",
  "components": [
    {
      "type": "cryptographic-asset",
      "name": "RSA-2048",
      "cryptoProperties": {
        "assetType": "algorithm",
        "algorithmProperties": {
          "primitive": "signature",
          "parameterSetIdentifier": "2048",
          "nistQuantumSecurityLevel": 0
        },
        "oid": "1.2.840.113549.1.1.1"
      }
    },
    {
      "type": "cryptographic-asset",
      "name": "tls-endpoint-payments",
      "cryptoProperties": {
        "assetType": "protocol",
        "protocolProperties": {
          "type": "tls",
          "version": "1.3",
          "cipherSuites": [{ "name": "TLS_AES_256_GCM_SHA384" }]
        }
      }
    }
  ]
}

Each asset records its algorithm, parameters, and — crucially — its nistQuantumSecurityLevel, which flags whether it is quantum-vulnerable. RSA and ECC entries surface immediately as migration targets.

Prioritization

Not everything migrates at once. Rank discovered assets by three factors:

FactorQuestionHigher priority when…
Data sensitivityHow damaging is disclosure?Secrets, PII, keys, regulated data
Data lifetimeHow long must it stay confidential?Long-lived (X is large) — HNDL exposure
ExposureHow reachable is it?External-facing, internet-reachable

Combine these with Mosca's X + Y > Z: assets with large X (long confidentiality requirement) are the first to migrate because harvested ciphertext is already at risk. Signing roots and external-facing endpoints typically top the list. See the Standards Timeline for the deprecation dates that bound Z and your deadlines.

Note
Discovery is continuous, not one-and-done. New services, dependencies, and certificates appear constantly. Wire CBOM generation into CI/CD and certificate issuance so your inventory stays current rather than going stale the day you finish it.

Templates & tooling

Download these to bootstrap a cryptographic inventory and CBOM. All are dependency-free starting points — review the output by hand; they are heuristics, not an authoritative audit.

DownloadWhat it does
pqc-crypto-scan.pyPython 3 scanner — walks a source tree, classifies crypto usage by quantum risk, emits a draft CBOM. python3 pqc-crypto-scan.py <path> --out cbom.json
scan-tls.shOpenSSL probe of TLS endpoints — reports protocol, cipher, cert signature, and whether a PQC/hybrid group is offered. ./scan-tls.sh host:443
cbom-template.jsonCycloneDX 1.6 CBOM skeleton with example cryptographic-asset components and migration fields.
cbom-inventory-template.csvSpreadsheet inventory template — system, algorithm, purpose, quantum risk, migration target, owner, priority.
Workflow
Run pqc-crypto-scan.py over each repo and scan-tls.sh over your external endpoints, merge the results into the CBOM/CSV, then rank by quantum risk and data-secrecy lifetime with the Risk Self-Assessment.

Standards & references

密码发现与 CBOM

看不见的资产无法迁移。发现盘点为你 IT 环境中的每一种算法、密钥、证书与协议建立密码资产清单,以 CBOM(密码物料清单)的形式记录,让你能优先处理最该先迁的部分,并随时间证明进展。

为何盘点必须先行

多数组织并无一份权威清单说明密码究竟藏身何处。它深埋于应用代码、第三方二进制、网络协议、TLS 端点、证书、HSM 与各类库中——其中许多是多年前由早已离职的人加入的。没有清单,你就无法估算风险方程中的 Y(迁移耗时),无法排序,也无从判断何时完工。因此,发现盘点是任何迁移计划中最先启动、也最频繁重复的阶段。

扫描哪些对象

  • 源代码。静态扫描密码 API 调用、写死的算法名称、OID 与密钥尺寸。
  • 二进制与依赖。所链接的密码库及其版本,包括传递依赖。
  • 网络流量。对在线端点做 TLS/SSH 扫描,发现协商出的版本、密码套件与命名群组。
  • 证书。整个 PKI 中的公钥算法、密钥尺寸、签名算法、有效期与签发 CA。
  • HSM 与密钥库。存储的密钥、其算法及使用方式。
  • 库与平台。操作系统、JVM、语言运行时与框架中的密码提供者。

CBOM 密码的物料清单

CBOM 密码物料清单在 CycloneDX SBOM 标准之上扩展出密码资产组件——算法、密钥、证书、协议及彼此间的依赖关系。采用 CycloneDX 意味着 CBOM 可接入既有供应链工具,与你的 SBOM 一并生成、存储与查询。

字段名以当前 CycloneDX schema / 工具实现为准,下面示例用于说明结构,不保证可被所有工具原样接受。

{
  "bomFormat": "CycloneDX",
  "specVersion": "1.6",
  "components": [
    {
      "type": "cryptographic-asset",
      "name": "RSA-2048",
      "cryptoProperties": {
        "assetType": "algorithm",
        "algorithmProperties": {
          "primitive": "signature",
          "parameterSetIdentifier": "2048",
          "nistQuantumSecurityLevel": 0
        },
        "oid": "1.2.840.113549.1.1.1"
      }
    },
    {
      "type": "cryptographic-asset",
      "name": "tls-endpoint-payments",
      "cryptoProperties": {
        "assetType": "protocol",
        "protocolProperties": {
          "type": "tls",
          "version": "1.3",
          "cipherSuites": [{ "name": "TLS_AES_256_GCM_SHA384" }]
        }
      }
    }
  ]
}

每项资产都记录其算法、参数,以及至关重要的 nistQuantumSecurityLevel,用以标记是否易受量子攻击。RSA 与 ECC 条目会立刻浮现为迁移目标。

优先级排序

并非一切都同时迁移。按三大因素对发现的资产排序:

因素核心问题何时优先级更高
数据敏感度泄露的危害有多大机密、个人信息、密钥、受监管数据
数据寿命需保密多久长寿命(X 大)——HNDL 暴露
暴露面可达性有多高对外开放、可经互联网访问

将上述因素与 Mosca 的 X + Y > Z 结合:X 大(保密要求长)的资产应最先迁移,因为被收割的密文已处于风险之中。签名根与对外端点通常居于榜首。Z 即你的截止期限所依据的弃用日期,参见标准时间线

注意
发现盘点是持续进行的,而非一劳永逸。新服务、新依赖与新证书层出不穷。请将 CBOM 生成接入 CI/CD 与证书签发流程,让清单保持最新,而不是在你完工当天就已过时。

模板与工具

下载以下文件即可快速启动密码资产盘点与 CBOM。它们都是零依赖的起点——请人工复核输出,属启发式工具而非权威审计。

下载用途
pqc-crypto-scan.pyPython 3 扫描器——遍历源码树,按量子风险分类密码使用,生成 CBOM 草案。python3 pqc-crypto-scan.py <路径> --out cbom.json
scan-tls.sh用 OpenSSL 探测 TLS 端点——报告协议、密码套件、证书签名算法,以及是否提供 PQC/混合组。./scan-tls.sh host:443
cbom-template.jsonCycloneDX 1.6 的 CBOM 骨架,含示例密码资产组件与迁移字段。
cbom-inventory-template.csv表格式盘点模板——系统、算法、用途、量子风险、迁移目标、负责人、优先级。
工作流
对每个代码库运行 pqc-crypto-scan.py、对外部端点运行 scan-tls.sh,把结果汇入 CBOM/CSV, 再用量子风险自评工具按量子风险与数据保密期排序。

标准与参考

⚑ Report an error⚑ 纠错与校正