HTTPS(SSL / TLS)

时间:2018-04-24 06:44:58

标签: ssl encryption https ssl-certificate

我正在努力了解HTTPS的内部工作原理。 据我所知,服务器使用客户端生成的预主密钥使用对称加密,并使用服务器的公钥加密。我的理解是服务器加密资源的哈希值而不是实际的资源,然后客户端将解密并验证哈希值。但我有两个问题 -

  1. 假设服务器仍以纯文本形式发送实际文件并且浏览器只信任内容,因为它能够散列文件并使用对称加密验证它是否正确?
  2. 发送到服务器时,客户端的信息(例如POST有效负载或URL参数)是如何加密的?浏览器是否仍会对有效负载或URL参数进行哈希处理,还是仅仅加密数据?
  3. 非常感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

  

据我所知,服务器使用客户端生成的预主密钥进行对称加密,并使用服务器的公钥加密。

仅限某些密码套件。通常,您应该将会话密钥视为密钥协议协议安全协商,并将其保留在该协议上。

  

我的理解是服务器加密资源的哈希值而不是实际的资源,然后客户端将解密并验证哈希值。

我不知道这意味着什么。服务器必须返回实际数据,而不仅仅是哈希值。握手和SSL数据消息使用了哈希值,但这并不关心你的问题:它只是SSL提供的隐私的一部分。

  

但我有两个问题 -   假设实际文件仍由服务器以纯文本

发送,这是否正确?

不,当然不是,它是使用会话密钥加密的。这就是会话密钥的用途。

  

并且浏览器只信任内容,因为它能够散列文件并使用对称加密进行验证?

没有。忘掉哈希。数据已加密。

  

发送到服务器时,客户端的信息(例如POST有效负载或URL参数)到底是如何加密的?

使用会话密钥。

  

浏览器是否仍会散列有效负载或URL参数

没有。忘掉哈希。

  

还是只是加密数据?