HTTPS 中的ECDHEElliptic Curve Diffie-Hellman Ephemeral握手是目前互联网最主流的安全连接建立方式。它结合了椭圆曲线加密ECC的高效性和临时密钥Ephemeral带来的前向安全性。一、核心概念为什么是 ECD在深入流程前需要理解两个关键点ECDH (椭圆曲线迪菲 - 赫尔曼)相比传统的 DH 算法ECC 可以在更短的密钥长度下提供相同的安全性例如 256 位 ECC 相当于 3072 位 RSA计算更快带宽占用更小。它允许通信双方在不直接传输密钥的情况下通过交换公开参数各自独立计算出相同的共享秘密Shared Secret。Ephemeral (临时性)这是“前向保密”Forward Secrecy, PFS的关键。每次握手时服务器和客户端都会生成一对临时的公私钥。握手结束后这些临时私钥立即被销毁。意义即使攻击者长期窃听并记录了所有流量且在未来某天破解了服务器的长期私钥用于签名的那个他也无法解密过去的会话因为解密所需的“临时私钥”已经不存在了。注意在 ECDHE 握手中服务器的长期私钥如 RSA 或 ECDSA 私钥仅用于数字签名以验证身份不用于加密会话密钥。这与旧的 RSA 密钥交换机制有本质区别。二、TLS 1.2 下的 ECDHE 握手全流程四次握手第 1 步Client Hello客户端发起客户端向服务器发送第一个消息包含支持的 TLS 版本如 TLS 1.2。客户端随机数 (Client Random)32 字节用于后续生成会话密钥。支持的加密套件列表按优先级排列其中包含 ECDHE 相关的套件。支持的椭圆曲线列表如secp256r1(P-256)。Session ID如果希望恢复之前的会话会话复用。第 2 步Server Hello Certificate Server Key Exchange Server Hello Done服务器回应一系列消息通常合并发送Server Hello确认使用的 TLS 版本。服务器随机数 (Server Random)32 字节。选定的加密套件确认为TLS_ECDHE_RSA...。选定的椭圆曲线。Certificate证书发送服务器的数字证书包含服务器的长期公钥如 RSA 公钥。客户端将验证证书链、有效期、域名匹配等以确认服务器身份。Server Key Exchange关键步骤服务器生成一对临时的椭圆曲线公私钥。发送临时公钥 (Server Ephemeral Public Key)给客户端。数字签名服务器使用自己的长期私钥证书里的私钥对“客户端随机数 服务器随机数 临时公钥”进行签名。目的防止中间人篡改临时公钥。客户端可以用证书里的长期公钥验证这个签名。Server Hello Done表示服务器初始握手信息发送完毕。第 3 步Client Key Exchange Change Cipher Spec Finished客户端收到服务器信息并验证证书和签名后Client Key Exchange客户端也生成一对临时的椭圆曲线公私钥。发送临时公钥 (Client Ephemeral Public Key)给服务器。密钥计算此时客户端拥有 [服务器临时公钥 自己临时私钥]服务器拥有 [客户端临时公钥 自己临时私钥]。双方利用 ECDHE 算法各自独立计算出相同的Pre-Master Secret (预主密钥)。注意这里不需要像 RSA 那样用公钥加密预主密钥发送过去因为预主密钥从未在网络上传输。Change Cipher Spec通知服务器“接下来的消息我将使用协商好的密钥和算法进行加密”。Finished发送第一条加密消息。包含之前所有握手消息的哈希值校验和用于验证握手过程是否被篡改。第 4 步Change Cipher Spec Finished服务器回应服务器收到客户端的临时公钥后密钥计算服务器利用 [客户端临时公钥 自己临时私钥] 计算出同样的Pre-Master Secret。Change Cipher Spec通知客户端开始加密通信。Finished发送加密的校验消息验证握手完整性。至此握手完成双方开始使用对称加密如 AES传输业务数据。三、会话密钥是如何生成的在 ECDHE 握手中最终的对称会话密钥Session Key是由三方因素共同生成的确保每次会话都独一无二Client Random(明文传输)Server Random(明文传输)Pre-Master Secret(通过 ECDHE 算法本地计算得出从未传输)四、RSA 握手 vs ECDHE 握手特性RSA 密钥交换 (旧式)ECDHE 密钥交换 (主流)密钥传递方式客户端生成预主密钥用服务器公钥加密后发送双方交换临时公钥本地计算预主密钥服务器私钥用途用于解密预主密钥仅用于签名验证身份前向保密 (PFS)不支持。若私钥泄露历史流量可被解密支持。临时私钥用完即焚历史流量安全性能解密运算较重 (大数分解)椭圆曲线运算快效率更高现状已逐渐被淘汰 (TLS 1.3 已移除)当前互联网标准配置总结HTTPS ECDHE 握手的核心价值在于“安全”与“效率”的平衡安全通过“临时密钥”实现了前向保密即使服务器私钥未来泄露过去的通信依然安全通过“数字签名”防止了中间人攻击。效率利用椭圆曲线算法以更小的计算量实现了高强度的密钥协商。