当前位置: 首页 > news >正文

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

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

数字证书的检验:

  1. 数字证书的公钥一般会默认安装在操作系统中,使用操作系统中的公钥可验证CA证书是否由权威机构发布
  2. 判断网址于证书网址是否一致,确保公钥与目标是否一致对应
  3. 检验证书的有效时间,是否过期

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • bash 笔记
  • Web开发:xmlns解析
  • SpringBoot:SpringBoot通过注解监测Controller接口
  • 使用 Redis 实现验证码、token 的存储,用自定义拦截器完成用户认证、并使用双重拦截器解决 token 刷新的问题
  • 用PyTorch从零开始编写DeepSeek-V2
  • React antd form表单未保存跳转页面提示
  • 【git】github中的Pull Request是什么
  • 医学深度学习与机器学习融合的随想
  • MFC列表框示例
  • watch监听vue2与vue3的写法
  • 梧桐数据库:数据库技术中表之间的连接算法详解
  • 第2章-数学建模
  • Spring Authorization Server 自定义 OAuth2 密码模式返回数据结构优化
  • AndroidStudio 编辑xml布局文件卡死问题解决
  • 七天打造一套量化交易系统:Day2-量化交易策略基本模型及要点
  • centos安装java运行环境jdk+tomcat
  • gf框架之分页模块(五) - 自定义分页
  • JS题目及答案整理
  • k8s如何管理Pod
  • MySQL数据库运维之数据恢复
  • node-glob通配符
  • Python学习之路13-记分
  • 漂亮刷新控件-iOS
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 微服务核心架构梳理
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • ​渐进式Web应用PWA的未来
  • ​如何防止网络攻击?
  • #1015 : KMP算法
  • #每日一题合集#牛客JZ23-JZ33
  • $forceUpdate()函数
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (2024.6.23)最新版MAVEN的安装和配置教程(超详细)
  • (27)4.8 习题课
  • (C++20) consteval立即函数
  • (八)Flask之app.route装饰器函数的参数
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (二刷)代码随想录第16天|104.二叉树的最大深度 559.n叉树的最大深度● 111.二叉树的最小深度● 222.完全二叉树的节点个数
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (七)Knockout 创建自定义绑定
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (一一四)第九章编程练习
  • (转)重识new
  • (转载)OpenStack Hacker养成指南
  • ../depcomp: line 571: exec: g++: not found
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET CORE 第一节 创建基本的 asp.net core
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • @EnableWebSecurity 注解的用途及适用场景
  • [ C++ ] STL_vector -- 迭代器失效问题
  • [ vulhub漏洞复现篇 ] AppWeb认证绕过漏洞(CVE-2018-8715)
  • [AIGC] CompletableFuture的重要方法有哪些?
  • [Android]使用Android打包Unity工程
  • [AutoSar]BSW_OS 02 Autosar OS_STACK
  • [bzoj1912]异象石(set)