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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3249241.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

开源安全态势感知平台Security Onion

简介 Security Onion是一款由安全防御人员为安全防御人员构建的免费开放平台。它包括网络可见性、主机可见性、入侵检测蜜罐、日志管理和案例管理等功能。详细信息可以查看官网Security Onion Solutions 在网络可见性方面,Security Onion提供了基于签名的检测&…

【JS逆向课件:第一课:requests基础】

爬虫初始 爬虫相关介绍 什么是爬虫 就是编写程序,模拟浏览器上网,让其去互联网中抓取数据的过程 模拟: 浏览器本身就是一个纯天然的爬虫工具,爬虫相关的模块都是基于浏览器为基础开发出来的。注意:日后只要是你的爬虫…

【开发踩坑】使用PageHelper工具正常sql后面多无关语句

背景 SQL日志打印出现了脏东西: 本来结束的 where muc.code ?;后面凭空多出了一个 LIMIT语句 ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your …

使用 Flask 3 搭建问答平台(三):注册页面模板渲染

前言 前端文件下载 链接https://pan.baidu.com/s/1Ju5hhhhy5pcUMM7VS3S5YA?pwd6666%C2%A0 知识点 1. 在路由中渲染前端页面 2. 使用 JinJa 2 模板实现前端代码复用 一、auth.py from flask import render_templatebp.route(/register, methods[GET]) def register():re…

汇编教程2

本教程主要教大家如何安装32位Linux虚拟机,为后续实验拆炸弹做准备 下载系统映像文件 以Ubuntu14.04.6系统为例 官方网站:下载地址 点击下载图中32位系统 如果官网进不去可以使用镜像网站 清华镜像网站:下载地址 进入之后找到下图中链接…

Android C++系列:Linux线程(四)线程同步

多个线程同时访问共享数据时可能会冲突,这跟我们前面信号文章所说的可重入性是同样的问题。比如两个线程都要把某个全局变量增加1,这个操作在某平台需要三条指令完成: 从内存读变量值到寄存器;寄存器的值加1;将寄存器的值写回内存假设两个线程在多处理器平台上同时执行这三…

13. C++继承 | 详解 | 虚拟继承及底层实现

目录 1.定义 1.1继承的概念 1.2 继承的定义 2. 对象赋值转换 3. 继承中的作用域 a. 隐藏/重定义 (Hiding/Redefinition) b. 重载 (Overloading) c. 重写/覆盖 (Overriding) d. 编译报错 (Compilation Error) 4. 派生类的默认成员函数 构造 拷贝构造 运算符重载 析…

Windows FFmpeg 开发环境搭建

FFmpeg 开发环境搭建 FFmpeg命令行环境搭建使用FFmpeg官方编译的库Windows编译FFmpeg1. 下载[msys2](https://www.msys2.org/#installation)2. 安装完成之后,将安装⽬录下的msys2_shell.cmd中注释掉的 rem set3. 修改pacman 镜像源并安装依赖4. 下载并编译源码 FFmpeg命令行环境…

Harmony 状态管理 @Local 和 @Param

Harmony 状态管理 Local 和 Param Local 背景 Local 是harmony应用开发中的v2版本中 对标**State**的状态管理修饰器,它解决了 State 对状态变量更改的检测混乱的问题: State 修饰的状态变量 可以是组件内部自己定义的State 修饰的状态 也可以由外部父…

mysql常用函数五大类

mysql常用函数 1. 第一类:数值函数1.1 圆周率pi的值1.2 求绝对值1.3 返回数字的符号1.4 开平方,根号1.5 求两个数的余数1.6 截取正数部分1.7 向上取整数1.8 向下取整数1.9 四舍五入函数1.10 随机数函数1.11 数值左边补位函数1.12 数值右边补位函数1.13 次…

从PyTorch官方的一篇教程说开去(3.1 - GD 梯度下降法)

在openAI以前,我们所讨论的“人工智能”基本上都是“人工智障”,即时在某些方面表现得非常出色,击败了世界冠军,但最多算个某领域的“专才”而不是“通才”。 那么这些“智障”程序们,究竟是靠什么才能做到“专才”呢…

【总结】nginx源码编译安装报错./configure: error: SSL modules require the OpenSSL library.

问题现象 源码编译安装nginx时,执行./configure …… --with-http_ssl_module 命令安装https模块,需要用到openssl,由于机器缺少openssl库,报如下错误。 …… checking for openat(), fstatat() ... found checking for getaddr…

Flink HA

目录 Flink HA集群规划 环境变量配置 masters配置 flink-conf.yaml配置 测试 Flink HA集群规划 FLink HA集群规划如下: IP地址主机名称Flink角色ZooKeeper角色192.168.128.111bigdata111masterQuorumPeerMain192.168.128.112bigdata112worker、masterQuorumPee…

MySQL(5)表的查询

目录 1.表的查询 1.表的查询: 1.1创建表: 语法: create table 表名( 字段 类型 约束, 字段 类型 约束, ... 字段 类型 约束 ); 1.2 单行数据全行插入: 🌰 表的字段都插入数据: insert into student values(100, 1000, 唐三藏, null); 1.3 多行数据 指定列插入:…

Go网络编程-RPC程序设计

gRPC 通信 RPC 介绍 RPC, Remote Procedure Call,远程过程调用。与 HTTP 一致,也是应用层协议。该协议的目标是实现:调用远程过程(方法、函数)就如调用本地方法一致。 如图所示: 说明: Servi…

STM32智能安防系统教程

目录 引言环境准备智能安防系统基础代码实现:实现智能安防系统 4.1 数据采集模块 4.2 数据处理与控制模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景:家庭与企业安防管理问题解决方案与优化收尾与总结 1. 引言 智能安防系统通过STM32…

webrtc QOS方法十三(视频渲染平滑)

一、背景介绍 视频渲染时间的确定需要考虑三方面的因素:网络抖动、网络延时、音视频同步 网络抖动:视频帧在网络上传输,会受到网络抖动的影响,不能收到立刻播放,需要进行适当的平滑 网络延时:一些报文在…

鱼眼相机变普通相机,利用Transform进行球面变换

Abstract 高分辨率广角鱼眼图像在自动驾驶等机器人应用中变得越来越重要。然而,使用普通的卷积神经网络或视觉变换器处理这类数据时会遇到问题,因为在将其投影到平面上的矩形网格时会引入投影和失真损失。为了解决这个问题,我们引入了HEAL-S…

雷达组网拼图3.0数据掌握和python解析处理

废话不多说,先展示雷达图 以反射率为例: 核对数据格式 Z_RADA_C_BABJ_20240705043615_P_DOR_ACHN_CREF_20240705_043000.bin数据分析认识 1. 组网产品分类:组网产品包括组网混合扫描反射率(HSR),组网组…

Qt-事件与信号

事件和信号的区别在于,事件通常是由窗口系统或应用程序产生的,信号则是Qt定义或用户自定义的。Qt为界面组件定义的信号往往通常是对事件的封装,如QPushButton的clicked()信号可以看做对QEvent::MouseButtonRelease类事件的封装。 在使用界面组…