密码敏捷性是什么
密码敏捷性指系统能低成本更换算法与密钥长度——RSA 换 ECC、SHA-1 换 SHA-256、为后量子迁移做准备。它不要求现在就换完,而是要求换的时候不用重写一遍系统。落地要点有三个:算法与参数从代码里挪出来变成配置;数据格式里写入算法与密钥版本标识,让新旧数据能共存解读;迁移过程有明确的兼容期与回退路径。做到了这三点,升级就变成一次配置变更和一段数据迁移,而不是一次重构。
基本信息
| 设计要点 | 算法与参数可配置、版本化标识、双算法兼容期 |
|---|---|
| 数据层 | 密文与签名产物包含算法与密钥版本元数据 |
| 协议层 | 协商与回退策略显式化并纳入测试 |
| 反例特征 | 算法名与密钥长度硬编码在多个模块里 |
| 验证方式 | 做一次真实的算法切换演练,量出改动范围与停机时间 |
| 配套文档 | 算法清单、版本策略与退役时间表 |
典型使用场景
- 历史算法清理:把 SHA-1、DES 一类老算法的引用集中替换掉。
- 后量子准备:为算法替换预留接口与配置位。
- 合规整改:监管要求更换算法时快速完成全链路切换。
- 多版本共存:旧客户端与新客户端需要同时可用。
- 技术债评估:盘点硬编码位置,作为重构优先级的依据。
可迁移与难迁移的对照
可迁移与难迁移的对照
难以迁移:
代码中散落 AES-128-CBC 硬编码、密文无版本字段、多处自研解析
便于迁移:
统一 crypto 接口 + 配置化套件 + 密文自带算法与密钥版本
# 演练方法:在测试环境把默认算法换掉,统计需要改动的模块与数据迁移量层次与改造动作
| 层次 | 现状检查 | 改造动作 |
|---|---|---|
| 代码层 | 算法名是否硬编码 | 抽成统一接口与配置项 |
| 数据层 | 密文是否带算法与版本 | 在格式中增加元数据字段 |
| 协议层 | 协商是否支持回退 | 显式化策略并做互通测试 |
| 运维层 | 配置是否需重新发版 | 把算法选择纳入配置管理 |
| 流程层 | 迁移是否有方案模板 | 预置双算法兼容与回退步骤 |
敏捷性要实测验证:接口抽象了但升级仍需停机与全量数据迁移时,成本依旧很高,纸面上的「可配置」并不等于真的能低成本切换。