Encryption 简单SSL如何实现服务器到客户端的通信?

Encryption 简单SSL如何实现服务器到客户端的通信?,encryption,ssl,Encryption,Ssl,SSL服务器是否为每个连接的客户端随机生成临时密钥对 我了解公钥加密的工作原理——公钥,秘密解密密钥。这解释了具有SSL证书的主机如何从客户端接收加密数据。但是SSL服务器如何将加密数据发送回客户端 (在中有一个关于这个主题的讨论,尽管它被编辑了很多次,所以它可能会令人困惑。) 服务器证书中的公钥仅在握手期间使用。 在握手过程中,客户端和服务器协商一个秘密共享密钥(每个会话一个新密钥),用于实际加密 如何协商这个秘密取决于密码套件:密钥交换。当使用RSA密钥交换时,客户机加密预主密钥并将其发送到

SSL服务器是否为每个连接的客户端随机生成临时密钥对

我了解公钥加密的工作原理——公钥,秘密解密密钥。这解释了具有SSL证书的主机如何从客户端接收加密数据。但是SSL服务器如何将加密数据发送回客户端

(在中有一个关于这个主题的讨论,尽管它被编辑了很多次,所以它可能会令人困惑。)

服务器证书中的公钥仅在握手期间使用。 在握手过程中,客户端和服务器协商一个秘密共享密钥(每个会话一个新密钥),用于实际加密

如何协商这个秘密取决于密码套件:密钥交换。当使用RSA密钥交换时,客户机加密预主密钥并将其发送到服务器(只有服务器能够解密)。当使用DH时,客户端验证服务器在DH交换期间发送的临时参数的签名:最终结果也是共享的预主密钥。然后,双方使用交换的随机值来计算主密钥

TLS规范一节中有更多详细信息,名为。

(在中讨论了此主题,尽管它被编辑了很多次,因此可能会混淆。)

服务器证书中的公钥仅在握手期间使用。 在握手过程中,客户端和服务器协商一个秘密共享密钥(每个会话一个新密钥),用于实际加密

如何协商这个秘密取决于密码套件:密钥交换。当使用RSA密钥交换时,客户机加密预主密钥并将其发送到服务器(只有服务器能够解密)。当使用DH时,客户端验证服务器在DH交换期间发送的临时参数的签名:最终结果也是共享的预主密钥。然后,双方使用交换的随机值来计算主密钥


“TLS规范”一节中有更多详细信息,名为。

除了您的正确答案之外,还有一种SSL模式,服务器甚至会为每个客户端生成一个新的密钥对-它被称为“SSL null auth”,因为它不允许对服务器进行身份验证。因此,在我所知道的所有客户端中,默认情况下它都是禁用的。@Robert我猜你说的是
DH_anon
cipher suites(带_NULL的TLS_NULL_与_NULL_是不同的情况)。所有TLS版本都不鼓励使用它们,但TLS 1.2的措辞更为强硬(“除非应用层明确要求允许匿名密钥交换,否则TLS 1.2实现不得使用这些密码套件。”)。从技术上讲,DHE密码套件每次都会生成新的(DH)密钥(即使使用RSA/DSS身份验证)。除了您的正确答案之外,还有一种SSL模式,在这种模式下,服务器甚至会为每个客户端生成一个新的密钥对-它被称为“SSL null auth”,因为它不允许对服务器进行身份验证。因此,在我所知道的所有客户端中,默认情况下它都是禁用的。@Robert我猜你说的是
DH_anon
cipher suites(带_NULL的TLS_NULL_与_NULL_是不同的情况)。所有TLS版本都不鼓励使用它们,但TLS 1.2的措辞更为强硬(“除非应用层明确要求允许匿名密钥交换,否则TLS 1.2实现不得使用这些密码套件。”)。从技术上讲,DHE密码套件每次都会生成新(DH)密钥(即使使用RSA/DSS身份验证)。