什么是https
HTTPS(超文本传输安全协议)是一种以安全为基础的HTTP传输通道。 HTTPS(超文本传输安全协议),HTTPS是在HTTP协议的基础上增加了安全的属性,HTTPS通过SSL/TLS(安全套阶层)来加密数据包,SSL再通过数字证书来验证服务器的身份,以此来实现数据在客户端到服务器之间的传输安全。
什么意思呢,通俗点理解就是HTTPS通过数据加密和身份验证的方法解决了HTTP在消息传输过程中不安全的问题
对称加密、非对称加密
对称加密:有一段秘钥,能通过它来加密一段信息,形成一段密文,而这段密文是不能读取的,想要读取这段密文就需要通过加密它的秘钥来解密,还原成原始信息。就是一个门只能用一把钥匙来反锁和打开。
非对称加密:有一个公钥和与之配对的私钥,用公钥加密的数据只能用私钥来进行解密,使用私钥加密的数据只能通过私钥进行解密。
具体传输过程
- 客户端向服务器发送一条数据:表明客户端支持的TLS版本及加密套件,同时生成一个随机数1
- 服务器向客户端发送一条数据:确认客户端支持的TLS版本,选择一种加密算法,同时生成随机数2
- 服务器再向客户端发送一条数据:出示自己的证书,让浏览器根据自己的证书信任列表确认服务器是否可信,同时发送公钥CA
- 客户端向服务器发送一条数据:生成一个随机数,这个随机数也叫预主密钥,需要使用受到的公钥CA进行加密再传输,加密前需要确认CA是否有效。
- 浏览器在收到预主密钥之后,使用自己的私钥进行解密,得到加密前的预主密钥
这个时候客户端和服务器都具有三个数据:随机数1、随机数2、预主密钥,由三个数据可以生成会话密钥,后面的会话都会使用会话密钥进行加密。