HTTPS与SSL(TLS)连接的建立

HTTPS = HTTP + SSL(TLS)

在应用层与网络层中多包一层SSL进行对数据的加密

其中SSL先是通过非对称加密协商对称加密秘钥,双方在通过对称加密,进行数据交互

SSL的建立流程

1.客户端向服务端发送 Client Hello,并且带上自己支持的SSL加密的版本,一个随机数

2.服务端收到数据后,服务端发送Service Hello并附带上选出的版本,一个随机数,发送客户端

3.服务端发送自己的公钥,用户名,服务器IP,整个数据的签名给客服端(签名的公钥是签发机构的公钥,自己数据的正规性,除了签名还有其他信息,包扩是签名机构的信息,这些数据的签名,签名的公钥是另一家签发机构,这整个数据叫证书,根据证书我们可以一直查到我们电脑的根证书,确保数据的正规性)

4.客户端验证数据的正规性以及ip地址,拿到公钥后,通过公钥加密送一个master数给服务端

5.两方拿这随机数+master生成 客户端加密秘钥,服务端加密秘钥,客户端MAC,服务端MAC。

客户端使用客户端秘钥对数据进行加密 + 数据hash后 用秘钥进行签名 打包发给服务端