HTTP 三次握手, HTTP 四次挥手
SSL 四次握手
1.客户端请求建立SSL链接,并向服务端发送一个随机数(client random)和客户端支持的加密方法(比如RSA),此时是明文传输的。
2.服务端选择客户端支持的一种加密算法并生成另一个随机数(server random),并将授信的服务端证书和公钥下发给客户端。
3.客户端收到服务端的回复,会校验服务端证书的合法性,若合法,则生成一个新的随机数premaster secret并通过服务端下发的公钥及加密方法进行加密,然后发送给服务端。
4.服务端收到客户端的回复,利用已知的加解密方式进行解密,同时利用client random、server random和premater secret通过一定算法生成对称加密key - session key。
此后,数据传输即通过对称加密方式进行加密传输。
从以上过程可以看看https实际上是用了对称加密技术和非对称加密技术,非对称加密解密速度慢,但安全性高,用来加密对称加密的密钥;而对称加密虽然安全性低,但解密速度快,可以用于传输数据的加密。