Skip to content

什么是前向保密(正向加密)?如何用 MySSL 检测? ​

前向保密(Forward Secrecy,简称 FS)保护的是过去的通信:即使网站证书的长期私钥日后泄露,攻击者也不能仅凭这把私钥解密此前录下的会话。 MySSL 检测页面将这项能力标为“正向加密”。

本文介绍前向保密的原理和检测方法。遇到 LiteSSL 换证后的连接问题,请参阅LiteSSL 移除 Key Encipherment:影响与处理方法。

为什么传统 RSA 密钥交换需要退出? ​

假设攻击者今天录下了网站的加密流量,几个月后又取得了网站的证书私钥:

握手方式长期私钥后来泄露的影响
传统 RSA 密钥交换攻击者可能从录下的握手中恢复会话密钥,解密历史通信。
正确使用 ECDHE 临时密钥交换在临时秘密已安全销毁、算法与实现安全的前提下,仅取得证书私钥不能恢复过去的会话密钥。

ECDHE 中的 E 表示 Ephemeral(临时)。握手使用临时密钥材料协商共享秘密,证书私钥负责身份认证,不直接承担传统 RSA 的密钥解密任务。TLS 安全建议因此建议避免 RSA 密钥传输并使用提供前向保密的机制。

前向保密不代表私钥泄露后可以继续使用原证书,也不能保护已被窃取的会话密钥或终端上的明文。发生私钥泄露时,仍需更换密钥、重颁发并吊销受影响证书。

RSA 证书、ECDSA 和 ECDHE 有什么区别? ​

证书使用什么算法,与连接如何协商会话密钥,是两个不同的问题。

名称作用与前向保密的关系
RSA 证书使用 RSA 公钥,可按证书用途参与身份认证等操作使用 RSA 证书不等于缺少前向保密,关键看握手方式。
ECDSA 证书使用椭圆曲线数字签名证明身份,申请界面常归入 ECC 类型应配合 ECDHE 或 TLS 1.3 的相应密钥交换;不能只凭证书算法判断整个站点。
ECDHE临时椭圆曲线 Diffie-Hellman 密钥交换用于实现前向保密,可与 RSA 或 ECDSA 签名配合。

TLS 1.2 中可以直接对照套件名称:

密码套件示例含义前向保密
TLS_RSA_WITH_AES_128_GCM_SHA256传统 RSA 密钥交换不具备
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256ECDHE 密钥交换 + RSA 签名具备
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256ECDHE 密钥交换 + ECDSA 签名具备

因此,不要把所有名称带 RSA 的套件都禁用。RSA 证书的数字签名用途可用于 ECDHE_RSA;传统 RSA 密钥交换则要求证书包含 Key Encipherment。TLS 1.2 标准 §7.4.2

TLS 1.3 已移除传统 RSA 密钥交换。它的套件名称(如 TLS_AES_128_GCM_SHA256)不再包含认证和密钥交换算法,不能按 TLS 1.2 的命名规则判断。常规证书握手使用临时密钥交换;仅 PSK 模式和 0-RTT 数据有不同的保密边界,不能把“启用了 TLS 1.3”等同于所有模式和数据均具有前向保密。TLS 1.3 标准

如何通过 MySSL.com 检测? ​

  1. 打开 MySSL.com,输入业务域名;非默认 HTTPS 端口可按页面提示填写 域名:端口,发起检测。
  2. 在报告中找到 “协议与套件”,查看支持的协议和完整密码套件列表。
  3. 查看套件旁的绿色 FS 标记,并查看详情中的 “正向加密:YES”。
  4. 继续检查 TLS 1.2 列表中是否仍有 TLS_RSA_*。不能只看到上方存在 FS 标记,就认为所有连接都已具备前向保密。
  5. 调整并生效后重新检测,再使用实际业务客户端验证访问。

MySSL 协议与套件检测示例:详情显示“正向加密:YES”,多项套件标有 FS,但下方仍存在传统 TLS_RSA 套件

图:MySSL 检测报告示例,界面以实际检测结果为准。

这张图应分两部分阅读:

  • 上方 TLS 1.3 套件详情显示“正向加密:YES”,TLS 1.2 的多项 ECDHE_RSA 套件也有 FS 标记,说明被检测入口支持这些提供前向保密的握手方式。
  • 下方仍出现 TLS_RSA_WITH_AES_256_GCM_SHA384,说明检测结果中仍包含传统 RSA 密钥交换套件。它是一张“支持前向保密,但仍需排查旧套件”的示例图,不是全部整改完成的示例。

FS 只描述前向保密这一项性质,不代表某个套件或整个站点的所有安全检查都通过。MySSL 报告反映被检测入口的情况;使用 CDN、多个节点或不同端口时,需要分别确认,不能替代真实客户端兼容性测试。

相关排查指南 ​

LiteSSL 移除 Key Encipherment:影响与处理方法:确认换证影响,选择 ECDSA 证书或调整 RSA 密码套件,并完成复测。