密钥管理基础:对称与非对称密钥

聊密钥多活同步之前,得先把两种基本密钥类型搞透彻。

说白了,对称密钥和非对称密钥,就是两把不同的锁。

一把锁,开锁和锁门用同一把钥匙。

另一把锁,你有一把公钥用来锁门,别人有一把私钥才能开门。

这两者在跨机房场景下,处理方式天差地别。

对称密钥:速度快,麻烦也在共享

对称加密,像 AES、SM4 这些算法。

加密和解密用的是同一个密钥。

好处是什么?快。非常快。

我做过一次压力测试,AES-256 加密 1GB 数据,耗时不到半秒。

所以你在机房内部传输数据,或者加密磁盘、数据库,对称密钥是首选。

我曾经踩过一个坑: 公司两个机房之间用对称密钥加密通信,结果密钥直接在配置文件中写死。后来有人误删了其中一端的密钥文件,整个链路瘫痪。对称密钥的核心隐患,就是「共享」。你知道它,就得负责保护它。

它的问题很明显:

  • 分发困难: 你要把密钥安全地送到对方手里。
  • 数量爆炸: 每对通信双方都需要一个独立的密钥。N 个节点,密钥数就是 N*(N-1)/2。
  • 同步复杂: 跨机房场景下,密钥更新必须同步。一个机房更新了,另一个没更新,谁也解不开谁。
我的建议: 对称密钥在机房间做多活时,尽量用临时会话密钥。每次通信生成一次,用完就丢,减少同步压力。不过,这不是本节重点,先放一放。

非对称密钥:安全第一,代价是慢

非对称加密,RSA、ECC、SM2 这些。

公钥公开,私钥自己藏好。

你想想看,这在跨机房场景下有多爽?

每个机房只需要保管自己的私钥,其它机房的公钥可以放心地写在代码里、存到配置中心、甚至贴到墙上。

为什么?因为公钥丢了没事,它只能加密或验签,干不了坏事。

但代价也很现实:

  • 加密 1GB 数据?用 RSA-2048 加密,得几十分钟。
  • 所以实际中,没人拿非对称密钥直接加密大量数据。
  • 常见做法是用非对称密钥加密一个「对称密钥」,再用那个对称密钥去加密实际内容。这就是混合加密。
核心原则: 非对称密钥负责「建立信任」,对称密钥负责「高效传输」。

两者的核心区别,看这张表就够了

对比维度 对称密钥 非对称密钥
密钥数量 加密解密同1个 公钥+私钥,2个
安全性核心 密钥必须保密 私钥必须保密
性能 极快(硬件加速后更优秀) 慢(慢几十到几百倍)
分发难度 高(需要安全通道) 低(公钥可直接公开)
典型算法 AES-256, SM4, ChaCha20 RSA-2048, ECC P-256, SM2
跨机房多活同步方式 需要强一致性同步 只需同步公钥,私钥无需同步

实际应用中,怎么配合?

我来给你讲一个真实案例。

我曾经参与过一个两地三中心的项目。

两个机房之间的数据库同步,用的就是混合方案:

  1. 机房A 生成一个 AES-256 密钥,作为本次会话的对称密钥。
  2. 机房A 用机房B 的公钥(RSA-2048)加密这个 AES 密钥。
  3. 机房B 收到后,用自己的私钥解密,拿到 AES 密钥。
  4. 数据全程用 AES 加密传输。
  5. 会话结束后,AES 密钥立即丢弃。

这个模式的好处很明显:

  • 公钥同步到所有机房,随便广播,不怕泄露。
  • 私钥只在一个机房内部,不需要跨机房同步,安全隐患降到最低。
  • 数据加密性能不受非对称加密拖累。
一个建议: 做跨机房多活时,永远优先考虑非对称密钥做身份认证和密钥协商。对称密钥只用于会话层,用完就丢。这能帮你省掉一半的同步冲突问题。

密钥的生命周期,不能忽略

光懂加密算法还不够。密钥是有寿命的。

从生成、存储、使用、轮换到销毁,每一步都有讲究。

  • 生成: 一定要用硬件随机数生成器。别用 Math.random() 这种软件随机数,我之前真的见过有人这么干。
  • 存储: 生产环境用 HSM(硬件安全模块)或者 KMS(密钥管理系统)。实在不行,也要放在独立的密钥服务器上,不能跟业务代码放一起。
  • 轮换: 对称密钥建议每 24 小时轮换一次。非对称密钥,根据安全等级,3 个月到 1 年换一次。
  • 销毁: 密钥不再使用时,必须彻底销毁。覆盖、消磁、物理销毁,一个都不能少。
提醒: 很多团队在密钥轮换时,只换新密钥,忘了旧密钥还在用。结果旧密钥泄露,新密钥也白换了。轮换一定要确保旧密钥完全退役。

为什么讲这些?因为多活同步冲突,很多时候不是同步链路本身的问题,而是密钥本身就没管理好。

比如,旧密钥明明该销毁了,结果另一个机房还在用它加密数据,冲突就来了。

什么时候用对称,什么时候用非对称?

我个人的项目经验,可以总结成两个判断标准:

  1. 看数据量: 加密大块数据(文件、数据库记录)→ 对称密钥。加密少量关键信息(传输密钥、数字签名)→ 非对称密钥。
  2. 看分发难度: 你能保证安全通道吗?能 → 对称。不能 → 非对称。

嗯,就是这么简单。

最后,给你看一眼整体知识框架。把对称和非对称的区别,以及它们在密钥生命周期中的位置搞明白,后面讲多活同步冲突时你才能做出正确的技术决策。

密钥管理基础:对称与非对称密钥体系 对称密钥体系 单一密钥 AES / SM4 性能:快(硬件加速) 分发困难,需安全通道 多活同步:需强一致 非对称密钥体系 公钥 + 私钥 RSA / ECC / SM2 性能:慢(慢几十倍) 分发容易,公钥可公開 多活同步:只需同步公钥

好了,这一章就到这儿。先把这两种密钥的特点、区别和应用场景记牢。