2. 密码资产发现与清点
密码资产发现与清点是量子安全迁移工程的第一步,也是决定后续迁移范围、优先级和成本估算的基础。所谓“密码资产”,并不仅仅指密钥文件本身,而是指系统中一切依赖密码学提供安全能力的对象与配置:公钥算法、对称算法、哈希算法、数字证书、TLS/SSH/IPSec 等安全协议、密钥库、签名与验签接口、随机数源,以及调用这些能力的应用与服务。如果这一步做得不完整,后续的算法替换、证书重签、协议升级都会出现“漏网之鱼”,迁移完成后仍可能存在可被量子计算攻破的薄弱点。
一、密码资产的三层结构
为了便于清点,可以把密码资产划分为三个层次。最底层是算法层,包括 RSA、ECDSA、ECDH、DH、DSA、AES、SHA-1、SHA-256、SM2、SM3、SM4 等具体算法及其参数(如 RSA 2048、ECDSA P-256)。中间层是协议与证书层,包括 TLS 1.2/1.3、SSH、IPSec/IKE、S/MIME、代码签名、时间戳等协议,以及 X.509 证书、CA 链、CRL/OCSP 等证书对象。最上层是应用与数据层,包括调用密码接口的业务系统、密钥库(JKS、PKCS#12、KMS)、配置文件、固件、容器镜像和数据库加密字段。三层之间存在依赖关系:应用调用协议,协议依赖算法和证书,算法参数又决定证书的密钥长度和签名方式。清点时应当自下而上或自上而下建立映射,避免只看到证书而忽略其背后的算法参数。
二、自动化扫描:从网络到配置
自动化扫描是快速覆盖大范围资产的主要手段,通常从三个方向同时推进。第一是网络探测:对目标网段进行端口扫描,识别开放 443、22、500、4500 等端口的服务,然后使用 TLS 握手采集服务器证书链和协商的密码套件。例如用 openssl s_client -connect host:443 -showcerts 可以获取证书链和协议版本;用 nmap --script ssl-enum-ciphers -p 443 host 可以枚举支持的密码套件。第二是配置解析:扫描 Web 服务器、数据库、中间件、VPN 网关的配置文件,提取 ssl_protocols、SSLCipherSuite、ssh_host_key、ike 策略等字段。第三是证书采集:从证书透明度日志、内部 CA、KMS 和文件系统中收集所有 X.509 证书,解析其公钥算法、密钥长度、签名算法、有效期和 SAN 列表。
扫描结果需要归一化处理。不同工具输出的字段名不同,应统一映射到“资产标识、资产类型、算法、密钥长度、协议版本、证书主体、到期时间、所在位置、负责人”等字段。例如,一个典型的扫描记录可能显示:10.20.3.15:443 | TLS 1.2 | ECDHE-RSA-AES128-GCM-SHA256 | 证书 CN=api.example.com | RSA 2048 | 2025-11-30 到期。这条记录说明该服务使用 RSA 2048 做签名和密钥交换,属于量子脆弱算法,应列入优先迁移清单。
三、人工审计:弥补扫描盲区
自动化扫描无法覆盖所有场景。硬编码在代码中的密钥、编译进固件的算法、离线签名的私钥、以及未开放网络端口的内部服务,都需要人工审计。人工审计的重点包括:代码仓库中搜索 RSA、EC、MD5、SHA1、BEGIN PRIVATE KEY 等关键字;检查密钥库文件(JKS、PKCS#12、PEM)中的条目;审查 CI/CD 流水线中的签名步骤;访谈运维和开发人员,确认是否存在“口头约定”的加密方式。人工审计还应关注密钥的生命周期:生成方式、存储位置、备份策略、轮换周期和销毁记录。这些信息往往不在扫描工具的视野内,却直接影响迁移方案的设计。
四、建立密码资产清单
清点的最终产出是一份可维护的密码资产清单。清单不是一次性表格,而应作为持续更新的配置项管理。建议至少包含以下字段:资产编号、资产名称、资产类型(服务/证书/密钥/算法配置)、所在位置(IP、文件路径、KMS 别名)、公钥算法及参数、对称算法及模式、哈希算法、协议版本、证书有效期、量子脆弱性评级(高/中/低)、迁移优先级、负责人、最后确认时间。其中“量子脆弱性评级”可依据算法类型判断:RSA、ECDSA、ECDH、DH、DSA 属于高脆弱;AES-128、SHA-256 属于中低脆弱(Grover 算法可降低有效强度,但影响相对可控);AES-256、SHA-384 属于低脆弱。评级结果直接决定迁移顺序。
五、清点结果的验证与闭环
清点完成后,需要用交叉验证的方式检查完整性。例如,将网络扫描发现的 TLS 服务与配置解析得到的虚拟主机列表比对,差异部分说明存在未纳管服务;将证书采集结果与 CA 签发记录比对,差异部分说明存在自签名或外部证书。验证通过后,清单应导入配置管理数据库(CMDB)或专用的密码资产管理系统,并设置定期复扫任务。建议每季度至少复扫一次,在证书到期前 90 天触发提醒。只有形成“发现—登记—验证—更新”的闭环,密码资产清单才能真正支撑后续的量子安全迁移决策。
在实际项目中,清点阶段常见的误区是只关注服务器证书而忽略客户端证书、只关注 TLS 而忽略 SSH 和 IPSec、只关注生产环境而忽略测试和灾备环境。这些遗漏会在迁移后期造成返工。因此,清点范围应覆盖全部环境,并以“算法—协议—证书—应用”的依赖链为线索逐层确认,确保没有资产被遗漏在量子脆弱算法之外。