信息安全概论复习笔记 第七章 报文鉴别与hash函数

安全服务/安全需求
通信保密可以概况所有的安全需求吗? 不能。
信息安全需求有很多种,通信保密只是一种安全需求
我们对现实世界的安全需求提炼和归类,用以下抽象名词来概况典型的安全需求:
保密性(Confidentiality)
完整性(Integrity)
可用性(Availability)
可认证(Authentication)
抗抵赖/抗否认(Non-repudiation)

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

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

可用性(Availability):在任何时候合法用户的访问请求应该被满足
指的是业务连续型,在计算机或信息系统里对可用性的威胁
经典例子(拒绝服务攻击DOS或分布式拒绝服务攻击DDOS) Dos/DDOS目前还是一个大的比较难以解决的问题,是典型的对可用性的威胁

5个安全需求的发展
image.png

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

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

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

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

报文鉴别的安全需求
报文鉴别的三重含义(安全需求):
1)保护报文的完整性
2)验证发送者的身份
3)抗抵赖:防止报文发送者抵赖(解决争议)
将尝试以下三种方案实现报文鉴别:
报文加密
报文鉴别码(MAC)
哈希函数(HASH)
注意不是所有的方案都能够完整实现上述报文鉴别所包括的三个安全需求:
1)需要仔细甄别
2)训练密码学思维
3)分析过程比结论重要

报文加密来实现报文鉴别
注意区分概念: Message vs Plaintext
报文的安全需求不考虑保密性
image.png
报文加密实现报文鉴别的两种方式:
①对称密钥加密
②公开密钥加密

报文加密—对称密钥
image.png
提供了保密性的安全服务,还能提供哪些报文鉴别的安全服务呢?
实现了对发送者身份的验证 知道报文内容在通信过程中没有被篡改
另外需要注意的是: 接收到的密文可以解密为明文,但可能难以自动确定报文是否被篡改:
报文应具有合适的结构、冗余信息或校验和来检测报文是否被篡改
A B:E(K,M),或记作EK(M)
保密性 --只有A和B知道K
一定程度的报文鉴别 —只能来自A —传输过程中没被篡改 (需要有特定的格式冗余
不能提供抗抵赖—接收者不能伪造报文 —发送者不能否认报文

报文加密—公开密钥密码
image.png
如果用公钥加密,能不能实现报文鉴别的安全服务?
①无法实现报文鉴别所包括的任何一项服务–因为任何人都知道公钥
②仅能提供“保密性”
image.png
如果用私钥加密,能不能实现报文鉴别的安全服务?
①不具有“保密性”—因为任何人都知道公钥
②可以实现报文鉴别所有的安全需求 --任然需要报文的冗余信息确认报文是否被篡改
使用私钥加密可以实现报文鉴别的所有的三种安全服务
完整性—传输过程中没被篡改(需要特定的格式/冗余)
证实发送者A的身份(因为只有A知道PRa)
抗抵赖(每一方都可以用PUa来验证) --仍然需要报文的冗余信息确认报文是否被篡改

报文加密—先私钥后公钥
image.png
先私钥后公钥,可以实现哪些安全服务?
同时提供保密性和报文鉴别的所有三种安全服务
代价是同时需要两个公钥

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

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

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

报文鉴别码的定义
用加密实现报文鉴别的缺点?
开销问题:加密整个报文,相当于用整个报文做了报文鉴别码 较难实现自动的
报文鉴别码就是专门用来做报文鉴别的方案

报文鉴别码MAC
报文鉴别码 固定长度的比特串(例如128bit、256bit等)
由报文鉴别码算法生成
①算法的输入:报文和密钥
②算法设计类似对称密钥算法,但不可逆
附加到报文上用于报文鉴别
接收者收到报文后:
接收者对报文执行相同方向的计算并检查它是否与收到的MAC匹配 (做相同运算,比较mac)
确保报文来自声称的发送者且传输过程中没有被篡改
image.png
报文密钥传输加上计算的mac,接收者使用key加密获取mac对比。
如图所示的MAC:提供哪些报文鉴别的安全服务?
①报文鉴别的完整性;
②发送者身份验证

为什么用MAC?
有时候只需要报文鉴别
有时候需要长时间保存数据的完整性(例如档案)
怎么保证计算机系统的安全性?防止病毒入侵?
请同学们注意MAC不是数字签名

报文鉴别码的用法1
image.png
A B :M||C(K,M)
该方案实现的安全服务:
实现报文鉴别的两种安全服务:
①完整性
②验证发送者身份 不能抗抵赖(因为使用对称密钥) --K是A和B共享的秘密

报文鉴别码的用法2
image.png
A B :E(K2,[M||C(K1,M)])
该方案实现的安全服务:
实现报文鉴别的两种安全服务(A和B共享秘密密钥K1):
①完整性
②验证发送者身份 不能抗抵赖(因为使用对称密钥)
另外实现保密性:A和B共享秘密密钥K2
报文鉴别码的用法3
image.png
A B :E(K2,M)||C(K1,E(K2,M))
该方案实现的安全服务:
报文鉴别(A和B共享秘密密钥K1):
①完整性
②验证发送者身份 不能抗抵赖(因为使用对称密钥)
另外实现保密性:A和B共享秘密密钥K2

报文鉴别码小结
①只能实现报文鉴别的第1、2项安全服务;
②不能实现抗抵赖

报文鉴别码性质
MAC性质: MAC是密码性质的校验和,表示为:CK(M)

  • 压缩可变长度的报文M;
  • 使用密钥K;
  • 输出固定长度的报文鉴别码;

是一个多对一的函数

  • 可能许多报文有相同的MAC;
  • 但是找到这些MAC值相同的报文是非常困难的;

MAC的要求
对MAC的攻击:
能够找到M’≠M,但是:CK(M’)=CK(M)
需要MAC满足如下要求:
①不能通过一个报文和它的MAC**,找到另一条有相同MAC的报文**;
② MAC应该是均匀分布的;
③MAC应该取决于报文的每一位;

如何构造MAC算法
简单构造MAC算法的方法:
可以使用分组密码的CBC(Cipher Block Chaining)模式将最后一个密文快作为MAC;
DAA(DATA Authentication Algorithm)报文鉴别码算法就是基于DES-CBC,是一个早期的MAC生成算法:
①令IV=0,并用比特0填充最后一个明文块;
②在CBC模式下使用DES加密报文;
③将最后一个密文块作为MAC值或者最后一个块的最左边的M位(16<=M<=64);
最终得到的MAC太短,不够安全
image.png

哈希函数的定义与性质
定义:哈希函数是将任意长度的报文压缩到固定长度的二进制串:h=H(M)
通常假设哈希函数是公开的,没有密钥
注意:MAC使用对称密钥; 注意:哈希函数不是加密函数
用于检测报文是否被更改 保护完整性
能够通过多种不同的方式应用于报文
经常用于创建数字签名
请注意:哈希函数很少单独使用,通常是和私钥签名结合起来构造数字签名

说明三件事:
1.报文M来自A 发送方身份验证
2.报文没有被篡改过 完整性
3.抗抵赖 发送者的抗抵赖
image.png
可以理解为摘要
是更加实用的做法,不对整个Message签名,对m做hash然后签名

如果对哈希函数进行攻击,什么情况下对哈希函数构成攻击?
哈希函数的性质
实质上是生成输入文件/报文/数据的指纹
•h=H(M)
•压缩可变长度的报文M
•生成固定长度的指纹
可以利用找到碰撞,构成对哈希的攻击 找到M’≠M,但H(M’)=H(M)

对哈希函数的要求
可用于任意大小的报文
生成固定长度的输出 h
很容易计算报文M的哈希值:h=H(M)
已知h,不能计算得到x,使得H(x)=h
•单向性
给定x,找到y,使得H(y)=H(x)是计算上不可行的
•弱抗碰撞性
找到任意的x,y,使得H(y)=H(x)是计算上不可行的
•强抗碰撞性

哈希函数的应用
image.png
image.png
image.png
数字签名的完整示例
带签名加密封装
公私钥加密对称密钥
公私钥加密做签名
image.png

哈希函数的算法实现
哈希函数实现
1.现将报文分组,报文分组异或运算的结果作为哈希值 --可以防止随机的报文比特错,但不够安全
2.需要有密码性质的安全性更高的函数
3.哈希算法能够也可以用对称密钥加密算法的CBC模式来构造实现,但是缺点是哈希值短,因为明文分组长度、密文长度限制
4.哈希算法一般用专门设计的哈希算法
image.png

经典的哈希算法
MD5
SHA-1
RIPEMD-160

哈希函数的安全性讨论
像分组密码一样,穷举攻击是最好的选择
–前提是算法没有漏洞 暴力破解
①穷举攻击的平均尝试次数是 2的m/2次方:其中m是输出哈希值的bit数量
②目前128比特哈希安全性较弱,160比特甚至更长的哈希值更好 注意分组密码的穷举攻击的平均尝试次数是½*2m,其中m是密钥长度

生日攻击
穷举攻击的平均尝试次数是 2的m/2次方:其中m是输出哈希值的bit数量

image.png
image.png
image.png
image.png

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值