信息安全复习七:报文鉴别与哈希函数

news2024/11/25 12:42:59

一、章节梗概

1.安全服务与安全需求
2.报文鉴别的安全需求
3.对报文加密来实现报文鉴别
4.报文鉴别码
5.哈希函数
6.生日攻击

二、安全服务与安全需求

2.1 引入

通信保密可以概况所有的安全需求吗?
不能,信息安全需求有很多种,通信保密只是一种安全需求

我们对现实世界的安全需求提炼和归类,用以下抽象名词来概况典型的安全需求:
保密性( Confidentiality )
完整性(lntegrity )
可用性(Availability )
可认证(Authentication)
抗抵赖/抗否认(Non-repudiation )

2.2 安全需求

1.保密性:防止未经授权的访问

主要指两方面保密安全性:
数据保密安全性(公开密钥、对称密钥)
系统保密安全性(典型实现:访问控制):始于70年代美国国防部﹑主要是操作系统里设置访问控制,通过访问控制矩阵实现

2.完整性((lntegrity) :防止未经授权的修改或篡改

主要指两方面:
数据层面:用加密方法实现
系统层面(典型例子:计算机病毒﹑数据库里的事务):计算机病毒总有这样一个特征通过修改或篡改系统文件把自己加载到系统文件里去,这个叫计算机病毒。用报文鉴别和哈希函数实现事务中断也是对完整性的破坏,原子性特点可以解决

3.可用性(Availability ) :在任何时候合法用户的访问请求应该被满足

指的是业务连续型,在计算机或信息系统里对可用性的威胁
经典例子(拒绝服务攻击DOS或分布式拒绝服务攻击DDOS)
Dos/DDOS目前还是一个大的比较难以解决的问题,是典型的对可用性的威胁

4.可认证(Authentication) :和我通信的人的身份需要得到确认

5.抗抵赖l抗否认( Non-repudiation) :当通信发生之后,通信的任何一方不能抵赖
一种特殊需求,不同于CIA安全属性,通信双方利益不一致

其中可认证性和抗抵赖性是互联网发展产生的新安全需求。

2.3 区分安全服务与安全需求

都是指同一样的5个抽象名词
看问题视觉不一样
密码机制使用者来说是安全需要
密码机制的提供者来说是安全服务

2.4 破坏的安全需求

泄密、流量分析、修改内容、破坏数据包收到的先后顺序、不承认发送过某个报文、冒名顶替、浏览器访问网银web服务器应用的安全需求

三、报文鉴别的安全需求

3.1 报文鉴别的三重含义(安全需求)

1.保护报文的完整性
2.验证发送者的身份
3.抗抵赖:防止报文发送者抵赖(解决争议)

将尝试以下三种方案实现报文鉴别:
1.报文加密
2.报文鉴别码(MAC)
3.哈希函数( HASH)

注意不是所有的方案都能够完整实现上述报文鉴别所包括的三个安全需求:1)需要仔细甄别2)训练密码学思维3)分析过程比结论重要

3.2 报文加密来实现报文鉴别

报文的安全需求不考虑保密性。

报文加密来实现报文鉴别的两种方式:
1.对称密钥加密
2.公开密钥加密

3.3 报文加密之对称密钥

在这里插入图片描述
提供了保密性的安全服务
实现了对发送者身份的验证
知道报文内容在通信过程中没有被篡改

接收到的密文可以解密为明文,但可能难以自动确定报文是否被篡改;
报文应具有合适的结构﹑冗余信息或校验和来检测报文是否被篡改;
在这里插入图片描述
保密性:只有A和B知道k
一定程度的报文鉴别:只能来自A,传输过程中没有被纂改(需要由特定的格式冗余)
不能提供抗抵赖:接收者不能伪造报文,发送者不能否认报文。

3.4 报文加密之公开密钥密码

在这里插入图片描述
a.如果用公钥加密,能不能实现报文鉴别的安全服务?
1.无法实现报文鉴别所包括的任何一项服务–因为任何人都知道公钥
2.仅能提供“保密性”

b.如果用私钥加密,能不能实现报文鉴别的安全服务?
1.不具有“保密性”—因为任何人都知道公钥
2.可以实现报文鉴别所有的安全需求–仍然需要报文的冗余信息确认报文是否被篡改

使用私钥加密可以实现报文鉴别的所有的三种安全服务
1.完整性—传输过程中没被篡改(需要特定的格式的
冗余)
2.证实发送者A的身份(因为只有A知道PRa)
3.抗抵赖(每一方都可以用PUa来验证)–仍然需要报文的冗余信息确认报文是否被篡改

c.先私钥后公钥
在这里插入图片描述
先私钥后公钥,可以实现哪些安全服务?
同时提供保密性和报文鉴别的所有三种安全服务
代价是同时需要两个公钥

总结
a:A→B:E(PUb,M)
保密性:只有B直到PRb
不能进行报文鉴别:每一方都可以用PUb加密报文并声称是A
公钥加密:仅能提供保密性

b:A→B:E(PR,M)
实现报文鉴别所有的三种安全服务
只有A知道PR,用来加密
传输过程中没被篡改(需要特定的格式/冗余)
每一方都可用用PU验证签名(抗抵赖)
私钥加密:报文鉴别的所有三种安全服务

c:A→B:E(PUb,E(PRa,M))
保密性—因为有PUb
完整性、份验证、抗抵赖—因为有PRa
先私钥后公钥加密:保密性、报文鉴别的所有三种安全服务

四、报文鉴别码实现报文鉴别

4.1 报文鉴别码的定义

用加密实现报文鉴别的缺点是什么:开销问题,加密整个报文,相当于用整个报文做了报文鉴别码较难实现自动的

定义:报文鉴别码就是专门用来做报文鉴别的方案

报文鉴别码特性
1.固定长度的比特串(例如128bit 256bit 等)
2.由报文鉴别码算法生成
①算法的输入:报文和密钥
②算法设计类似对称密钥算法,但不可逆
3.附加到报文上用于报文鉴别

接收者收到报文后:
接收者对报文执行相同方向的计算并检查它是否与收到的MAC匹配
确保报文来自声称的发送者且传输过程中没有被篡改

在这里插入图片描述
如图所示的MAC,提供哪些报文鉴别的安全服务
①报文鉴别的完整性
②发送者身份验证

为什么用MAC?
有时候只需要报文鉴别
有时候需要长时间保存数据的完整性(例如档案)

4.2 报文鉴别码的用法

1.用法1
在这里插入图片描述
2.用法2
在这里插入图片描述
3.用法3
在这里插入图片描述
小结:
1.只能实现报文鉴别的第1、2项安全服务;
2.不能实现抗抵赖

4.3 报文鉴别码的性质

1.MAC是密码性质的校验和,表示为:Ck(M)
压缩可变长度的报文M
使用密钥K
输出固定长度的报文鉴别码

2.是一个多对一的函数
可能许多报文有相同的MAC
但是找到这些MAC值相同的报文是非常困难的

4.4 报文鉴别码MAC的要求

对MAC的攻击:
能够找到M’≠M,但是:Ck(M’)=Ck(M)

需要MAC满足如下要求:
①不能通过一个报文和它的MAC,找到另一条有相同MAC的报文
②MAC应该是均匀分布的
③MAC应该取决于报文的每一位

如何构造MAC算法
在这里插入图片描述

五、哈希函数

5.1 定义与性质

1.定义:哈希函数是将任意长度的报文压缩到固定长度的二进制串: h=H(M)

a.通常假设哈希函数是公开的,没有密钥

b.注意:MAC使用对称密钥,哈希函数不是加密函数

c.用于检测报文是否被更改->保护完整性

d.能够通过多种不同的方式应用于报文

e.经常用于创建数字签名,注意,哈希函数很少单独使用,通常是和私钥签名结合起来构造数字签名

2.性质:实质上是生成输入文件/报文/数据的指纹

a.h=H(M)
压缩可变长度的报文M
生成固定长度的指纹

b.找到碰撞,构成对哈希的攻击:找到M’≠M,但 H(M’)=H(M)

5.2 对哈希函数的要求

1.可用于任意大小的报文
2.生成固定长度的输出h
3.很容易计算报文M的哈希值:h=H(M)

4.单向性:已知 h,不能计算得到x,使得H(x)=h

5.弱抗碰撞性:给定x,找到y,使得H(y)=H(x)是计算上不可行的

6.强抗碰撞性:找到任意的x, y,使得H(y)=H(x)是计算上不可行的

5.3 哈希函数的应用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.4 哈希函数的算法实现

哈希函数实现
1.现将报文分组,报文分组异或运算的结果作为哈希值(可以防止随机的报文比特错,但不够安全

2.需要有密码性质的安全性更高的函数

3.哈希算法能够也可以用对称密钥加密算法的CBC模式来构造实现,但是缺点是哈希值短,因为明文分组长度、密文长度限制

4.哈希算法一般用专门设计的哈希算法

5.5 哈希函数的安全性讨论

在这里插入图片描述
关于生日攻击的小结:
在这里插入图片描述

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

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

相关文章

2023移动云大会 | “六大”服务承诺 全力做优“心级服务”

4月25日,以“云擎未来 智信天下”为主题的2023移动云大会在苏州金鸡湖国际会议中心举办,众多政府领导、院士专家、知名企业客户与合作伙伴高层等数千名嘉宾齐聚一堂。 大会期间,移动云深入践行“为国建云”的使命,推出“六大”服…

vdo磁盘管理

在 storagesrv 上新加一块 10G 磁盘;  创建 vdo 磁盘,并开启 vdo 磁盘的重删和压缩;  名字为 vdodisk,大小为 150G,文件系统为 ext4;  并设置开机自动挂载。挂载到/vdodata。 1.lsblk 查看自己添加的硬盘名称 2.安装vdo软件包 yum -y install vdo…

卡尔曼滤波原理及代码

目录 一.简介 二.原理 1.先验估计原理 2.后验估计原理 3.总结 三.示例 一.简介 卡尔曼滤波(Kalman filtering)是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法,它可以在任意…

Vue-全局过滤器以及进阶操作

前言 上篇文件讲述了,Vue全局过滤器的基本使用:Vue过滤器的基本使用 本篇将延续上文,讲述vue中过滤器的进阶操作 过滤器传参 如果有一天,多个地方使用过滤器,而且需要传递参数,那么可以这么写 多个过滤…

《Netty》从零开始学netty源码(四十三)之PoolChunk.allocate

allocate PoolChunk分配内存空间时可调用allocate方法来分配,具体的源码过程如下: 从代码中可以看出会根据分配的内存大小决定分配的是subpage还是normal的page,接下来具体分析以下方法: allocateSubpageallocateRuninitBuf …

Unity|| 如何把生存类游戏设计得更优秀

你是否曾经玩过这样的生存类游戏: 1、通过最初阶段后,你觉得游戏变得越来越简单 2、游戏的重点从生存转移到了基地建设或其他方面 诸如此类,很大程度上是由于糟糕的难度曲线所致。包括很多(非常受欢迎的)生存游戏都…

Redis——缓存更新策略

业务场景: 低一致性需求:使用内存淘汰机制。例如店铺类型的查询缓存,很少修改 高一致性需求:主动更新,并以超时剔除作为兜底方案。例如店铺详情查询的缓存,经常修改 主动更新策略 实际开发中最常用的还是…

51单片机(三)独立按键控制LED

❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要…

【SpringMVC源码三千问】DispatcherServlet源码解析

DispatcherServlet#doDispatch() 是 SpringMVC 处理请求分发的方法,只要是 spring mvc 处理的 http 请求,都会经过 DispatcherServlet 的请求分发处理,从而调用相应的 handler method。 DispatcherServlet#doDispatch() 源码分析&#xff1a…

PCL点云库(3) — common模块

目录 3.1 common模块中的头文件 3.2 common模块中的基本函数 (1)angle角度转换 (2)distance距离计算 (3)random随机数生成 (4)sping扩展模块 (5)time获…

请问你见过吐代码的泡泡吗(冒泡排序)

🤩本文作者:大家好,我是paperjie,感谢你阅读本文,欢迎一建三连哦。 🥰内容专栏:这里是《算法详解》,笔者用重金(时间和精力)打造,将算法知识一网打尽,希望可以…

现场工程师救火-UEFI(BIOS)节能设置导致金牌服务器只跑出龟速

近期协助出现场,解决了一个非常典型的UEFI 启动参数配置不当导致的服务器降效案例。错误的节能参数配置,导致价值几十万的服务器变成龟速服务器,并造成严重的生产事故。 1. 现象 朋友公司近期准备升级2010年就部署的服务器组,新…

vue移动端项目通用技巧

目录 一、配置文件 1.1、取消eslint校验 1.2、基础文件引入 1.3、iconfont引入svg使用 1.4、css的简化应用 1.5、内容溢出用省略号替代 1.6、非组件库的底部导航跳转 1.7、基础版轮播图 一、配置文件 1.1、取消eslint校验 在vue.config.js文件里: const …

【论文阅读】Robustness in Reinforcement Learning

原文为 Trustworthy Reinforcement Learning Against Intrinsic Vulnerabilities: Robustness, Safety, and Generalizability,是 2022 年 CMU 发表的综述文章。 本文主要关注文章的第二部分即鲁棒性 1. 概述 鲁棒性主要解决的问题是提高策略在面对不确定性或者对抗…

Linux:文件查看:《cat》《more》《less》《head》《tail》《wc》《grep》使用方法

同样是查看为什么要有这么多查看方法??? 因为他们的用法和扩功能肯定不一样,选择与你需要匹配的一条命令可以节省时间的同时更快速 cat 文件 可以直接查看文件内的内容 直接可以查看文件内的内容 要直接看更多的文件以空格隔开的…

AI大模型+低代码,在项目管理中的应用实践

随着ChatGPT大火之后,新的AI技术和模型被证明已经具备的很高的使用价值。 诸如Copilot、Midjourney、notion等产品通过AI的加持,已经让用户能够充分地在应用层面感受到了便利性。 原本几天的工作通过AI模型,可能只需要1分钟就能完成。可以大…

面试腾讯T7,被按在地上摩擦,鬼知道我经历了什么?

时间总是过得飞快,金三银四已经过去了,人们已经开始备战互联网大厂2023年的秋招计划了。刚好最近我有个小徒弟去腾讯面试的时候挂掉了,感觉被技术吊打。根据他的描述我复盘了一下,希望能给备战秋招的朋友一些帮助。 腾讯面试的内…

Leetcode——485. 最大连续 1 的个数

💯💯欢迎来到的热爱编程的小K的Leetcode的刷题专栏 文章目录 1、题目2、滑动窗口3、一次遍历(官方题解) 1、题目 题目:给定一个二进制数组 nums , 计算其中最大连续 1 的个数。 示例 1: 输入:nums [1,1,0…

生成对抗网络pix2pixGAN

1.介绍 论文:Image-to-Image Translation with Conditional Adversarial Networks 论文地址:https://arxiv.org/abs/1611.07004 图像处理的很多问题都是将一张输入的图片转变为一张对应的 输出图片,比如灰度图、彩色图之间的转换、图像自动…

【JavaEE】SpringMVC_day02

今日内容 完成SSM的整合开发能够理解并实现统一结果封装与统一异常处理能够完成前后台功能整合开发掌握拦截器的编写 1,SSM整合 前面我们已经把Mybatis、Spring和SpringMVC三个框架进行了学习,今天主要的内容就是把这三个框架整合在一起完成我们的业务功…