IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 3.计算机网络——加密,数字签名,数字证书 -> 正文阅读

[网络协议]3.计算机网络——加密,数字签名,数字证书

对称加密:指用来加密和解密的是同一个秘钥。其特点是加密速度快,但是秘钥容易被黑客截获,所以安全性不高。
非对称加密:用来加密和解密的是不同的秘钥,它们是成对出现的,称为公钥和私钥,知道其中一个秘钥是无法推导出另外一个秘钥的。用公钥加密的内容需要用私钥才能解密,用私钥加密的内容需要用公钥才能解密。非对称加密的特点是安全性高,缺点是加密速度慢

RSA算法属于非对称加密算法,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。
AES,高级加密标准,2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。

客户端传输重要信息给服务端,服务端返回的信息不需加密,客户端这边就需要对这些 重要信息进行加密,使用RSA公钥加密,服务端使用RSA解密,然后返回一些普通信息,比如状态码code,提示信息msg,提示操作是成功还是失败。这种场景下,仅仅使用RSA加密是可以的。
但是,如果仅仅使用RSA,服务端只通过RSA解密,这样会对于性能会有所影响,原因是RSA的解密耗时约等于AES解密数据的100倍,所以如果每个重要信息都只通过RSA加密和解密,则会影响服务端系统的性能,所以建议两种算法一起使用。
客户端传输重要信息给服务端,服务端返回的信息需加密,例如客户端登录的时候,传递用户名和密码等资料,需要进行加密,服务端验证登录信息后,返回令牌token需要进行加密,客户端解密后保存。此时就需要结合这两种算法了

1.客户端加密
1.客户端随机产生AES的密钥;
2.对身份证信息(重要信息)进行AES加密;
3.通过使用RSA对AES密钥进行公钥加密。
在传输的过程中,即使加密后的AES密钥被别人截取,因为并不知道RSA的私钥,无法解密得到原本的AES密钥,就无法解密用AES加密后的重要信息。

2.服务端使用RSA + AES对重要信息进行解密
1.对加密后的AES密钥进行RSA私钥解密,拿到密钥原文;
2.对加密后的重要信息进行AES解密,拿到原始内容。

3.服务端向客户端传递重要信息
解密后的AES密钥,对将要传递给客户端的数据进行AES加密,返回给客户端,由于客户端和服务端都已经拿到同一把AES钥匙,所以客户端可以解密服务端返回的加密后的数据。如果客户端想要将令牌进行保存,则需要使用自己定义的默认的AES密钥进行加密后保存,需要使用的时候传入默认密钥和密文,解密后得到原数据。

摘要:所谓的摘要就是一段信息或者一个文件通过某个哈希算法(也叫摘要算法)而得到的一串字符,摘要算法的特点就是不同的文件计算出的摘要是不同的(也有可能相同,但是可能性非常非常低),所以摘要算法通常是用来判断文件是否被篡改过。其还有一个特点就是通过摘要是无法推导出源文件的信息的。常用的摘要算法有MD5、SHA等

数字签名: 数字签名就是一个文件的摘要加密后的信息,数字签名是和源文件一起发送给接收方的,接收方收到后对文件用摘要算法算出一个摘要,然后和数字签名中的摘要进行a比对,两者不一致的话说明文件被篡改了。

数字证书: 数字证书是一个经证书授权中心生成的文件,数字证书里一般会包含公钥、公钥拥有者名称、CA的数字签名、有效期、授权中心名称、证书序列号等信息。其中CA的数字签名是验证证书是否被篡改的关键,它其实就是对证书里面除了CA的数字签名以外的内容进行摘要算法得到一个摘要,然后CA机构用他自己的私钥对这个摘要进行加密就生成了CA的数字签名,CA机构会公开它的公钥,验证证书时就是用这个公钥解密CA的数字签名,然后用来验证证书是否被篡改。

CA:签发证书的权威机构
根CA:CA的CA,可以签发CA的证书
根证书:根CA的自签名证书

举例:
拍卖宝石,张三,谁出价高就卖给谁,对于报价文件属于机密文件
1.通过对称加密有什么风险
李四想要买,做了一个保健文件(文件名price.txt,文件内容10万),里斯用一个对称密钥123对文件进行加密,然后李四将这个密钥和加密文件发给张三,张三收到后解密,知道了李四报价是10万,王五也想要,他想办法截获了李四发给张三的密钥和加密文件,知道了李四的报价,将自己的报价改成了11万,结果王五最后得到了这个宝石。

用对称加密的话,密钥要是被截获了,安全性就是十分低

2.用非对称加密
张三自己生成一堆密钥,私钥是zhangsan1,公钥是zhangsan2,私钥张三自己保存,公钥公布。
李四将price.txt,用公钥zhangsan2进行加密传给张三,张三用私钥zhangsan1解密得到李四的报价是10万。这是王五就算截获了报价文件,王五没有张三的私钥,无法解密文件,无法知道李四的报价。

3.数字签名的作用
如果王五截获了李四发给张三的报价文件,王五伪造了一份,写成报价5万,将这份伪造文件用张三公布的公钥zhangsan2进行加密,张三收到文件后进行解密,发现文件报价5万过低,李四错失了得到宝石的机会。因为张三收到文件后,不知道报价文件是否被篡改过。

解决这个问题,李四需要自己生成一堆非对称加密的私钥lisi2,私钥lisi1自己保存,公钥给张三,李四对自己的报价文件通过摘要算法得到一个摘要(假设aaa),再用自己的私钥lisi1加密这个摘要得到数字签名,最后将加密的报价文件和数字签名一起发给张三,张三收到后,先用lisi2解密数字签名得到摘要aaa,然后用自己的zhangsan1私钥解密加密的文件得到报价源文件,然后对报价源文件进行摘要算法,看计算的结果是不是aaa,如果不是的话说明报价文件被篡改了

这时,如果王五截获了李四的报价文件王五伪造一份报价文件的话,张三收到后,会发现报价文件和数字签名不匹配。

非对称加密能确保加密文件内容不被窃取,但不能保证文件不被篡改,数字签名用来验证文件是否被篡改过

4.数字证书的作用
如果王五自己也生成一对用于非对称加密的密钥,私钥wangwu1,公钥wangwu2,李四将自己的公钥lisi2发给张三的过程中被王五截获了,王五用自己的公钥wangwu2替换了lisi2,所以张三最后收到的公钥实际上是王五的,后面李四发的数字签名和报价文件都被王五截获,同时,王五伪造了一份报价文件,用自己的私钥wangwu1加密报价文件的摘要生成伪造的签名发给张三,张三收到后发现数字签名和报价文件是匹配的,无法辨别真伪。

因为张三无法辨别收到的公钥是不是李四发的,此时,数字证书就起到了作用。李四到权威机构申请数字证书,证书包含了公钥lisi2,和公钥的拥有者李四等相关信息,李四将证书发给张三,张三通过证书里面的信息就可以判断证书是不是李四的。

证书发送过程有没有可能被截获?证书里面还包含了CA的数字签名,这个签名是证书机构用他们自己的私钥对证书的摘要进行加密的,公钥是公开的,即便王五截获并篡改了证书内容,也无法伪造证书机构的签名,张三收到证书后通过验证签名会发现证书被篡改

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-07-29 12:01:15  更:2021-07-29 12:02:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 13:40:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计