3. 密码算法风险评估与优先级排序
算法退役治理中最常见的失败模式,不是“不知道该换什么”,而是“所有系统都说自己重要,于是所有系统一起排队”。资源有限、窗口有限、业务连续性压力大,因此必须把“哪些算法风险最高、先动谁”变成可解释、可复核、可复用的判断过程。本节围绕四个风险维度、量化与定性方法、风险矩阵构建、排序准则,并给出一个金融企业的排序实践示例。
一、四个风险维度:把“感觉危险”拆成可评估的因子
算法风险不能只看算法本身是否被攻破,而要同时看它保护什么、暴露在哪里、处在什么阶段。建议固定四个维度,每个维度给出可核查的证据来源:
- 算法强度:算法族与密钥长度、协议版本、实现是否合规。例如 SHA-1、RSA-1024、DES/3DES、TLS 1.0/1.1、MD5 签名属于高风险;RSA-2048 在“抗量子”语境下属于中长期风险;SM2/SM4、AES-256、SHA-256 属于当前可接受。证据来源:证书与密钥清单、协议扫描、代码依赖分析。
- 数据敏感度:被保护数据的分类分级与保留期限。身份凭证、支付指令、生物特征、长期存档合同属于高敏感;日志、公开配置属于低敏感。证据来源:数据资产目录、分类分级标签。
- 暴露面:攻击者能否触达。互联网可达接口、对外证书、第三方可调用 API 属于高暴露;内网隔离、离线介质属于低暴露。证据来源:网络拓扑、网关策略、证书透明度日志。
- 生命周期阶段:系统处于新建、运行、维护还是退役期。新建系统若仍引入弱算法,属于“新增债务”,应优先拦截;临近退役的系统可采取补偿控制而非彻底改造。
二、量化与定性:先算分,再校准
推荐“先量化、后定性校准”的两段式方法。量化阶段对每个维度打 1~5 分,并赋予权重,得到风险分值:
风险分值 R = 0.35×算法强度 + 0.30×数据敏感度
+ 0.20×暴露面 + 0.15×生命周期阶段
示例(某支付网关 TLS 证书):
算法强度=5(RSA-1024 + TLS 1.0)
数据敏感度=5(支付指令)
暴露面=5(互联网可达)
生命周期阶段=3(运行中,尚有 2 年规划)
R = 0.35×5 + 0.30×5 + 0.20×5 + 0.15×3 = 4.70
权重不是固定的,应随治理阶段调整:在“抗量子迁移”阶段可提高算法强度权重;在“合规整改”阶段可提高数据敏感度权重。量化之后必须做定性校准,因为分数会掩盖关键事实:例如某系统分值中等,但它是全行证书签发根节点,一旦失效会级联影响所有下游系统,这类“单点放大效应”必须人工上调优先级。反之,某些高分系统已有硬件加密机与强访问控制作为补偿控制,可适度下调。
三、风险矩阵:把分值落到可沟通的格子
把“算法强度”作为横轴、“数据敏感度×暴露面”作为纵轴,形成 5×5 风险矩阵,每个格子对应处置策略。矩阵的价值在于让业务方一眼看懂“为什么我在红色区”。
四、优先级排序准则:分值之外还要看什么
排序不能只按 R 值从高到低。建议采用“分层 + 同层排序”的准则:
- 第一层:合规与阻断性风险。监管明确禁止的算法(如 SHA-1 签名、TLS 1.0)直接进入最高优先级,不参与分值比较。
- 第二层:单点放大效应。根 CA、统一认证、密钥管理服务等一旦失效会级联影响多个系统的节点,优先级上调一档。
- 第三层:R 值排序。同层内按 R 值降序排列。
- 第四层:迁移成本与窗口。同等风险下,先做“改配置即可完成”的项,把需要停机改造的项排入计划窗口。
这样排序的结果既符合合规刚性,又避免“根节点被埋在长尾里”的典型事故。
五、案例:某金融企业算法风险排序实践
某金融企业在一次密码算法治理中,先通过证书扫描与代码依赖分析,梳理出 312 个使用弱算法的对象。按上述方法打分后,得到如下排序片段(数据为教学示例,非真实企业实测):
| 对象 | 算法强度 | 数据敏感度 | 暴露面 | 生命周期 | R 值 | 处置 |
|---|---|---|---|---|---|---|
| 支付网关 TLS 证书 | 5 | 5 | 5 | 3 | 4.70 | 30 天内更换证书与协议 |
| 核心账务报文签名 | 4 | 5 | 3 | 4 | 3.85 | 1 季度内迁移 SM2 |
| 内部报表加密 | 3 | 3 | 2 | 3 | 2.60 | 监控 + 补偿控制 |
| 测试环境自签证书 | 2 | 1 | 2 | 2 | 1.45 | 随环境退役 |
该企业还做了两处定性校准:核心账务报文签名虽 R 值低于支付网关,但它是全行清算链路的关键节点,一旦签名算法被攻破会引发资金类风险,因此被上调至与支付网关同批处理;测试环境自签证书虽分值低,但因其私钥曾与生产环境共用同一生成脚本,被要求先做密钥隔离再退役。这两处调整都记录了理由与证据,使排序结果可审计、可复盘。
把四个维度、量化公式、风险矩阵与分层排序准则固定下来,算法退役就从“谁声音大谁先做”变成“谁风险高谁先做”。下一阶段的工作,是把排序结果转化为可执行的迁移计划与验证方案。