3. 企业密码资产发现与清点方法
密码资产发现与清点是量子安全迁移评估的起点。如果连企业内有多少证书、多少密钥、哪些协议在调用密码算法都说不清楚,后续的算法替换、协议升级和迁移优先级排序就无从谈起。本节围绕四个核心动作展开:密码资产分类、证书与密钥库扫描、协议与算法使用点识别,以及资产清单模板与工具选型。
3.1 密码资产分类:先建立统一口径
密码资产不是单一对象,而是“算法、密钥、证书、协议、密码服务、密码设备”等多类对象的集合。分类的目的,是让不同团队在清点时使用同一套标签,避免出现“同一张证书在安全团队叫证书、在运维团队叫配置文件”的混乱。
建议按“对象类型 + 生命周期状态 + 承载位置”三个维度分类。对象类型包括:对称密钥、非对称密钥对、数字证书、证书链/信任库、密码算法实现、密码协议端点、密码服务接口(如KMS、HSM、TLS终止网关)。生命周期状态包括:规划、生成、激活、轮换中、已吊销、已过期、待销毁。承载位置包括:应用代码、配置文件、密钥库文件、HSM、云KMS、操作系统证书存储、网络设备、数据库加密列。
分类完成后,每个资产应有一个唯一标识,例如 CA-APP-TLS-0007,并记录其算法族(RSA/ECC/AES/SM2/SM4)、密钥长度、协议版本、有效期和责任人。这一步不追求一次穷尽,而是先形成可扩展的分类骨架。
3.2 证书与密钥管理库扫描
证书和密钥库是密码资产最集中的地方。扫描时不能只扫文件系统,还要覆盖运行时和远程服务。常见扫描对象包括:
- 文件型密钥库:JKS、PKCS#12(.p12/.pfx)、PEM、DER、KEY、CRT、CER;
- 系统证书存储:Windows CertStore、Linux
/etc/ssl/certs、macOS Keychain; - 云与中间件:AWS KMS/ACM、阿里云KMS、Kubernetes Secret、Nginx/Apache证书配置;
- 代码与配置:源码中的硬编码密钥、
application.yml、.env、CI/CD变量。
以扫描一个Java应用的PKCS#12密钥库为例,可使用如下命令查看别名、算法和有效期:
keytool -list -v -keystore app-tls.p12 \
-storetype PKCS12 -storepass changeit
# 输出关键字段示例:
# Alias name: app-tls
# Entry type: PrivateKeyEntry
# Owner: CN=app.example.com, O=Example Corp
# Valid from: 2023-06-01 until: 2024-06-01
# Signature algorithm name: SHA256withRSA
# Subject Public Key Algorithm: 2048-bit RSA
扫描结果要重点标记三类风险:一是使用RSA-2048、ECC P-256等量子脆弱算法的证书;二是有效期过长、无法在迁移窗口内自然轮换的证书;三是私钥可导出、未受HSM保护的密钥。对于每个密钥库,应记录文件路径、别名、算法、密钥长度、有效期、是否可导出、关联应用。
3.3 协议与算法使用点识别
证书和密钥只是“静态资产”,真正决定量子风险的是它们在协议中的使用方式。需要识别协议端点及其算法协商结果,例如TLS、SSH、IPSec、S/MIME、代码签名、数据库TLS、API网关mTLS。
以TLS为例,可使用 openssl s_client 或 nmap --script ssl-enum-ciphers 探测服务端支持的密码套件:
openssl s_client -connect app.example.com:443 \
-servername app.example.com -showcerts
# 关注输出中的:
# Protocol : TLSv1.2
# Cipher : ECDHE-RSA-AES256-GCM-SHA384
# Server Temp Key: ECDH, P-256, 256 bits
# Peer signing digest: SHA256
# Peer signature type: RSA
如果服务端仍使用 ECDHE-RSA,说明密钥交换依赖RSA签名,属于量子脆弱点;若使用 ECDHE-ECDSA,则依赖ECC签名,同样脆弱。识别结果应形成“协议—端点—算法—风险等级”的映射表,并标注该端点是否支持混合密钥交换(如X25519+Kyber)等后量子过渡方案。
3.4 资产清单模板与工具选型
资产清单不是简单罗列,而是迁移决策的数据底座。一个可用的清单模板至少应包含以下字段:资产ID、资产类型、承载位置、算法族、密钥长度、协议版本、有效期、责任人、业务系统、量子风险等级、迁移优先级、备注。
工具选型上,建议采用“扫描器 + 清单库 + 可视化”的组合:扫描器负责发现证书、密钥和协议端点;清单库负责去重、关联和版本管理;可视化负责展示风险分布和迁移进度。常见工具包括:keytool、openssl、nmap、testssl.sh、certutil,以及商业化的密码资产发现平台。选型时重点考察:是否支持国密算法识别、是否能扫描HSM和云KMS、是否提供API对接CMDB、是否支持定期增量扫描。
清单建立后,应定期增量扫描并更新状态。对于量子风险等级为“高”的资产,优先安排迁移验证;对于“中”和“低”的资产,可结合业务窗口分批处理。最终目标是形成一份可查询、可追溯、可驱动迁移决策的密码资产台账。