【网络安全】理解报文加密、数字签名能解决的实际问题
文章目录
- 前言
- 1. 防止报文泄露 —— 加密体系的出现
- 1.1 理解非对称加密体系的实施难点
- 1.2 加密体系的实际应用
- 2. 防止报文被篡改 —— 数字签名的出现
- 2.1 数字签名的原理
- 2.2 数字签名的实施难点
- 2.2 数字签名的实际应用 —— 引入摘要算法
- 3. 实体鉴别 —— CA证书
- 后记
前言
工作中重新接触了 【公钥、私钥、签名】的概念。抽空重新看了《计算机网络》和国外的小黑书,把这块基础知识再收敛一下。基于小黑书的叙事结构,把网络安全解决的实际问题拆解成:
- 防止报文泄露
- 防止报文被篡改
- 实体鉴别
- 端点鉴别
- 防止重放攻击
1. 防止报文泄露 —— 加密体系的出现
网络丢包是常见的事情,丢包意味着报文可能被截获。怎样能够减少丢包造成的损失呢?两个思路
- 物理隔绝 —— 内网通信
- 保护信息 —— 报文加密
如果两家公司在公网上通信,涉密信息的报文一定要经过加密。加密又有两种形式,(这个网上资料很多,不再赘述)
- 对称加密
- 非对称加密
NOTE: 非对称加密算法复杂,消耗的资源多,所以实际应用是【非对称加密 + 对称加密】,旨在确保通信安全的前提下兼顾效率。
1.1 理解非对称加密体系的实施难点
- 以 RSA 非对称算法为例,比DES慢 2~4个数量级
- 多对多的网络模式下,密钥的管理和交换比对称加密复杂
1.2 加密体系的实际应用
- A与B用RSA(非对称加密)交换会话密钥(对称密钥)
- A和B在一段时间内,都使用会话密钥进行通信。

2. 防止报文被篡改 —— 数字签名的出现
上文提到,报文加密可以减少丢包的损失。简单来说就是截获网络报文的人看不懂双方在讲什么。只加密就完了吗?我们把攻击者想象得太简单了,有一些攻击者,会做这些事
- 从发送方中把报文(密文)篡改了,再丢给接收方。接收方从密文中还原的明文也就成了乱码。
- 从发送方中获取明文和密钥,修改明文,加密后再发给接收方。接收方就被误导了。
有没有办法证明报文本身没被篡改呢?大体思路是这样的:
- 报文中确保有发送者的签名

- 签名一定要与内容进行绑定,内容变了,签名失效。(完成这种机制的就是数字签名)

值得注意的是,“签名” 一词在中文里面表达一种不变量,比如小明本人签字,内容一定是“小明”。而在计算机世界中,这个 “签名” 是被计算出来的,根据内容实时变化的。
2.1 数字签名的原理
数字签名以非对称加密为基础。
“公钥加密,私钥解密” 这个是大多数人的共识,但是这里存在容易混淆概念的地方。
因为中文的“解密”一定出现在“加密”之前。实际上把 “加密” 和 “解密” 都换成 “运算”,更合理些。
因为运算是可以满足交换律的,数字签名就是使用的运算的交换律

- A 生成密文后,用自己的私钥 (全宇宙只有自己持有),对密文进行X运算,生成数字签名。把密文和数字签名一起发送给 B
- B 收到密文后,先用 A 的 公钥 对数字签名进行D运算。由于X运算和D运算满足交换律,所以对数字签名进行D运算会解析出密文。如果这个密文和A给的密文不一致,则报文被篡改。
- 以上的 D运算 实际上就是验签
- 由于A的私钥是全宇宙唯一的,所以A的签名不可伪造,也不可抵赖(A说自己没发过这个报文,但是世界不会承认他没发过)
2.2 数字签名的实施难点
非对称加密比较消耗资源,特别是对大报文进行运算。
2.2 数字签名的实际应用 —— 引入摘要算法
既然大报文消耗性能,能不能把报文弄小? 思路其实就是摘要算法,常见的 md5、sha-1 就是摘要算法(也叫散列算法)。

- 程序中的应用
// 把签名拼接到密文后面,接收者再解析出签名,验签即可
密文.签名
3. 实体鉴别 —— CA证书
上文提到,现实的通信基础,是对称和非对称加密结合。那么自然就引出了两个议题
- 如何交换密钥
- 如何证明 “A的公钥属于A”
这块内容是密钥管理的内容,内容多的可以单独开个专题来讲了。对于通信双方,只需要知道CA证书的存在即可,他是作为密钥管理的第三方,CA = Certification Authority (认证中心)。具体的管理方式:
- A 在认证中心上注册了自己的公钥,获得了CA证书。
- B 要与 A 通信前先用 A 给的 CA 证书去认证中心确认公钥来自于 A
后记
理解报文加密、数字签名就写到这里。下面的三个话题主要是防止中间人攻击
- 实体鉴别
- 端点鉴别
- 防止重放攻击
实际开发中暂时还接触不到这些,等有实际的工作体验后再来补充这部分的内容。
最后,值得一提的是,理解了上述概念,再看看jwt的报文组成,就显得合理多了。
相关文章:
【网络安全】理解报文加密、数字签名能解决的实际问题
文章目录 前言1. 防止报文泄露 —— 加密体系的出现1.1 理解非对称加密体系的实施难点1.2 加密体系的实际应用 2. 防止报文被篡改 —— 数字签名的出现2.1 数字签名的原理2.2 数字签名的实施难点2.2 数字签名的实际应用 —— 引入摘要算法 3. 实体鉴别 —— CA证书 后记 前言 …...
linux中安装nodejs,卸载nodejs,更新nodejs
卸载nodejs 卸载node sudo apt-get remove nodejs清理掉自动安装的并且不需要软件包 sudo apt autoremove查看node相关的文件 sudo whereis node如果有文件需要手动删除文件 删除该文件命令 sudo rm -rf /usr/local/bin/node在此查看node -v 是未找到,说明你已经…...
浅谈Python网络爬虫应对反爬虫的技术对抗
在当今信息时代,数据是非常宝贵的资源。而作为一名专业的 Python 网络爬虫程序猿,在进行网页数据采集时经常会遭遇到各种针对爬虫行为的阻碍和限制,这就需要我们掌握一些应对反爬机制的技术手段。本文将从不同层面介绍如何使用 Python 进行网…...
代理池在过程中一直运行
Hey,爬虫达人们!在爬虫的过程中,要保持代理池的稳定性可不容易。今天就来和大家分享一些实用经验,教你如何让代理池在爬虫过程中一直运行!方法简单易行,让你的爬虫工作更顺畅. 在进行爬虫工作时࿰…...
基于Java+SpringBoot+Vue前后端分离党员教育和管理系统设计和实现
博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…...
【flutter直接上传图片到阿里云OSS】
flutter直接上传文件到阿里云需要获取凭证,通过调用阿里云获取凭证的接口能拿到下面这些参数 {"StatusCode": 200,"AccessKeyId": "STS.NSsrKZes4cqm.....","AccessKeySecret": "7eGnLZaEFsRCGYJAnrtdE9n....."…...
【MySQL系列】表的内连接和外连接学习
「前言」文章内容大致是对MySQL表的内连接和外连接。 「归属专栏」MySQL 「主页链接」个人主页 「笔者」枫叶先生(fy) 目录 一、内连接二、外连接2.1 左外连接2.2 右外连接 一、内连接 内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,前面篇章学习的…...
C语言日常刷题 3
文章目录 题目答案与解析1234、5、6、 题目 1.已知函数的原型是: int fun(char b[10], int *a); ,设定义: char c[10];int d; ,正确的调用语句是( ) A: fun(c,&d); B: fun(c,d); C: fun(&c,&d…...
.net6中, 用数据属性事件触发 用httpclient向服务器提交Mes工单
MES开发中, 客户往往会要求 工单开始时记录工艺数据, 工单结束时将这些工艺数据回传到更上一级的WES系统中. 因为MES系统和PLC 是多线程读取, 所以加锁, 事件触发是常用手段. using MyWebApiTest.PLC; using MyWebApiTest.Service; using MyWebApiTest.Service.Entry; using M…...
sin(A)的意义
若存在矩阵A,则sin(A)表示对于矩阵A的每一个元素,进行对应的函数运算。 如:...
ctfshow-web14
0x00 前言 CTF 加解密合集CTF Web合集 0x01 题目 0x02 Write Up 首先看到这个,swith,那么直接输入4,则会打印$url的值 然后访问一下 查看一下,发现完整的请求是http://c7ff9ed6-dccd-4d01-907a-f1c61c016c15.challenge.ctf.sho…...
数据结构—循环队列(环形队列)
循环队列(环形队列) 循环队列的概念及结构循环队列的实现 循环队列的概念及结构 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。…...
vue3 实现按钮权限管理
在做后台管理系统时,经常会有权限管理的功能,这里来记录一下关于按钮权限管理的实现方法 1、自定义指令 v-permission。新建js文件用来写指令代码。 export default function btnPerms(app) {app.directive(permission, {mounted(el, binding) {if (!p…...
C语言练习4(巩固提升)
C语言练习4 选择题 前言 面对复杂变化的世界,人类社会向何处去?亚洲前途在哪里?我认为,回答这些时代之问,我们要不畏浮云遮望眼,善于拨云见日,把握历史规律,认清世界大势。 选择题 …...
将AI融入CG特效工作流;对谈Dify创始人张路宇;关于Llama 2的一切资源;普林斯顿LLM高阶课程;LLM当前的10大挑战 | ShowMeAI日报
👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 🤖 将AI融入CG特效工作流,体验极致的效率提升 BV1pP411r7HY 这是 B站UP主 特效小哥studio 和 拓星研究所 联合投稿的一个AI特…...
Vue2学习笔记のVue中的ajax
目录 Vue中的ajaxvue脚手架配置代理方法一方法二 插槽 hello, 这篇文章是Vue2学习笔记的第四篇,也是第四章:Vue中的ajax。 Vue中的ajax vue脚手架配置代理 方法一 在vue.config.js中添加如下配置: devServer:{proxy:"http://localho…...
C# 使用NPOI操作EXCEL
1.添加NOPI 引用->管理NuGet程序包->添加NOPI 2.相关程序集 3....
分布式 - 服务器Nginx:一小时入门系列之 return 指令
文章目录 1. return 指令语法2. return code URL 示例3. return code text 示例4. return URL 示例 1. return 指令语法 return指令用于立即停止当前请求的处理,并返回指定的HTTP状态码和响应头信息,它可以用于在Nginx中生成自定义错误页面,…...
【Linux】ext4和xfs扩大,缩小lv后,无法识别如何操作
虚拟机系统异常,挂载到其他环境如何修复系统盘 1、环境 UOS 1060E x86环境 模拟异常环境: 1060e系统,使用lvm缩小磁盘后,出现异常,将异常磁盘挂载到其他服务器中,但存在问题发现有uuid相同的问题。 为…...
基于HarmonyOS ArkUI实现音乐列表功能
本节将演示如何在基于HarmonyOS ArkUI的List组件来实现音乐列表功能。 本文涉及的所有源码,均可以在文末链接中找到。 活动主页 华为开发者论坛 规则要求具体要求如下: 第1步:观看<HarmonyOS第一课>“营”在暑期•系列直播&#x…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
