密钥管理基础
说起密钥管理,我总觉得这像是密码学的“地基”。你地基没打好,上面算法再牛也白搭。我最早做安全审计那会儿,就吃过这个亏——客户端传过来的密钥居然是用硬编码写在配置文件里的,我当时整个人都懵了。所以第一课,咱们先把地基夯实。
对称密钥——又快又简单,但分发起飞
对称密钥,说白了就是加密和解密用同一把钥匙。你想想看,两个人要聊天,先得私下商量好一个密码本,后面所有的信息都用这个本子加密。
- 典型算法:AES、DES、3DES、SM4(国密)。
- 优势:加解密速度极快,适合大数据量场景。
- 劣势:密钥分发困难——怎么安全地把同一把钥匙交给对方?
个人习惯:如果系统只涉及内部通信,我会优先用对称加密+定期换密钥。但一旦涉及跨网络、跨组织,我会立刻上非对称方案。
非对称密钥——安全但慢,专治分发恐惧
非对称密钥是一对钥匙:公钥公开,私钥自留。别人用你的公钥加密数据,只有你能用私钥解密。反过来,你用私钥签名,别人用公钥验签。
- 典型算法:RSA、ECC(椭圆曲线)、SM2(国密)。
- 优势:解决了密钥分发问题,公钥可以随便发。
- 劣势:加解密速度慢很多,一般只用来加密对称密钥或者做数字签名。
避坑指南:我曾经遇到一个项目,团队直接拿RSA加密所有业务数据,结果接口响应时间彪到10秒。后来改成“RSA加密对称密钥 + AES加密数据体”的组合,立竿见影。
常见加密算法概览
这里我整理了最常用的一些算法,按密钥类型和用途分了类。你记一下,面试和实战都高频出现。
| 算法 | 类型 | 密钥长度(推荐) | 典型用途 |
|---|---|---|---|
| AES | 对称 | 128/192/256 bit | 数据加密(文件、网络流量) |
| DES/3DES | 对称 | 56/112/168 bit | 遗留兼容(建议弃用) |
| SM4 | 对称 | 128 bit | 国密标准,金融、政务 |
| RSA | 非对称 | 2048/4096 bit | 密钥交换、数字签名 |
| ECC (P-256) | 非对称 | 256 bit | 移动端、物联网(资源受限场景) |
| SM2 | 非对称 | 256 bit | 国密签名与交换 |
| SHA-256 | 哈希 | — | 完整性校验、密码存储 |
注意:RSA 1024位已经在2020年后被多家标准禁止使用。我曾经审计过一个老系统,里面全是1024位RSA证书,当时直接给客户标了严重风险。
安全等级划分——密钥长度决定生死
这里有个铁律:安全等级不等于算法本身,而是密钥长度。你想想看,同样用AES,128位和256位的安全强度差好几个数量级。
我一般参考NIST和国密标准来分层,大致可以分为四个等级:
- 初级(不推荐):DES、RSA 1024、SHA-1——这些基本已经能被暴力破解或碰撞攻击了。
- 标准级:AES-128、RSA 2048、SHA-256——适合绝大多数商业场景。
- 高安全级:AES-256、RSA 4096、ECC P-384——用于金融、政府、军工等。
- 顶级/后量子:目前还在标准化中,但已有部分企业开始试用Lattice-based算法。
举个我亲自踩过的坑:有次项目要求“高强度加密”,客户拍板用了AES-256。结果他们密钥管理系统不支持256位密钥的硬件存储,最后只能用软密码——安全等级反而降了。所以,选等级一定要匹配你的基础设施。
我的做法:起步阶段先定一个“最小安全基线”,比如对称加密必须AES-128以上,非对称必须RSA 2048或ECC P-256。低于这个的直接打回。
本章知识体系一图览
这张图是我自己梳理的。你可以看到,对称和非对称是两条主线,算法依附其上,最终落到安全等级。注意那个黄底的框——这是我特别想让你记住的:别光看算法名,要看密钥长度。
小技巧:做安全设计时,我习惯先用这张图过一遍所有候选算法,然后根据数据敏感度和对端系统的支持能力,把每个环节的密钥长度标出来。这样后面审计边界异常检测时,你才能一眼看出谁在“裸奔”。