HTTPS 是运行在 SSL/TLS 之上的 HTTP 协议,SSL/TLS 运行在 TCP 之上。所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。
1、建立安全通道(使用非对称加密)
1、客户端向服务器发起连接,服务器将其SSL证书(内含公钥)发送给客户端。
2、客户端验证证书的真实性(确认对方是合法的服务器,而不是中间人)
3、验证通过之后,客户端会随机生成一个字符串,作为接下来进行的对称加密的密钥(也称之会话密钥)
4、客户端用服务器的公钥对这个会话密钥进行加密,然后发送给服务器。
2、高效数据传输(使用对称加密)
1、服务器收到加密的会话密钥后,用自己的私钥进行接缪,得到明文的会话密钥。
2、至此,客户端和服务器都安全的拥有了同一台会话密钥,而且这个密钥从未在网络上以明文的形式传输过
3、随后,双方的所有通信数据都将使用这把会话密钥进行快速的对称加密和解密.
对称加密:加密和解密使用的是同一把密钥
非对称加密:使用一对密钥,公钥和私钥,用公钥加密的内容只能使用相应的私钥解密,反之亦然。
这种使用两种加密算法的好处:既要实现高效的数据传输(对称加密的优点),又要安全地解决密钥交换问题(非对称加密的优点)。