现在我们所熟知的网站都是 https 协议,比如 https://www.baidu.com/、https://www.taobao.com/等,几乎看不到 http 协议。因为http 在发送请求的时候,请求正文和响应正文的数据是不会加密的,这就增加了我们信息泄漏的隐患,而https相当于在发送请求之前会对有效载荷进行加密。
目录
一、什么是https
二、加密方式
1、对称加密
2、非对称加密
三、如何选择加密算法?
1、对称加密
2、非对称加密
(1) 一对 公钥和私钥
(2) 两对 公钥和私钥
3、对称加密 + 非对称加密
四、总结
一、什么是https
简单来说, https = http + TSL/SSL ,其中TSL/SSL是数据的加密/解密层。https是应用层协议,应用层被加密以后,下三层就不会被加密了。应用层对有效载荷进行封装处理以后,直接送入加密层进行加密,然后再发给下面的传输层;当请求传递到对方主机以后,进入应用层之前需要先解密,然后再处理请求,并做出响应。响应的发送、接收与上述过程相同,也是需要先加密,到了对方主机再解密。
https 协议保证网络中的数据总是被加密的!
二、加密方式
加密方式一般分为了两种,对称加密 和 非对称加密。
1、对称加密
所谓对称加密,就是 加密 和 解密 使用的是同一把钥匙。加密和解密的过程可以简单理解为:
源数据A 异或 密钥B = 加密数据 C (加密过程)
加密数据C 异或 密钥B = 源数据 A (解密过程)
2、非对称加密
所谓非对称加密,就是 加密 和 解密 使用的不是同一把钥匙,这两把钥匙分别是 公钥 和 私钥。(公钥一般是全世界公开的,私钥只有加密者自己知道)。
这样的话就分为了两种情况,一种是 持有私钥的一方接收数据,另一种就是 持有私钥的一方发送数据。
- 持私钥方接收数据:公钥加密,私钥解密。既然别人给自己发,肯定只有自己可以解,也就是只有持有私钥的一方可以解。
- 持私钥方发送数据:私钥加密,公钥解密。既然自己给别人发,肯定希望别人去解,私钥只能自己有,所以只能让别人用公钥解密。
三、如何选择加密算法?
那么https在实际过程中是如何选择加密算法的呢?纯对称加密?纯非对称加密?对称加密 + 非对称加密?答案是第三种,对称加密+非对称加密。至于原因,下面逐一分析。
1、对称加密
对称加密在一开始就存在一个问题,浏览器要用密钥AAA 来对数据进行加密,服务端要如何得知 密钥AAA呢?如果先直接给服务端发送 明文密钥AAA,可能存在第三方将密钥拦截。这样的话,在之后的通信过程中,浏览器所发送的数据即便是被加密了,第三方也能解密。因此,单纯的对称加密是绝对不可行的!
注意:最开始的密钥协商阶段,发送的密钥必须是明文,如果浏览器给密钥加密了,服务端就无法解密,这就回到了最开始的话题,服务端要如何解密??
2、非对称加密
(1) 一对 公钥和私钥
既然是非对称加密,必然存在至少一对 公钥 和 私钥。最开始也是密钥协商阶段,浏览器发送第一次请求,服务端把公钥发送给浏览器。
接下来就可以进行数据交互了,浏览器将数据用公钥A加密发送给服务端,服务端使用私钥解密,即便中间被第三方拦截也没事,因为公钥加密的数据只有私钥可以解,而只有服务端持有私钥。这就保证了浏览器发给服务器的数据是安全的!
问题来了,服务端发送给浏览器的数据怎么办,私钥加密吗?私钥加密的数据可以使用公钥来解,但是因为公钥是公开的,浏览器能解,第三方也能解。因此,一对 公钥和私钥 的方式只保证了单向的数据安全,这种做法不可行。
(2) 两对 公钥和私钥
既然一对只能保证单向的,那么两对呢?答案是理论上可行。在密钥协商阶段,双方就把用于加密的公钥进行交换,一是保证了数据交互阶段在网络里的数据一定的加密的;二是保证了发给对方的数据只有对方可以解,第三方即便拿到了,也无济于事。
但是,非对称加密加密和解密特别费时间!因此,这种方式也不可行!
3、对称加密 + 非对称加密
实际上是结合了两种加密方式,对称加密不费时,但不安全;非对称加密较为安全,但特别费时。因此我们可以各取其优点,密钥协商阶段就采用非对称加密的方式,稳当当的把公钥交换好;数据交互阶段有了前面的保障,就采用对称加密的方式,正常通信即可。
首先是密钥协商阶段,浏览器发起请求,服务端就把公钥交给 浏览器。还没完,浏览器生成 对称密钥 MMM,浏览器将 MMM 使用公钥A加密,将加密的结果XXX,发送给服务端;服务端用自己的私钥解密,得到 MMM。这样的话,双方就安全的拿到了 对称密钥 MMM。(因为第三方即便拿到 XXX 也无法解密)
到了数据交互阶段,对称密钥MMM都只有对方知道,第三方无法获取到对称密钥,这样的话,就保证了数据交互的安全性。所谓的安全不是第三方拿不到才叫安全,而是第三方即便拿到了,也无法处理,这才是安全。文章来源:https://www.toymoban.com/news/detail-443328.html
四、总结
现在我们了解了,https其实就是在http的基础上做了一层加密工作,加密的方式采用的是对称加密和非对称加密结合的方式。这样并没有结束,我们了解的只是一个框架,看似没有问题,实际上在密钥协商阶段,是存在被第三方攻击的风险的,这就有了"CA证书"的存在。我们的浏览器也有这个东西,设置 — 隐私 — 管理证书。文章来源地址https://www.toymoban.com/news/detail-443328.html
到了这里,关于认识 https 以及 https的通信流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!