第三章 密码改造项目规划:需求分析、方案设计、项目里程碑

密码改造不是上来就写代码、换设备。我见过太多团队,一拿到合规通知就急着采购服务器、安装密码机,结果做到一半发现接口不匹配,老系统根本不支持新算法。你想想看,拆了东墙补西墙,最后交付延期、审计不过、领导问责——一地鸡毛。

核心问题出在哪?就是缺了一个扎实的项目规划。这一章,我把自己踩过的坑、总结出来的步骤,掰开揉碎了讲给你听。

3.1 需求分析:理清家底,精准定位

需求分析是规划的起点。说白了,你得先搞清楚:现在有什么、要改什么、不改会怎样。

3.1.1 资产与密码使用现状梳理

我个人习惯,第一步先建一张「密码资产清单」。把每个业务系统的密码算法、密钥长度、证书有效期、密码机型号、HSM调用方式全列出来。我曾经在一个金融项目中,发现同一个系统里同时用了SHA-1、MD5和国密SM3,运维自己都说不清哪些接口依赖了弱算法——最后只能逐行翻代码。

系统名称当前密码算法密钥长度合规状态改造优先级
网上银行RSA-20482048 bit✗ SHA-1签名高
移动APPSM2/SM4256 bit✓ 国密合规低
内部OA3DES168 bit✗ 算法过时中
我的小技巧:列这张表时别光靠文档,一定跑一遍扫描工具(如OpenSSL s_client、Java Security Provider探查脚本)。文档写的是RSA-2048,实际跑出来可能是RSA-1024——我遇到过,真事儿。

3.1.2 合规要求与差距分析

需求分析的第二块是合规对标。拿《密码法》《GM/T 0054》《等级保护2.0》一条一条过。我会做一个差距矩阵:左边是法规条款,右边是我们现状,中间标「满足」「部分满足」「不满足」。不满足的,就是必改项。

关键原则:合规是底线,但不是全部。改造还要兼顾可用性、性能、兼容性。我曾经为了满足一个签名算法要求,把整个业务响应时间拖慢了300ms,用户骂到总局。所以,需求分析里必须包含非功能性需求:交易并发数、加解密延迟、证书轮换机制、灾难恢复时间。

3.2 方案设计:选型、架构与过渡策略

需求分析做扎实了,方案设计才有根。别一上来就画大图——我建议先画「现状架构图」和「目标架构图」,然后画中间那个过渡架构图。嗯,这个过渡架构最容易被忽略。

3.2.1 密码算法与产品选型

选型要考虑几个维度:

  • 算法标准:优先国密SM系列(SM2/SM3/SM4),兼容国际标准(RSA-2048+/AES-256/ECDSA)。
  • 密码产品形态:硬件密码机(HSM)、软件密码模块(如GmSSL、libtomcrypt)、云密码服务。
  • 管理平台:密钥管理系统(KMS)、证书生命周期管理平台(CA/RA)。

我给个参考表,方便你选型时对比:

选型维度HSM硬件软件密码模块云密码服务
安全性等级EAL4+ / FIPS 140-2 Level 3取决于实现取决于厂商
性能上限极高(硬件加速)中等(CPU绑定)弹性伸缩
部署成本高(采购+运维)低(开源/免费)按量付费
适用场景核心交易、支付、网银开发测试、内部管理系统云原生、微服务
踩坑提示:我曾经在一家银行选型时,只看HSM的签名速度,没查API粒度。结果上线后发现每个密钥只能绑定一个进程,业务拆成30个微服务后,HSM成了瓶颈。所以,选型时一定强制提供「多线程并发签名」测试报告。

3.2.2 架构设计要点

架构上我遵循“三不要”原则:

  1. 不要改业务逻辑——密码改造只在加解密层动刀,业务代码不碰。
  2. 不要单点依赖——密钥、证书、HSM都得做冗余。
  3. 不要绕开审计——所有密钥操作、策略变更、算法替换都要留下日志。

架构图里重点标注:密码服务网关、密钥存储区、证书链验证节点、密码策略管理中心。嗯,下面这张SVG图是我自己项目里用过的框架,你可以参考:

密码改造项目规划核心框架 需求分析 资产摸排 · 合规对标 · 差距矩阵 方案设计 选型 · 架构 · 过渡策略 测试验证 功能测试 · 性能测试 · 安全测试 实施交付 灰度发布 · 割接 · 回滚预案 项目里程碑 M1:需求评审 · M2:方案评审 · M3:测试通过 · M4:业务割接 易忽略的关键节点:过渡架构 改造过程中,老算法和新算法需要并存一段时间。建议设计「双算法并行模式」:流量先灰度10%,验证无误后再全量切。 M1:需求评审 M2:方案评审 M3:测试通过 M4:业务割接

3.3 项目里程碑:掐准节点,扎好护栏

项目里程碑不是领导逼出来的,是切分风险用的。我个人习惯把密码改造划成4个里程碑,每个里程碑都有明确的交付物和检查清单。

M1 需求评审里程碑

  • 交付物:密码资产清单、差距分析报告、改造范围确认书
  • 质量门:所有弱算法(MD5、SHA-1、RC4等)必须全部列入改造范围

M2 方案评审里程碑

  • 交付物:密码改造技术方案、测试方案、割接方案、回滚方案
  • 质量门:架构图至少三版(现状、过渡、目标);回滚方案必须实际演练过一次

M3 测试通过里程碑

  • 交付物:功能测试报告、性能测试报告、安全测试报告、集成测试报告
  • 质量门:加解密功能100%覆盖业务场景;性能衰减不超过15%;安全测试无高危漏洞

M4 业务割接里程碑

  • 交付物:割接确认单、业务验证记录、应急预案启动记录(如未用到则写“无”)、竣工文档
  • 质量门:割接后稳定运行72小时无P1/P2事件

我的经验:里程碑最好配上强制性「拦改闸」。比如M2方案评审没通过,不允许进入开发阶段。我曾经在项目里这么干,表面上看是拖了两周,实际省掉了后面三个月返工。

3.4 几个容易忽略的规划细节

  • 密钥生命周期管理:从生成、分发、使用、轮换到销毁,每一步都要定流程。别等到密钥泄露了才临时翻方案。
  • 证书链完整性:改造后可能涉及CA切换,记得检查中间证书、根证书是否预置到了各终端。我见过最离谱的是,线上设备没装根证书,业务一直用自签名证书——合规审计一抓一个准。
  • 应急回滚预案:每一段改造代码都必须配套回滚脚本。而且这个脚本要提前测试过。别问我为什么强调——有一次凌晨割接出bug,回滚脚本里忘了删除新算法策略文件,结果回滚不彻底,把业务整崩了。

好了,这一章的内容就这些。拿不准的地方,翻翻我给的框架图和里程碑表格,应该能帮你把思路理清楚。