# HTTP+TLS 密钥协商
因为在互联网当中 http 协议报文是明文进行发送和接收,所以传输的信息容易被中间人盗取并篡改;而 https 在 http 传输的基础上加上了加密和身份认证以及完整性保护来保证了传输过程的安全性
HTTPS 就是 HTTP+TLS 的组合
# 什么是 TLS
TLS(Transport Layer Security,安全传输层),TLS 是建立在传输层 TCP 协议之上的协议,服务于应用层,它的前身是 SSL(Secure Socket Layer,安全套接字层),它实现了将应用层的报文进行加密后再交由 TCP 进行传输的功能。
TLS/SSL 的功能实现主要依赖于三类基本算法:散列函数 Hash、对称加密和非对称加密,其利用非对称加密实现身份认证和密钥协商,对称加密算法采用协商的密钥对数据加密,基于散列函数验证信息的完整性。
# TLS 加密握手过程
最后客户端和服务器通过非对称加密获得到的随机数 A + 随机数 B + 预主密钥 D 得到会话密钥
在之后的数据传输过程中客户端和服务器使用会话密钥进行对称加密传输数据
相当于,随机数 A 和随机数 B 在传输过程中都可以被劫取,而随机数 C 通过服务端给的公钥进行加密,此加密只能使用私钥才能解密,所以当传输到服务端的时候,服务端可以获得随机数 C 的内容,而中间人劫取到预主密钥也是无法解密出随机数 C 的内容,往后的数据传输就可以通过这几个随机数进行对称加密操作传输