加密传输及相关安全验证:

1.1. 加密:

1.1.1. 对称加密:
  • 特点:加解密用一个密钥,加解密效率高,速度快,有密钥交互的问题
  • 问题:双方如何交互对称密钥的问题,用非对称密钥的公钥加密对称密钥混合加密方式
  • 常用对称加密:AES加密,密钥长度 128、256、192位,加密级别高,速度快
  • 以及DES ,3DES加密算法等
1.1.2. 非对称加密:
  • 特点:没有密钥交互的问题,加密速度慢、仍然有窃听风险
  • 描述:非对称密钥双方使用不同的密钥来加解密,并且不能通过一个密钥推算出另一个密钥:
  • 使用:公钥加密,私钥解密_——私钥加密(数字签名),公钥解密,并且用哈希函数计算数字签名比对是否一致(用于验证该信息是否由中间人篡改)
  • 常用加密算法:
    • DSA:数字签名算法,是一种标准的 DSS(数字签名标准)
    • RSA: 由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的;
  • A把事先准备好了非对称密钥对,分别为公钥和私钥,这一套非对称密钥对能相互加解密。公钥是公开的,私钥只有自己才有。然后A把公钥发送给B,或者公钥放在服务器B自行下载。B拿到了公钥后用公钥的一套算法加密信息后传输给A,A用私钥执行另一个算法解密获得明文信息。
1.1.3. 混合加密:

使用:传输大量数据使用对称加密,加解密速度快;对称加密分配问题:用非对称加密的公钥加密这个对称密钥再传递给对方。

过程:

A:这是我的公钥public_A,你收好,你生成对称密钥也给我一下

B:好的,收到public_A,你收好对称密钥secretKey。然后用public_A加密这个secretKey

A:收到消息,private_A解密出来是secretKey。

中间人攻击:

窃听篡改:

A:这是我的公钥public_A,你收好,你生成对称密钥也给我一下

X:获得了A的公钥,把自己的公钥public_X发给B… B这傻子还以为真的是A的公钥呢

B:好的,公钥public_X已收到,生成一个对称密钥secretKey,然后用public_X加密这个对称密钥。

X:截获了这个消息,用自己私钥private_X解密出对称密钥secretKey,自己再生成一个secretKeyXXX用public_A加密一下发送给A。A这傻子还以为你们接下来会安全的用secretKey通信吗哈哈哈

A:收到消息,private_A解密出来对称密钥secretKeyXXX(其实是X篡改了)

上图中,中间人X能不仅获取A和B之间通信内容,还能任意修改,相当于一个代理抓包,修改数据。

在混合加密的传输过程中,也存在中间人篡改信息的可能性,但是如果我们能够确保使用者获取的公钥可信,则可以达到一定的防护

1.2. 数字签名:

1.2.1. 过程:

私钥加密(生成数字签名):

  • 数字签名是对数据的哈希值(或摘要)进行私钥加密的结果。发送者首先使用哈希函数计算数据的哈希值,然后使用自己的私钥对这个哈希值进行加密,生成数字签名
  • 数字签名用于验证数据的完整性和来源,因为私钥是唯一的,只有私钥的持有者才能生成与数据相匹配的签名。

公钥解密(验证数字签名):

  • 接收者收到数据和对应的数字签名后,他会使用发送者的公钥来解密这个签名,从而得到原始数据的哈希值。
  • 同时,接收者也会对接收到的数据使用相同的哈希函数进行计算,得到一个新的哈希值。
  • 如果这两个哈希值相匹配,那么接收者就可以确认数据在传输过程中没有被篡改,并且确实是由声称的发送者发送的。

1.2.2. 数字摘要:

特点:

  1. 不可逆:只有摘要算法,没有密钥(只能单向加密,不能解密)
  2. 难题友好型:破解只能暴力生成原文,通过摘要算法计算一致的摘要结果
  3. 发散性:对原文的一点点改动,摘要会剧烈变化
  4. 抗碰撞性:原文不同,摘要也不同,摘要一致的可能性非常低

常见摘要算法:(推荐:SHA2 ) 、MD5、SHA1

1.2.3. 数字摘要的作用:
  1. 确保数据的完整性和来源:私钥加密生成数字签名,这个签名是对数据的哈希值进行加密的结果。只有私钥的持有者才能生成与数据相匹配的签名,因此,接收方可以通过公钥解密签名并验证数据的完整性,确认数据在传输过程中未被篡改,并且确实是由声称的发送者发送的。
  2. 防止否认:可以防止发送方否认其发送过某条信息,因为签名是唯一的,且与发送方的私钥紧密相关。

1.3. 数字证书:

CA认证机构具有权威性和公正性的第三方信任机构,会验证申请者的真实身份,负责签发和管理数字证书,

数字证书可以验证用户的身份并确保该使用者的公钥的可用!避免中间者顶替篡改

主要内容:

颁发过程:

收到数字证书后,用户首先用证书指定的哈希算法计算证书信息的摘要,通过CA 公钥解密证书的签名获取数字摘要,比对两个数字摘要是否一致,一致后表示该证书信息完整,该用户的公钥可信:获取证书所有者的公钥;

获取者先从获取的信息中验证数字证书的信息完整性,从证书获取公钥,用于验证获取信息的完整性,最终查看信息

相关推荐

  1. Ubuntu 18.0.4 安装 libc6 2.28 公钥验证相关

    2024-07-19 07:28:02       29 阅读
  2. SSH数据加密传输安全连接新体验

    2024-07-19 07:28:02       26 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-19 07:28:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-19 07:28:02       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-19 07:28:02       58 阅读
  4. Python语言-面向对象

    2024-07-19 07:28:02       69 阅读

热门阅读

  1. 关于使用实现Runnable接口实例开启线程得好处

    2024-07-19 07:28:02       20 阅读
  2. 发布支持TS的npm包

    2024-07-19 07:28:02       20 阅读
  3. 跟ChatGPT学习go语言--time.Sleep 方法 单位是什么

    2024-07-19 07:28:02       18 阅读
  4. 【乐吾乐2D可视化组态编辑器】快捷键

    2024-07-19 07:28:02       19 阅读
  5. Qt解析复杂的csv格式文件

    2024-07-19 07:28:02       18 阅读
  6. 日常遇到的英文单词四

    2024-07-19 07:28:02       17 阅读
  7. zookeeper+kafka消息队列群集部署

    2024-07-19 07:28:02       20 阅读
  8. 侧开知识点合集2

    2024-07-19 07:28:02       18 阅读
  9. .net core IConfiguration 读 appsettings.json 数据,举例

    2024-07-19 07:28:02       22 阅读
  10. C# 多线程

    2024-07-19 07:28:02       13 阅读