RSA 如何在 ECDHE_RSA 密码中对 ECDHE 进行签名

信息安全 tls RSA 密钥交换 diffie-hellman
2021-09-02 00:41:55

关于使用 ECDHE 作为密钥交换和 RSA 作为身份验证的密码:

这两种算法究竟是如何协同工作的,ECDHE 过程是由 RSA 公钥加密的吗?DH参数是什么?请整体解释这个过程,我在连接身份验证和密钥交换过程的所有部分时遇到了麻烦。ECDHE 是否仅用于 PFS(前向保密),还是有其他好处?

1个回答

简而言之,它的工作原理如下:

1)客户端连接到服务器。服务器公布其支持的 SSL/TLS 协议,并将其 SSL 证书发送给客户端。该证书包括一个 RSA 公钥,并且该证书(可能)由客户端信任的公认 CA 签名。

2) 客户端验证证书的 CA 签名,并且(可能)相信证书是有效的。客户端和服务器同意使用 ECDHE。

3) 客户端和服务器生成一组用于促进安全会话的临时 ECDHE 密钥。服务器发送给客户端的密钥由服务器使用服务器的私钥(对应于之前在上面的步骤 1 中作为证书的一部分发送的公钥)进行签名。客户端使用之前收到的服务器公钥(之前确定为可信)验证签名是否有效。因此,客户端可以相信它从服务器接收到的临时密钥确实是从服务器发送的,而不是来自中间人攻击者。

4) 客户端和服务器使用临时密钥集进行安全会话。这些密钥在会话结束时被客户端和服务器丢弃(而不是重复使用)以促进完美的前向保密。