HTTPS:03---HTTPS数据的加密与解密过程

  • 本文用到的加密技术,见文章:https://blog.csdn.net/qq_41453285/article/details/99462452

HTTPS:03---HTTPS数据的加密与解密过程_第1张图片

图解:

  • 左侧为我们的数据发送端(例如:客户端),右侧为我们的数据接收端(例如:服务端)
  • 中间是传输的数据与各种秘钥
  • 上面的各个端自己的证书,我们将在下一篇文章介绍

接下来,先介绍一下HTTPS数据是如何进行加密与解密的:

一、发送端对数据的加密

第一步:

  • A:为HTTPS通信中实际传输的数据(未加密的)
  • B:我们将A进行一次单向加密,B就是我们对A进行单向加密后得到的特征码。然后将特征码同时运用了非对称加密,是用数据发送端的私钥加密,传输给数据接收端。如果数据到达后数据接收端够使用发送端的公钥解密,表明对方确实是数据发送端。这一过程同时起到了用户认证和数据完整性的校验。黑框B又称为数字签名

第二步:

  • C:我们将A和B作为一个整体,然后做一次对称加密,此时就会得到一个对称加密后的密钥

因为对称加密技术在每一次数据传输的时候,密钥都是不同的,并且双方在数据发送前都不可能事先约定好密钥,因此就需要第三步了

第三步:

  • D:我们采用非对称加密技术,用数据接收端的公钥对第二步中生成的对称加密的密钥进行加密,那么接收端在接收到数据包之后,用自己的私钥进行解密就可以了

二、接收端对数据的解密

第一步:

  • 因为D是用接收端的公钥进行非对称加密的,所以接收端第一步是用自己的私钥对D进行解密
  • 解密之后得到对称加密的密钥C

第二步:

  • 第一步中得到对称加密的密钥之后,我们用密钥解开红框C

第三步:

  • 解开红框C之后,因为B是用发送端的私钥进行非对称加密的,此时我们用发送端的公钥进行解密,如果解密成功,那么就完成了身份验证,并且得到了B和A

第四步:

  • 得到了B和A之后,我们用同样的单项加密算法来对A提取特征值,如果B一样,说明这段数据是完整的,这就完成了数据完整性的校验

三、证书/公钥的获取

  • 但是余留下来一个问题:发送端和接收端是如何对方的公钥的,此时就用到了证书

HTTPS:03---HTTPS数据的加密与解密过程_第2张图片

  • F:代表发送端/接收端的公钥,组织,地址等信息
  • E:是对F进行单向加密后得到的数字签名,然后用自己的公钥对其加密,传输给发送端/接收端,拿着这个证书颁发机构的公钥的发送端/接收端如果能对这个证书进行解密,说明这个证书颁发机构不是冒充的(这些证书颁发机构的公钥一般已经被microsoft事先放在Windows里面,当然其他操作系统也是一样的)
  • G:将E和F进行结合之后,最终得到的就是G,也就是我们使用的证书

总结:

  • 通过上面的介绍,我们已经知道了数据是如何进行加密和解密的
  • 身份验证是通过非对称加密保证的、数据完整性是通过单向加密保证的、安全性是由红框C和D保证的
  • 发送端和接收端通过对方的整数获取对方的公钥

附加:

HTTPS:03---HTTPS数据的加密与解密过程_第3张图片HTTPS:03---HTTPS数据的加密与解密过程_第4张图片

你可能感兴趣的:(HTTPS)