加密系统基础

说白了,加密系统就像一把锁和一把钥匙的关系。但这里的钥匙不止一种。我做了这么多年容灾方案,最深的体会是:不理解加密基础,就没办法设计出可靠的集群安全策略。今天咱们把这四种核心工具掰开揉碎讲清楚。

对称加密——最直接的锁

对称加密,就是加密和解密用同一把钥匙。就像你家的门锁,钥匙既能锁门也能开门。

我在项目中遇到过最典型的场景是数据库实时同步。两个集群节点之间传输数据,如果用对称加密,速度非常快。但问题来了——这把钥匙怎么安全地交给对方?这就是对称加密的命门:密钥分发。

常用对称加密算法

算法密钥长度典型场景
AES128 / 256 位集群内数据传输
DES56 位老系统兼容(不推荐)
3DES112 / 168 位遗留系统,速度慢
SM4128 位国密标准,合规场景

你想想看,集群里有几十个节点,如果每个节点都用对称加密,密钥管理就是一场噩梦。我建议只在数据库连接或内存通道这种短生命周期的通信中使用,别把它扩散到整个集群。

非对称加密——两个钥匙的世界

非对称加密使用一对钥匙:公钥加密,私钥解密。公钥随便公开,私钥自己藏着。这就解决了密钥分发问题。

我记得第一次做跨机房容灾的时候,领导问:“两个机房之间加密怎么搞?”我说用非对称加密握手,然后协商一个对称会话密钥。实际上 RSA + AES 混合模式就是最常见的做法——非对称负责密钥交换,对称负责后续大数据量加密。

个人经验:非对称加密慢得惊人。RSA 2048 位每秒只能加密几千字节,而 AES-256 每秒能跑几个 G。所以千万别直接用非对称加密大文件,那是给自己挖坑。

主流非对称算法对比

算法强度密钥长度特点
RSA高2048 / 4096广泛,但慢
ECC极高256(相当于RSA 3072)密钥短,速度快
SM2高256国密,适用于政务项目

在集群环境中,非对称加密主要用于:节点身份认证、数字信封、TLS握手。别拿它加密业务数据,否则性能会崩。

哈希算法——指纹机

哈希算法把任意长度的数据变成固定长度的摘要。它不可逆,碰撞概率极低。这玩意儿就像文件的指纹,一小段就能验真伪。

我曾经处理过一个幽灵问题:两台机器上的同一文件,明明内容一样,但校验码不同。查了半天发现是文件结尾多了个换行符。从那以后,我再也不信肉眼比对了——只用哈希。

注意! MD5 和 SHA-1 已经被攻破,别再用了。我见过有项目还在用 MD5 做数据完整性校验,赶紧换 SHA-256 或 SM3。

常用哈希算法对比

算法摘要长度安全性
MD5128 位已破解,仅用于非安全场景
SHA-1160 位不推荐,有碰撞攻击
SHA-256256 位安全,广泛使用
SM3256 位国密,同等安全

在集群容灾里,哈希用来做数据一致性校验。比如同步数据后,两边算一下哈希值,不一样就说明传输有问题。

数字签名——电子印章

数字签名=哈希+非对称加密。先对数据算哈希,再用私钥加密这个哈希值。验证时用公钥解密哈希,再对比本地计算出的哈希。一致就证明数据未被篡改且来源可信。

嗯,这里要注意:数字签名不等于加密。签名的目的是防篡改和防抵赖,并不隐藏内容。很多人一开始搞混,包括我。

集群中的典型签名场景

  • 节点之间发送心跳消息时加上签名,防止伪造节点加入集群
  • 配置文件的签名校验,确保下发的是官方版本
  • 容器镜像签名,避免被植入恶意代码

知识体系总览

下面这张 SVG 把四种工具的关系画清楚了。我画图有个习惯:先理清“用在哪”再讲“怎么用”。你看里面的箭头和分组,就明白它们各自的位置。

加密系统基础四大核心 对称加密 AES / SM4 非对称加密 RSA / ECC / SM2 哈希算法 SHA-256 / SM3 数字签名 哈希 + 非对称 关键关系:非对称加密用于密钥交换和签名,哈希用于完整性校验, 数字签名 = 哈希 + 非对称加密私钥签名。对称加密用于大数据量加密。

四种工具的关系与避坑

我在实际设计容灾方案时,经常看到新人犯一个错误:把非对称加密当万能药。其实场景决定了选型。

  • 需要高速加密大量数据 → 对称加密(AES-GCM 模式更快)
  • 需要安全分发密钥 → 非对称加密(但只做握手,不做数据加密)
  • 需要校验文件完整性 → 哈希(记得加盐防彩虹表)
  • 需要防篡改和防抵赖 → 数字签名

我曾经踩过的坑:在集群同步功能里,直接用 MD5 做数据一致性校验。后来发现有人能构造出相同 MD5 值的不同文件,差点导致数据污染。从那以后,所有新系统统一用 SHA-256。你别省那点计算量,安全马虎不得。

小结