探究公钥、私钥、对称加密、非对称加密、hash加密、数字签名、数字证书、CA认证、https它们究竟是什么,它们分别解决了通信过程的哪些问题。
一、准备
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它们究竟是什么,它们分别解决了通信过程的哪些问题。的更多相关文章
- 一篇读懂HTTPS:加密原理、安全逻辑、数字证书等
1.引言 HTTPS(全称: Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版.本文,就来深入介绍下其 ...
- RSA 非对称加密 数字签名 数字证书
什么是RSA加密算法 RSA加密算法是一种非对称加密算法,算法的数学基础是极大数分解难题. RSA加密算法的强度也就是极大数分解的难度,目前700多位(二进制)的数字已经可以破解,1024位认为是比较 ...
- 大话https演化过程(对称加密、非对称加密、公钥、私钥、数字签名、数字证书)
大话https演化过程(包括概念:对称加密.非对称加密.公钥.私钥.数字签名.数字证书.https访问全过程) 在网络上发送数据是非常不安全的,非常容易被劫持或是被篡改,所以每次定向发送数据你都可 ...
- 安全HTTPS-全面详解对称加密,非对称加密,数字签名,数字证书和HTTPS【下】
1. HTTPS 1.1. 什么是HTTPS HTTPS(HypertextTransfer Protocol Secure)即安全的HTTP.HTTPS的安全基础是安全套接层(Secure Soc ...
- 公钥、私钥、数字签名、数字证书、对称与非对称算法、HTTPS
作者: yoyoso https://my.oschina.net/ioslighter/blog/359207 对公钥和私钥有点稀里糊涂的,搜索了一些资料,作一些整理吧,先看这个: 加密--公钥 看 ...
- https原理及其中所包含的对称加密、非对称加密、数字证书、数字签名
声明:本文章已授权公众号Hollis转载,如需转载请标明转载自https://www.cnblogs.com/wutianqi/p/10654245.html(安静的boy) 一.为什么要使用http ...
- SSL及其加密通信过程
SSL及其加密通信过程 什么是SSL SSL英文全称Secure Socket Layer,安全套接层,是一种为网络通信提供安全以及数据完整性的安全协议,它在传输层对网络进行加密.它主要是分为两层: ...
- 转!!通俗理解数字加密,数字签名,数字证书和https
原博文地址:https://www.jianshu.com/p/4932cb1499bf 前言 最近在开发关于PDF合同文档电子签章的功能,大概意思就是在一份PDF合同上签名,盖章,使其具有法律效应. ...
- 公钥、私钥、CA认证、数字签名、U盾
感谢传智播客的方立勋老师,在一个教学视频上,他巧妙地以蒋介石给宋美龄写密信作为例子,生动地讲述了软件密码学知识. 加密分为对称加密和非对称加密,我们传统理解的,发送数据之前使用一个加密器加密,接到数据 ...
随机推荐
- CSP-J真题分析之中央处理器(CPU)
中央处理器(CPU,central processing unit)作为计算机系统的运算和控制核心,是信息处理.程序运行的最终执行单元.CPU 自产生以来,在逻辑结构.运行效率以及功能外延上取得了巨大 ...
- java一维数组的声明与初始化
一维数组:可以理解为一列多行.类型相同的数据,其中每个数据被称为数组元素: 一维数组的声明方式: type varName[]; 或 type[] varName;(推荐) Eg:int age[]; ...
- H3C 单区域OSPF配置示例一
- React 蚂蚁金服+ Antd 组件使用技巧
安装antd 组件 yarn add antd -D import { Card,Button,Table,From,Modal ,Select } from 'antd'; .引入就可以使用了 ...
- H3C IPv6地址自动配置
- H3C DHCP中继基本配置
- linux /proc 接口
无论何时一个硬件中断到达处理器, 一个内部的计数器递增, 提供了一个方法来检查设备 是否如希望地工作. 报告的中断显示在 /proc/interrupts. 下面的快照取自一个双处理 器 Pentiu ...
- ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(2)之创建项目
我们在创建项目的时候一定要遵循层次和命名的原则,同时也要有统一的规范,无论是多人项目还是单人项目,能够让人看着一目了然并赏析悦目,做一个有追求的程序员. 例如IA.WebApp是视图控制器层(表现层) ...
- Android 隐藏顶部菜单栏
Android 隐藏状态栏 在Activity中: getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 在fragmen ...
- Laravel5.5 邮件发送报错:stream_socket_client()
具体报错如下: stream_socket_client(): SSL operation failed with code 1. OpenSSL Error messages: error:1409 ...