传统密码学在零信任中的角色
零信任的核心原则是「永不信任,始终验证」。但验证靠什么?说白了,靠密码学。没有密码学,零信任就是空中楼阁。今天咱们就聊聊传统密码学在零信任接入场景里的几个关键角色——TLS 1.3、JWT、SSH 和 IPsec VPN。
我这些年做安全架构,见过太多团队把零信任理解成「加个 VPN 就完事了」。嗯,这其实是个大坑。零信任的密码学基础,远比想象中复杂。咱们一个一个来看。
TLS 1.3 握手与证书验证
TLS 是零信任网络通信的基石。你想想看,每次微服务调用、每次 API 请求,底层跑的都是 TLS。TLS 1.3 相比 1.2,握手时间从 2-RTT 降到了 1-RTT,甚至 0-RTT。但性能提升不是重点,重点是——它怎么保证通信安全?
核心流程分三步:
- 密钥协商:客户端和服务端通过 ECDHE 交换临时密钥,生成会话密钥。
- 证书验证:服务端发送 X.509 证书,客户端验证证书链和签名。
- 握手完成:双方用协商好的对称密钥加密通信。
这里有个关键点——证书验证。我在项目中遇到过,有些团队为了省事,直接跳过了证书链验证,或者把 CA 证书随便存。结果呢?中间人攻击一打一个准。
避坑指南:我曾经接手过一个零信任网关项目,发现它的 TLS 握手只验证了叶子证书,没验证中间 CA。攻击者只要伪造一个叶子证书就能绕过。修复方案很简单——启用完整的证书链验证,并固定根 CA 指纹。
TLS 1.3 的证书验证依赖的是 RSA 或 ECDSA 签名。这些签名算法,嗯,都是传统密码学。后量子时代,这些算法会被 Shor 算法秒破。所以零信任的 TLS 层,必须考虑混合证书或 PQC 签名。
JWT 与 OAuth 2.0 中的签名机制
零信任架构里,身份和权限验证靠什么?JWT(JSON Web Token)是主流方案。OAuth 2.0 的 Access Token 通常就是 JWT 格式。
JWT 的结构很简单:Header.Payload.Signature。签名算法常见的有 HS256(对称)、RS256(RSA)、ES256(ECDSA)。
| 算法 | 类型 | 密钥管理 | 后量子风险 |
|---|---|---|---|
| HS256 | 对称 | 共享密钥,分发困难 | 密钥长度需加倍 |
| RS256 | 非对称(RSA) | 公私钥对,易于分发 | Shor 算法可破解 |
| ES256 | 非对称(ECDSA) | 公私钥对,性能好 | Shor 算法可破解 |
我个人习惯,在零信任场景里优先用 RS256 或 ES256。为什么?因为对称算法 HS256 需要共享密钥,在微服务架构里密钥分发是个噩梦。你想想看,几十个服务都要知道同一个密钥,任何一个泄露就全完了。
但 RS256 和 ES256 也有问题——它们都是传统非对称算法。后量子时代,这些签名会被量子计算机轻松伪造。我建议现在就开始关注 PQC 签名算法,比如 CRYSTALS-Dilithium 或 FALCON。
实战建议:在 JWT 的 Header 里预留一个 "pqc_alg" 字段,未来可以平滑切换到混合签名模式。我在一个金融项目中就是这么做的,后来迁移 PQC 时省了不少事。
SSH 密钥认证原理
零信任环境里,运维人员访问服务器,SSH 是标配。SSH 的密钥认证,本质上是非对称签名验证。
流程是这样的:
- 客户端生成密钥对(公钥 + 私钥),公钥放到服务器 ~/.ssh/authorized_keys 里。
- 连接时,服务器用公钥加密一个随机数,发给客户端。
- 客户端用私钥解密,返回结果。
- 服务器验证结果,确认身份。
嗯,这里有个细节——SSH 支持多种密钥算法:RSA、ECDSA、Ed25519。我个人强烈推荐 Ed25519。为什么?因为它性能好、密钥短、安全性高。RSA 4096 位才能达到的安全级别,Ed25519 只要 256 位。
但 Ed25519 也是传统椭圆曲线算法。后量子时代,它一样会被破解。我最近在测试 PQC 版本的 SSH 补丁,比如 OpenSSH 的 NTRU Prime 混合模式。效果还不错,但还没进主流。
注意:我曾经见过一个团队,把所有服务器的 SSH 密钥都用了 RSA 1024 位。这其实很危险。RSA 1024 在传统计算机上已经可以被暴力破解了。建议至少 RSA 3072 或直接上 Ed25519。
IPsec VPN 中的加密与认证
IPsec VPN 是零信任网络接入的经典方案。它分两个阶段:
- IKE 阶段:协商加密算法、交换密钥、认证身份。
- ESP 阶段:加密和认证实际数据包。
IKE 阶段用的算法包括:
- DH 密钥交换:传统 DH 或 ECDH,用于生成共享密钥。
- 数字签名:RSA 或 ECDSA,用于认证对端身份。
- 对称加密:AES-GCM,用于保护 IKE 消息。
ESP 阶段用的算法:
- 加密:AES-GCM 或 ChaCha20-Poly1305。
- 认证:HMAC-SHA256 或 Poly1305。
这里有个关键问题——DH 密钥交换。传统 DH 和 ECDH 在后量子时代都不安全。Shor 算法可以破解离散对数问题。所以 IPsec VPN 的 IKE 阶段,必须引入 PQC 密钥封装机制(KEM),比如 Kyber。
实战经验:我在一个跨国企业的零信任项目中,把 IPsec VPN 的 IKE 升级到了混合模式——传统 ECDH + Kyber KEM。这样即使量子计算机出现,攻击者也无法破解历史会话。这个方案叫「混合密钥协商」,是目前最务实的过渡方案。
下面这张图展示了传统 IPsec VPN 的加密与认证流程:
小结:传统密码学在零信任中的位置
总结一下,传统密码学在零信任接入场景里,扮演了四个关键角色:
- TLS 1.3:通信加密 + 证书验证,依赖 RSA/ECDSA 签名。
- JWT / OAuth 2.0:身份令牌签名,依赖 RS256/ES256。
- SSH:服务器认证,依赖 RSA/ECDSA/Ed25519。
- IPsec VPN:密钥协商 + 数据加密,依赖 DH/ECDH + AES-GCM。
这些算法在传统计算环境下是安全的。但后量子时代,它们都会被打破。零信任架构的改造,必须从这些底层密码学组件开始。我个人建议,现在就开始做三件事:
- 盘点:梳理所有零信任组件使用的密码学算法。
- 混合:在关键路径上引入 PQC 混合方案(如 ECDH + Kyber)。
- 迁移:逐步替换为 NIST 标准化的 PQC 算法。