最近复习回顾了下网络知识,看了下http协议和https协议,写下这篇文章算是记录总结下吧!
1.https协议是什么:
就是基于tls的http协议,tls是一个应用层协议,他解决了通信过程中的安全问题。https协议的目的是为了防止中 间人共计,中间人可以窃取,篡改你的消息,来达到破坏系统的目的。
2.https协议是怎么做的:
网上很多文章都说 https协议使用的是混合加密的方式来传输数据的。
什么是混合加密?
https是通过对称加密和非对称两种加密方式来处理的。
对称加密:
双方加密和解密使用的都是相同的密匙。
特点:速度快,效率高,算法本身安全,但使用场景不够安全,因为加密解密都是同一个秘钥。
非对称加密:
使用匹配的一对秘钥分别进行加密和解密,这两个秘钥称为公钥和私钥。
公钥加密的数据只能私钥来解密,同理私钥加密的数据只能用公钥来解密。
特点:安全性高,效率低,耗时较长。
image.png
3.https协议通信的基本流程解析
image.png
上图是网上常见的一张https协议工作的原理图,原理如下
- 服务器本地会生成自己的公钥和私钥,这里称为公钥A和私钥A。
2.当浏览器发起请求后,服务器会找到CA认证机构生成服务器的认证证书,该认证证书包含了服务器的公钥A,服务器的域名,过期时间等等。
3.浏览器请求获取到该认证证书后,用操作系统内置的CA机构证书来验证是否是合法的请求,当验证成功后获取到了服务器的公钥A。此时浏览器会生成一串会话秘钥(也就是对称加密的秘钥),如果这里直接使用非对称加密的算法,用服务器公钥A将请求报文加密发送给服务器的话,由于请求报文有可能会很多,非常消耗资源,这里采用了将会话秘钥通过服务器公钥A加密,使用非对称加密的方式传递过去。
4.此时服务器收到了公钥A加密的会话秘钥,然后通过私钥A进行解密获得了会话秘钥。
5.这时候浏览器和服务器就都有了会话秘钥了,后续请求和响应就都通过对称加密的方式进行传递了。
网友评论