客户端和服务器在加载网页或网站时会交换哪种类型的证书或密钥?

最佳答案

仅交换服务器的 public 密钥和客户端的 public 密钥。

当浏览器连接到启用HTTPS的网站/服务时,会发生以下情况:

客户您好

客户端发送SSL版本号,密码设置,特定于 session 的数据。

服务器您好

服务器以SSL版本号,密码设置和服务器的证书( public 密钥)作为响应。

身份验证和预掌握 secret

客户端现在对服务器证书进行身份验证,然后根据密码,客户端为 session 创建一个主密码。

客户端使用服务器的 public 密钥加密数据,并将加密的主密码发送给服务器。

解密和主密钥

服务器现在使用其私钥解密主密码。

服务器和客户端均执行步骤以生成具有商定密码的主密钥。

生成 session 密钥

现在,客户端和服务器都使用主密钥来生成 session 密钥。 session 密钥是对称密钥,用于对 session 期间交换的信息进行加密和解密。

使用 session 密钥加密

此时,服务器和客户端都交换消息以通知将来的消息将被加密。

简而言之,涉及4个键。服务器的 public 和 private 密钥以及客户端的 public 和 private 密钥。客户端将其公用密钥提供给服务器,而服务器将其公用密钥提供给客户端。 private 密钥永远不会与任何人传输或共享,它们保留在客户端和服务器上,因此它们是 private 的。

通常,证书由第三方(例如GoDaddy或Verisign)签名。这使客户端可以放心,向客户端颁发公用密钥的服务器确实是他们所说的身份。 (但是请注意,在中间攻击中总会有人的出现)

09-10 06:51
查看更多