HTTPS协议中SSL/TLS握手过程

http和https的区别

  • http和https都是基于tcp协议的,http是通过明文在客户端和服务端之间传输信息,https采用加密的方式来进行传输的
  • 所谓https就是在传输层和应用层中间加了一个SSL层
http https
应用层HTTP 应用层HTTP
-- SSL
TCP TCP
IP IP

https的加密过程

  1. 和http一样,首先要建立tcp的三次握手,具体细节参考TCP三次握手和四次挥手
  2. 当客户端请求服务端时,首先服务端会返回一个证书给客户端,客户端拿到证书后,去验证证书的有效性,无效的话会弹出一个警告框,如果有效,则生成一个随机值R1(对称密钥的值),然后利用证书上的公钥加密随机值发给服务端,服务端收到请求后用私钥进行解密,注意这一步是采用非对称加密,此时服务端获取到了客户端的对称密钥的值,然后用对称加密加密信息发送给客户端,客户端收到后,用一开始对称密钥R1解密信息。

为什么https在传输信息的过程中不使用非对称加密呢?

因为使用非对称加密客户端和服务端是非常耗时耗资源的,这样一来性能就会很差,通过非对称加密交换对称加密的密钥,后续的传输过程也是安全可靠的。

你可能感兴趣的:(HTTPS协议中SSL/TLS握手过程)