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:
| Factor | Question | Higher priority when… |
|---|---|---|
| Data sensitivity | How damaging is disclosure? | Secrets, PII, keys, regulated data |
| Data lifetime | How long must it stay confidential? | Long-lived (X is large) — HNDL exposure |
| Exposure | How 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.
Migration Overview →
How discovery feeds governance and prioritization.
Migration Playbook →
Discovery as phase one, with owners and exit criteria.
PKI Impact →
What the certificate inventory tells you about migration scope.
Standards Timeline →
Deprecation dates that set prioritization deadlines.
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.
| Download | What it does |
|---|---|
| pqc-crypto-scan.py | Python 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.sh | OpenSSL probe of TLS endpoints — reports protocol, cipher, cert signature, and whether a PQC/hybrid group is offered. ./scan-tls.sh host:443 |
| cbom-template.json | CycloneDX 1.6 CBOM skeleton with example cryptographic-asset components and migration fields. |
| cbom-inventory-template.csv | Spreadsheet inventory template — system, algorithm, purpose, quantum risk, migration target, owner, priority. |
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
- CycloneDX CBOM — the Cryptography Bill of Materials format used for inventory.
- CISA Quantum-Readiness factsheet — guidance on building a cryptographic inventory.
- NCCoE SP 1800-38 — discovery tooling and migration practice guide.
- Resources — full standards register
密码发现与 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 即你的截止期限所依据的弃用日期,参见标准时间线。
迁移总览 →
发现盘点如何为治理与排序提供输入。
迁移实施手册 →
作为第一阶段的发现盘点,含责任人与退出标准。
PKI 影响 →
证书清单揭示了多大的迁移范围。
标准时间线 →
设定排序截止期限的弃用日期。
模板与工具
下载以下文件即可快速启动密码资产盘点与 CBOM。它们都是零依赖的起点——请人工复核输出,属启发式工具而非权威审计。
| 下载 | 用途 |
|---|---|
| pqc-crypto-scan.py | Python 3 扫描器——遍历源码树,按量子风险分类密码使用,生成 CBOM 草案。python3 pqc-crypto-scan.py <路径> --out cbom.json |
| scan-tls.sh | 用 OpenSSL 探测 TLS 端点——报告协议、密码套件、证书签名算法,以及是否提供 PQC/混合组。./scan-tls.sh host:443 |
| cbom-template.json | CycloneDX 1.6 的 CBOM 骨架,含示例密码资产组件与迁移字段。 |
| cbom-inventory-template.csv | 表格式盘点模板——系统、算法、用途、量子风险、迁移目标、负责人、优先级。 |
标准与参考
- CycloneDX CBOM — 用于资产盘点的密码物料清单格式。
- CISA Quantum-Readiness factsheet — 建立密码资产清单的指南。
- NCCoE SP 1800-38 — 发现盘点工具与迁移实操指南。
- 资源链接 — 完整标准登记册