2. 常见密钥类型:对称密钥、非对称密钥、会话密钥、主密钥归纳总结

说实话,干审计和渗透这些年,我最怕遇到一种情况:审了半天密钥体系,发现团队连「手里拿的是什么钥匙」都没搞清。密钥类型搞混,越权穿透就是迟早的事。今天咱们就把四种最核心的密钥类型掰开揉碎讲清楚。

2.1 对称密钥

对称密钥,说白了就是一把钥匙开一把锁。加密和解密用同一个密钥。你想想看,A想给B发密文,双方得提前商量好同一个密钥。一旦有人拿到这把钥匙,整个通信就裸奔了。

  • 常见算法:AES、DES、3DES、SM4
  • 优点:加解密速度快,适合大数据量
  • 致命弱点:密钥分发难。你怎么安全地把密钥送给对方?
我的经验:有一次审计某金融系统,发现所有服务器都用同一个对称密钥加密数据库连接串。我顺着日志一查,那个密钥居然硬编码在了JAVA代码里。嗯,等于没锁。

2.2 非对称密钥

非对称密钥就好比一把公锁和一把私锁。公钥到处发,私钥自己藏。别人用你的公钥加密,只有你能用私钥解开。反过来,你用私钥签名,别人用你的公钥验证身份。

  • 常见算法:RSA、ECC(椭圆曲线)、SM2
  • 优点:解决了密钥分发问题
  • 缺点:慢。加解密大数据量时简直要命
避坑指南:我曾经遇到一个项目,把RSA 1024位的公钥和私钥对直接放在Git仓库里。攻击者拿到仓库就能冒用服务器身份。记住:私钥永远不能在网络中传输,更不能提交到版本控制中。

2.3 会话密钥

为什么需要会话密钥?我举个例子:你每次打开HTTPS网站,浏览器和服务器都会临时生成一个对称密钥,只在当前会话里用。用完就扔。这就是会话密钥——临时、一次性、用完即焚。

  • 典型场景:TLS握手、SSH连接、VPN通道
  • 生成方式:通常用非对称密钥协商出对称会话密钥(混合加密)。
  • 生命周期:一次会话存活期间有效,会话结束立即销毁。

我个人习惯把会话密钥比作「临时密码」。你去健身房用储物柜,前台给你一张临时手环,走的时候退还。攻击者就算偷到手环,也只能在你运动期间开你的柜子,事后就没用了。

2.4 主密钥

主密钥是密钥体系里的“根”。它长期存在,用来派生其他密钥。比如在HSM(硬件安全模块)里,主密钥存储在芯片中,从不离开设备。其他工作密钥都由主密钥派生出来。

  • 典型场景:
    • TLS中利用主密钥派生出会话密钥和MAC密钥
    • 数据库加密中,主密钥用来加密表级密钥或列级密钥
    • KMS(密钥管理系统)里的根密钥
  • 保护要求:必须物理隔离,不能网络传输,定期轮换(但频率低)。

重点理解:主密钥≠万能钥匙。它只用来派生子密钥,不直接加密业务数据。一旦主密钥泄露,所有派生密钥都不可信——整条链就崩了。

2.5 四种密钥对比

类型 加解密方 生命周期 典型算法 常见风险
对称密钥 双方相同 长期或一次会话 AES, SM4 密钥分发泄露、硬编码
非对称密钥 公/私钥对 长期 RSA, ECC, SM2 私钥未保护、证书伪造
会话密钥 双方相同(临时) 单次会话 AES(由协商协议派生) 生成不够随机、会话复用攻击
主密钥 仅需保护方持有 长期(轮换频率低) 由HSM/KMS内部实现 物理泄露、派生链路设计不当

2.6 密钥关系与生命周期思维导图

下面这张图我手绘了四种密钥的核心关系。信息流:主密钥派生会话密钥和对称密钥;非对称密钥参与会话密钥的协商;所有密钥最终都会进入销毁阶段。审计时盯着这张图,一眼就能看出哪条链可能有越权风险。

四类密钥关系与生命周期 主密钥 根密钥 / 长期 / 物理保护 非对称密钥 公钥/私钥对 · 证书 会话密钥 临时 · 一次会话 · 用完即焚 对称密钥 AES/SM4 · 长期或一次 密钥销毁 派生 / 加密保护 协商出会话密钥 公钥加密 · 私钥解密 会话结束销毁 证书到期销毁 ← 审计重点:链路追踪是否完整? 销毁时机是否合规?

2.7 审计视角的检查清单

以上四种密钥类型,在实际渗透中每一环都可能成为越权穿透的突破口。我习惯在审计时拿着下面这份清单逐项过:

  1. 主密钥在哪?是否存放在HSM或专用安全区域?有没有人能通过程序调出主密钥明文?
  2. 非对称私钥的访问控制怎么做?有没有私钥密码保护?是否定期轮换?
  3. 会话密钥的生成是否使用了安全的随机数生成器?我看到过项目直接拿时间戳当会话密钥,简直胡来。
  4. 对称密钥的分发是否有加密保护?是不是通过非对称密钥来封装传输的?
  5. 销毁路径是否可追溯?密钥生命周期结束后有没有被立即覆写或丢弃?

记住一句话:密钥本身没有好坏之分,看你怎么用。主密钥丢了一个国家级的系统都可能崩;对称密钥硬编码,内网渗透五分钟就拿下。这四种类型你只要理清它们的「血缘关系」,审计报告里一针见血指出漏洞就简单多了。

好了,这次先聊到这。后面我们会逐个深入,用真实的越权穿透案例演示每种密钥在实际环境里是怎么被攻破的。不过今天先把底子打好,不然后面看到「会话密钥复用」这种坑,你都不知道它属于哪一类。