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 风险矩阵,每个格子对应处置策略。矩阵的价值在于让业务方一眼看懂“为什么我在红色区”。

算法风险矩阵(示例) 横轴:算法强度风险(1 低 → 5 高) 纵轴:数据敏感度 × 暴露面(1 低 → 5 高) 1 2 3 4 5 5 4 3 2 1 A 支付网关证书 B 核心账务签名 C 内部报表加密 D 测试环境自签证书 处置策略 立即处置(30 天内) 计划迁移(1 季度) 监控 + 补偿控制 接受 / 随系统退役 A:R=4.70,红色区 B:R=3.85,橙色区 C:R=2.60,黄色区 D:R=1.45,绿色区

四、优先级排序准则:分值之外还要看什么

排序不能只按 R 值从高到低。建议采用“分层 + 同层排序”的准则:

  1. 第一层:合规与阻断性风险。监管明确禁止的算法(如 SHA-1 签名、TLS 1.0)直接进入最高优先级,不参与分值比较。
  2. 第二层:单点放大效应。根 CA、统一认证、密钥管理服务等一旦失效会级联影响多个系统的节点,优先级上调一档。
  3. 第三层:R 值排序。同层内按 R 值降序排列。
  4. 第四层:迁移成本与窗口。同等风险下,先做“改配置即可完成”的项,把需要停机改造的项排入计划窗口。

这样排序的结果既符合合规刚性,又避免“根节点被埋在长尾里”的典型事故。

五、案例:某金融企业算法风险排序实践

某金融企业在一次密码算法治理中,先通过证书扫描与代码依赖分析,梳理出 312 个使用弱算法的对象。按上述方法打分后,得到如下排序片段(数据为教学示例,非真实企业实测):

对象算法强度数据敏感度暴露面生命周期R 值处置
支付网关 TLS 证书55534.7030 天内更换证书与协议
核心账务报文签名45343.851 季度内迁移 SM2
内部报表加密33232.60监控 + 补偿控制
测试环境自签证书21221.45随环境退役

该企业还做了两处定性校准:核心账务报文签名虽 R 值低于支付网关,但它是全行清算链路的关键节点,一旦签名算法被攻破会引发资金类风险,因此被上调至与支付网关同批处理;测试环境自签证书虽分值低,但因其私钥曾与生产环境共用同一生成脚本,被要求先做密钥隔离再退役。这两处调整都记录了理由与证据,使排序结果可审计、可复盘。

排序结果不是一次性结论。每当新增系统、协议升级、监管要求变化或发生安全事件时,应重新评估受影响条目的四个维度分值,并更新矩阵位置与优先级。

把四个维度、量化公式、风险矩阵与分层排序准则固定下来,算法退役就从“谁声音大谁先做”变成“谁风险高谁先做”。下一阶段的工作,是把排序结果转化为可执行的迁移计划与验证方案。