HTTPS协议的对称加密与非对称加密

1.加密的产生原因

HTTP 协议在传输过程中使用的是“明文传输”,这样就容易被第三方获取,进而进行一些非法操作,最典型的事件就是“运营商劫持”事件

运营商劫持

简单来说就是我们用了网络运营商的设备,我们的传输请求通过这些设备通信的时候,设备所属运营商就有能力将我们的请求或响应修改,进而牟利

最典型的例子就是比如我们是一个电脑小白,需要下载一个QQ音乐,直接在网页上搜索QQ音乐,然后点击下载,这时有可能会弹出一个页面让你下载另一个软件,然后才能下载QQ音乐,如果我们什么也不知道,只能眼睁睁的看着我们的电脑空间越来越少

为了应对这些方法,HTTPS中引入的加密算法

2.加密算法

HTTPS 中引入了对称加密非对称加密算法

一般的加密算法都是用秘钥进行加密的,对称加密和非对称加密最本质的区别就是对称加密用的是同一个秘钥,非对称加密用的是一对不同的密钥,分为公钥和私钥

对称加密

加密和解密时使用的是同一个秘钥,客户端和服务端进行通信的时候,都是用这个密钥对信息进行加密的

一般情况下,是多个客户端和服务器进行通信的,为了防止黑客截取秘钥,就需要使每台客户端和服务器用于通信的密钥都不一样

缺陷:

虽然我们传递的信息通过秘钥进行了加密,但是双方确定用什么秘钥需要进过一次的通信,这次通信过程中,如果被黑客截取,那么这样加密也就形同虚设了

优势:

相比于非对称加密算法,这种加密算法的效率比较高

为了解决双方在协商使用什么秘钥的过程中被截获,从而产生了非对称加密算法

非对称加密

简单来说就是加密和解密使用的是不同的密钥,这一对密钥分为公钥和私钥,客户端通过公钥对信息进行加密解密,服务器则通过私钥对信息进行加密和解密

在大多时候,加密一般是对称加密和非对称加密结合起来使用的,在建立连接的过程中,使用非对称加密来加密对称加密使用的密钥,后续的信息传递使用对称加密,因为一开始的中间设备不知道非对称加密的私钥,也就无法解析出密文

这种情况下的私钥只有服务器知道,即使公钥被截取,黑客也不能解析出来正确的信息,但是这种方式还是有一个致命的缺陷,也就是不能防止中间人攻击

3.中间人攻击

对于客户端,黑客伪装成服务器;而对于服务端,黑客又伪装成客户端

黑客也有自己的一套公钥私钥,还是不能解决通信中信息被截取的情况

通过这种方式,客户端相当于是和黑客截取的网络设备直接通信了,黑客解析信息之后再和真正的服务端通信,造成这种情况的原因就是客户端不知道返回的相应信息是不是黑客伪造的

解决

引入第三方的证书,通过证书来辨别这个相应的密钥是不是黑客伪造的

证书是开发服务器的时候,向第三方公证机构申请的,证书里包含着一些比较重要的信息,比如网站的域名,服务器的公钥,证书的过期时间,数字签名,证书的所有者等信息,实际上就是一个字符串

之后客户端访问服务器不再是询问公钥,而是索要证书,客户端拿到证书之后会查看这个证书的有效性,是不是真正的证书

客户端检验证书的有效性使用的是证书中的“数字签名”

数字前面本质上是一个被加密的校验和,这个校验和本质上也是通过密钥加密之后的东西,不过这个加密使用的是公证机构的非对称加密的私钥加密的,常见的公证机构用于解密的公钥已经内置到操作系统中了,这样客户端通过这个公钥对传递过来的证书中的信息再进行校验和,如何结果一样就认为证书没有被篡改过。这种方式,即使黑客拿到公证系统的公钥进行解密,但没有私钥却不能加密,这样就保证了传输过程的安全性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值