《HTTPS协议》



一、什么是HTTPS协议

HTTPS协议是HTTP协议在应用层的基础上,加上一层加密层形成的协议。

二、理解关键字

  • 1.加密就是把明文(要传输的信息)进行一系列变换,生成密文的过程。
  • 2.解密就是把密文再进行一系列变换,还原成明文的过程。

三、为什么要加密

在这里插入图片描述

未被劫持时:
在这里插入图片描述

被劫持后:
在这里插入图片描述

下载链接就被替换成了qq.com。
在互联网上,?明文传输是比较危险的事情!!!
HTTPS?就是在?HTTP?的基础上进行了加密,?进一步的来保证用户的信息安全

四、常见的加密方式

1.对称加密

采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密,特征:加密和解密所用的密钥是相同的。

举个例子:

客户端要给服务器发送一个明文数字5,但是不想直接发送一个数字5,而是经过密钥加密后,发送的是一个密文数字7。
服务器接收到密文7后,需要使用与客户端相同的密钥来进行解密。

特点:算法公开、计算量小、加密速度快、加密效率高。

2.非对称加密

非对称加密会有一个公钥,一个私钥,明文经过公钥加密后,这个世界上只有唯一一个私钥能对该密文进行解密。而反过来,使用私钥对一个明文进行加密后,也只有唯一一个公钥可以对该密文解密。

公钥是指:公开的密钥,私钥:不公开,自己保存的密钥。

特点:效率低,算法复杂,计算量大。

在这里插入图片描述

五、如何进行加密?

1.只使用对称加密

在这里插入图片描述

然而,会出现一个非常严重的问题。

在客户端向服务器发送请求的过程,往往需要通过路由器等网络设备,而这些设备如果被黑客入侵,就会出现下面问题。
在这里插入图片描述
而一旦将密钥直接发送,就会被黑客知晓,这个加密就形同虚设,所以还需要对密钥进行加密,也就是:密钥的密钥。
但此时就会产生一个问题,这样就要加无数个密钥。

方案一不安全。

2.只使用非对称加密

1.客户端获取到服务器的公钥,此时黑客也会获取到服务器的公钥。
2.客户端使用公钥加密后发送密文给服务器。黑客无法解密,因为黑客没有私钥。
3.服务器使用自己的私钥进行解密。
4.服务器再次使用自己的私钥,对另一个明文进行加密发送给客户端,此时黑客获取到密文,使用服务器的公钥进行解密。获取到了服务器发送给客户端的明文,极有可能篡改。

总结:方案二也不安全,仅仅在客户端向服务器发送密文时安全,服务器向客户端发送密文时会被黑客截取解密。

在这里插入图片描述

3.双方都使用非对称加密

  • 1.客户端发送自己的公钥C给服务器
  • 2.服务器发送自己的公钥P给客户端
  • 3.客户端使用服务器的公钥P进行加密,服务器使用自己的私钥P’进行密文解密
  • 4.服务器使用客户端的公钥C加密,客户端使用自己的私钥C’进行密文解密

整个过程看似黑客都无法破解密文,因为黑客没有私钥。
然而仍然是不安全的,还有效率太低。
具体怎么不安全,后面说。

在这里插入图片描述

4.使用对称加密+非对称加密

这个方案先来解决效率问题。

1.在前期,服务器直接发送公钥P给客户端,即使黑客获取到,也没有意义。
此时,客户端通过公钥P,对自己的对称密钥C进行加密,由于黑客没有服务器的私钥P’,也就无法获取到客户端的对称密钥C。
而在服务器获取到客户端的对称密钥C后,就使用对称加密的方式进行HTTPS请求和响应,这样效率就会提高了。

在这里插入图片描述
2.安全问题实际上还是没有得到解决,因为一旦黑客在最一开始就获取到了服务器的公钥P,就可以对其进行篡改,将其篡改成黑客自己的公钥和私钥。

在这里插入图片描述

  • 1.获取到服务器的公钥P后,将其篡改,并发送自己的公钥H给客户端,公钥本身无法说明自己的可信性,客户端无法识别真伪,会误认为H就是客户端的公钥。
  • 2.客户端将自己的对称密钥通过第一步获取到的"服务器"的公钥H进行加密: C+H-YYY黑客截取到报文后进行解密:YYY+H’= C,从此获取到了客户端的密钥C。
  • 3.黑客再用自己曾经获取到的服务器的公钥P,将密钥C加密后发送给服务器,C+P= str ,发送给服务器,服务器使用自己的私钥P’解密后P’+str=C,获取到了客户端的对称密钥C,从此客户端和服务器使用对称密钥进行通信的所有报文信息,都暴露了。

总结:方案4存在的问题是,客户端无法认证从服务器收到的公钥P是否可信!!!

为了解决这个问题,引入了CA证书这个东西。

5.对称加密+非对称加密+CA证书认证

为了更清楚理解CA证书,先引入几个概念。

5.1数据摘要(数据指纹)

• 数据摘要,其基本原理是利⽤单向散列函数(Hash函数)对信息进行运算,⽣成⼀串固定长度的数字摘要。数字摘要并不是⼀种加密机制,但可以⽤来判断数据有没有被窜改。

• 摘要常见算法:有MD5、SHA1、SHA256、SHA512等,算法把⽆限的映射成有限,因此可能会有碰撞(两个不同的信息,算出的摘要相同,但是概率⾮常低)

• 摘要特征:和加密算法的区别是,摘要严格意义不是加密,因为没有解密,只不过从摘要很难反推原信息,通常用来进行数据对比。

举个例子:
这里有一篇文章:通过MD5算法后,生成一串固定长度的字符串XXXXXXXXXXXXXXXXXXXXXXXX,这个字符串通常会很长,这个字符串就是数字摘要。

5.2数字签名

• 摘要经过加密,就得到数字签名。

申请证书

在这里插入图片描述
1.申请者需要生成公钥和私钥对,私钥自己保存,公钥,申请者的域名,申请者信息(法人,名字等等),申请者的公钥,这些信息需要生成一个.csr请求文件,提交给CA权威机构进行审核。

重要的是,如果认证成功,证书的主要内容如下:
在这里插入图片描述

其中最重要的信息是:

  • 1.公钥
  • 2.数字签名

在证书的明文信息中,这个公钥信息,是属于申请者的公钥。

而实际上,还有一个公钥私钥对,是CA权威机构专属的公钥和私钥对,是用来生成数字签名的。

数字签名形成过程

关于数字签名,前面说过,就是由数据摘要经过加密后形成的。
但是这怎么加密呢???
就是通过CA机构自己的私钥进行加密的!!!

在这里插入图片描述

  • .csr文件中的明文信息经过MD5等算法后,形成数据摘要,数据摘要再经过CA机构的私钥进行加密后,形成数字签名,数字见面跟明文信息结合起来后,就形成了证书。

这两个公钥私钥是不一样的,一个是CA权威机构自己的公钥私钥对,一个是申请者的公钥私钥对。

CA证书的认证过程

在这里插入图片描述

回到方案5

解释清楚CA证书后,
方案5就是在方案4的基础上,解决了公钥的可信性的问题。
CA机构是世界上唯一的能颁发认证证书的机构,除非他授权当地的一些机构,否则没有任何机构能有权限颁发CA证书。
所以,安全性就得到了保障。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邓富民

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值