码迷,mamicode.com
首页 > Web开发 > 详细

探究公钥、私钥、对称加密、非对称加密、hash加密、数字签名、数字证书、CA认证、https它们究竟是什么,它们分别解决了通信过程的哪些问题。

时间:2020-01-15 19:22:19      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:baidu   客服   效率   环境   mic   用户   角色   hash函数   电脑   

一、准备

  1. 角色:小白、美美、小黑。

  2. 剧情:小白和美美在谈恋爱;小黑对美美求而不得、心生怨念,所以从中作梗。

  3. 需求:小白要与美美需通过网络进行通信,联络感情,所以必须保证通信的安全性。

 

二、由通信过程中可能出现的问题来引出公钥、私钥、对称加密、非对称加密、hash加密、数字签名、数字证书、CA认证、https的相关知识

  1. 场景1: 小白和美美在 http 协议下进行通信。

    1.1 能否完成通信:能。

    1.2 还可能出现其他问题:容易受到网络中间人攻击:在http协议下进行通信,信息是没有进行加密的,在透明的网络环境中,一旦信息被小黑截获,小黑可以查看、篡改信息内容,难以保证信息的安全。—— 问题所在:信息没加密。

    1.3 解决办法:引入“公钥、私钥”对信息进行加密,详情见“场景2”。

  2. 场景2: 小白和美美依旧是在 http 协议下进行通信,但小白先准备了一对秘钥(公钥+私钥),私钥由小白自己保管,公钥则交给了美美。通信时,小白先用“小白的私钥”对信息进行加密,然后再发送给美美;美美收到信息后,用“小白的公钥”进行解密,得到明文。美美要给小白发信息时,先用“小白的公钥”对信息进行加密,然后再发送给小白;小白收到回复后,用“小白的私钥”进行解密,得到明文。

    2.1 公钥、私钥

    (1)what:公钥(Public Key)与私钥(Private Key)是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),公钥是密钥对中公开的部分,私钥则是非公开的部分。

    (2)特性:通过这种算法得到的密钥对能保证在世界范围内是独一的。

    (3)作用:对信息进行加密。使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密,比如:用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。

    2.2 能否解决“网络中间人攻击”问题:能。因为信息是用“小白的私钥/公钥”进行加密了,小黑即使截获了信息,但手上没有“小白的秘钥”来对信息进行解密,所以无法查看到明文。

    2.3 还可能出现其他问题:美美都无法保证自己收到的信息是否是完整的。—— 问题所在:信息完整性无法保证。

    2.4 解决办法:采用“数字签名”的方式来对信息的完整性进行确认,详情见“场景3”。

  3. 场景3: 小白和美美依旧是在 http 协议下进行通信;小白依旧持有“小白的私钥”,美美则持有“小白的公钥”。小白每发出一封信件,都会先用hash函数生成信件的摘要,再用“小白的私钥”对摘要进行加密得到数字签名,最后将数字签名附在已加密的信件后面一同发给美美。美美收到信息后用“小白的公钥”对信件和数字签名进行解密,得到信件明文和摘要,再将信件明文通过Hash函数得到的摘要,最后将这个摘要和上一步得到的摘要进行对比,如果两者一致,就证明这封信未被修改过,收到的信息是完整的。

    3.1 数字签名

    (1)what:用hash函数生成信件的摘要,再用用户的私钥进行加密;

    (2)作用: 确保信息的完整性和不可抵赖性;

    3.2 hash加密:是一种不可逆的加密方法,将一段明文进行加密, 对方得到密文后不可以得到明文。

    3.2 能否解决“信息完整性”问题:能。

    3.3 还可能出现其他问题:即使保证了收到的信息是完整的,但难以保证用户的身份:小黑可以冒充小白,去和美美进行通信。小黑自己生成了一对秘钥(小黑的公钥+小黑的私钥),再偷偷把美美电脑中保存的“小白的公钥”替换成“小黑的公钥”,并冒充小白的身份和美美进行通信。美美并不知道自己电脑中保存的公钥已经被人掉包了,所以一如既往地通过该公钥和“小白”通着信。——问题所在:用户的身份难以保证。

    2.4 解决办法:引入“CA认证”,对小白的身份进行确认,详情见“场景4”。

  4. 场景4: 小白和美美依旧是在 http 协议下进行通信,小白的那对秘钥,私钥依旧由自己保管,把公钥交给美美。除此之外,小白还把自己的公钥和一些必要信息打包后交由CA进行管理,CA会将小白提交的信息通过“CA的私钥”加密后形成数字证书。(CA有它自己的一对秘钥,且“CA的私钥”由CA自己管理,"CA的公钥"则发放给用户。)

    4.1 什么是CA认证CA认证,即电子认证服务,是指为电子签名相关各方提供真实性、可靠性验证的活动。证书颁发机构(CA, Certificate Authority)即颁发数字证书的机构。是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。

    4.2 数字证书

    (1)what:CA的私钥对客户端的公钥和信息进行加密后得到的文件;

    (2)作用:① 证明用户身份;② 拿到用户的公钥;

    4.3  能否解决“用户身份认证”问题:能。小白用“小白的私钥”对信息进行加密后发给美美,美美先通过CA获得“小白的公钥”,并用“小白的公钥”对小白发来的密文进行解密。因为CA是受信任的第三方,所以通过CA获得的“小白的公钥”也是可以信任的。既然能够通过从CA获得的“小白的公钥”来对小白发来的密文进行解密,那么自然小白的身份也得以确认了。

    4.4 还可能出现其他问题:美美可以通过CA拿到小白的数字证书,小黑也可以通过CA获取到小白的数字证书(这里要引出“非对称加密的概念”),这样一来小白发出的信息依旧是不安全的。—— 问题所在:采用非对称加密时,只要持有公钥就能对 同一对秘钥中的私钥加密的信息 进行解密。

    4.5 非对称加密:小白持有私钥,美美和小黑都持有公钥, 持有公钥的一方用公钥进行加密,那么这个内容就只有持有私钥的那一方可以看见。但是如果是用私钥进行加密,那么持有公钥的每一方都可以看见。

    4.6 解决办法:采用“对称加密”的方式来保证信息的安全,详情见“场景5”。

  5. 场景5: 小白和美美依旧是在 http 协议下进行通信,小白只生成一个对称加密的私钥(单钥),并将这个“小白的私钥”复制了一份给美美,小白和美美都用这把“小白的私钥”对信件进行加密和解密。

    5.1 对称加密:通信双方都持有同一把私钥, 双方都是用私钥进行加密和解密。也就是说在网络间传输的都是密文,然后拿到密文后用私钥进行解密就能得到明文。

    5.2 能否解决“采用非对称加密时,加密信息多人可见”问题:能。只要小白和美美手中持有的“小白的私钥”不外泄,那么他们之间的通信就能保证只有他们可见。

    5.3 还可能出现其他问题:小白如何把“小白的私钥”给美美?如果通过网络发给美美,就有可能被小黑截获(“私钥的保存、传输”就基本决定了这个保密的安全性)。

    5.4 解决办法:①当面交换; ②通过“非对称加密”的方式,详情见“场景6”。

  6. 场景6:小白和美美在 https 协议下进行通信。

    6.1 https

    (1)what:用的是“对称加密”和“非对称加密”这两种方法混合,目的在于建立一条加密的、安全的通信通道。

    (2)https协议有关“通过 非对称加密 实现对 对称加密的秘钥 的安全传输”的实现步骤:

      ①服务端有一对秘钥(私钥+公钥),私钥由服务端自行持有,公钥则发给各个客户端;

      ②客户端只生成一只对称加密的私钥(单钥);

      ③客户端用“服务端的公钥”对“客户端的私钥”进行加密,然后发送给服务端;

      ④服务端收到客服端发来的信息,用“服务端的私钥”对信息进行解密,得到“客户端的私钥”;

      ⑤服务端和客服端往后的通信过程中,信息都可以用“客户端的私钥”对来加、解密,只要这把“客户端的私钥”不泄露出去,别人即使截获了某一方发出的密文也无法进行解密。

    (3)图解 https

      技术图片

    (4)https 的作用:①内容加密;②身份认证;③信息完整性。

    (5)效率:“对称加密”比“非对称加密”快1000倍。

  至此,小白和美美的通信安全问题得以解决,可以安心谈他们的恋爱了,撒花~

探究公钥、私钥、对称加密、非对称加密、hash加密、数字签名、数字证书、CA认证、https它们究竟是什么,它们分别解决了通信过程的哪些问题。

标签:baidu   客服   效率   环境   mic   用户   角色   hash函数   电脑   

原文地址:https://www.cnblogs.com/laipimei/p/12195991.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!