【网络安全】第3讲 消息认证技术(笔记)

一、认证技术概述

1、网络常见攻击


2、对信息网络安全的攻击有(两种类型)

(1)被动攻击 ------ 加密技术

通过侦听和截取手段获取数据

(2)主动攻击 ------ 认证技术

通过伪造、重放、篡改、乱序等手段改变数据。


3、认证(Authentication)

  • 指通过某种手段,完成对某种信息的确认,保证和其声称的一样。
  • 通俗地说,就是验明正身,防止有人冒充。
  • 认证是防止主动攻击的重要技术。

(1)认证的种类

A. 身份认证(Identification authentication)
  1. 是用户向系统出示自己身份证明的过程;
  2. 是系统查核用户身份证明的过程。
  3. 认证技术
  • 基于秘密信息的身份认证
  • 基于信任物体的身份认证
  • 基于生物特征的身份认证

基于秘密信息的身份认证 ------ 根据用户独知的东西来证明身份

基于信任物体的身份认证 ------ 根据用户所拥有的东西来证明身份

基于生物特征的身份认证 ------ 根据用户独特的体征来证明身份


B. 消息认证(Message authentication)

又称为鉴别、确认,它是验证所收到的消息确实是来自真正的发送方且未被修改的消息,它也可验证消息的顺序和及时性。


C. 行为认证(Behavior authentication)

利用用户行为特征对其身份进行认证


D. 权限认证(Permission authentication)

一般指根据系统设置的安全规则或者安全策略,对用户身份进行认证,并且用户可以访问并且只能访问自己被授权的资源,不多不少。

权限认证的要素:角色、权限、用户


(2)消息认证的内容


二、加密实现消息认证

1、消息认证的实现方法


2、消息认证的内容


(1)报文源的鉴别

A. 对称密码体制的鉴别方法

B. 公钥密码体制的鉴别方法

(2)报文宿的鉴别

A. 对称密码体制的鉴别方法

B. 公钥密码体制的鉴别方法

(3)报文时间性的鉴别

A. 初始向量法

B. 时间参数法

C. 随机数法

A 讲 B 动态产生的随机数 RN 加入报文中,然后加密发送给 B。


(4)报文内容的鉴别


三、报文鉴别实现信息认证

1、Message Authentication Code,MAC

也叫消息认证码

利用密钥来生成一个固定长度的短数据块,并将该数据块附加在消息之后。

其中,MAC 为定长的认证符。


2、要求

MAC 函数是多对一函数


3、基于 DES 的报文鉴别码

使用最广泛的 MAC 算法之一

采用 CBC 工作模式,只保留最后一个加密分组,作为 DAC(数据认证码),也可以只取 M 位。


4、消息认证

(1)若接收方计算的 MAC 与收到的 MAC 匹配

  • 接收方可以相信消息未被修改
  • 接收方可以相信消息来自真正的发送方
  • 如果消息中含有序列号(如 HDLC,X.25,TCP),那么接收方可以相信消息顺序是正确的。

(2)MAC 的特点

  • MAC 函数与加密的区别之一是,MAC 算法不要求可逆性。
  • MAC 不能提供数字签名。

5、报文鉴别 VS 常规加密


四、报文摘要实现消息认证

1、Message Digest,MD

是报文鉴别码的一个变种。

这个散列函数,又称哈希(Hash)函数,也称为指纹函数、杂凑函数、压缩函数... ...

(1)特点

  1. 从一个报文生成一个 MD 代码是容易的,但反过来从一个代码生成一个报文则实际上是不可能的。
  2. 消息中的任何一位或多位的变化都将导致该散列值的变化,即保证不同的报文不会得出同样的 MD 代码。

2、散列函数

  • 没有正式的数学基础,而是依靠算法的复杂性产生随机的输出来满足对其功能的要求。
  • 散列函数是公开的,一般不涉及保密密钥。
  • 用于完整性校验和提高数字签名的有效性。

3、对 Hash 函数的要求

  • H(x) 可应用于任意大小的消息
  • H(x) 能产生定长的输出
  • 对任何给定的 x,计算 H(x) 比较容易。
  • 对任何给定的 hash 值 h,找到满足 H(x)=h 的 x 在计算上是不可行的(单向性)
  • 抗碰撞性
  1. 弱抗碰撞性:对任何给定的分组 x,找到满足 y≠x,且 H(y)=H(x) 的 y,在计算上是不可行的。
  2. 强抗碰撞性:找到任何满足 H(x)=H(y) 的偶对 (x, y) 在计算上是不可行的。
  • 映射分布均匀性和差分分布均匀性(输入中每一比特信息,应尽量均匀的反映到输出的每一比特上,输出的每一比特,都是输入中尽可能多比特位的信息一起作用的结果)

4、散列函数的通用结构


5、压缩函数的构造原理

  • 专门设计的压缩函数
  • 基于分组密码算法的压缩函数
  • 基于公钥密码算法的压缩函数
  • 基于数学基础的压缩函数

6、最常用的散列函数

(1)MD5 算法

生成的是 128 位的哈希值。

(2)SHA-1 算法

生成的是 160 位的哈希值。


7、报文摘要的破解


8、散列函数 VS 报文鉴别码

  • 报文鉴别码需要使用对称密钥;散列函数不需要使用密钥。
  • 报文鉴别码是对全部数据进行加密,因此计算速度慢;散列函数是一种直接产生鉴别码的方法,因此计算速度快。
  • 报文鉴别码抵抗攻击的方法是,增加攻击者破解密钥的难度;散列函数抵抗攻击的方法是,增加攻击者找到碰撞的难度。

9、小结

  • Hash 函数把变长信息映射到定长信息
  • Hash 函数不具备可逆性
  • Hash 函数速度较快
  • Hash 函数可用于消息认证
  • Hash 函数可提高数字签名的有效性

五、数字签名体制

1、报文鉴别码和报文摘要的局限性

  • 用于保护通信双方免受第三方攻击
  • 无法防止通信双方的相互攻击
  1. 报文宿方伪造报文
  2. 报文源方否认已发送的报文

2、引入数字签名,是传统的笔迹签名的模拟

如:公钥密码实现数字签名体制


3、传统签名的基本特点

  • 与被签的文件在物理上不可分割
  • 签名者不能否认自己的签名
  • 签名不能被伪造
  • 容易被验证

4、数字签名的基本要求

  • 能与所签文件 "绑定"
  • 签名者不能否认自己的签名
  • 签名不能被伪造
  • 容易被验证

5、数字签名需要满足的条件

  • 收方条件:接收者能够核实和确认发送者对消息的签名,及其日期时间,并能认证签名时刻的内容,但不能伪造对消息者的签名。
  • 发方条件:发送者事后不能否认和抵赖对消息的签名。
  • 公证条件:公证方能确认收方的信息,做出仲裁,但不能伪造这一过程。
  • 数字签名体制的安全性(在于从 M 和其签名 s 难以推出密钥 k 或伪造一个 M',使 M' 和 s 可被证实是真)。
  • 签名密钥是秘密的,只有签名人掌握。
  • 验证算法是公开的。

6、数字签名的分类

(1)按照安全性

  • 无条件安全的数字签名
  • 计算上安全的数字签名

(2)按照可签名次数

  • 一次性的数字签名
  • 多次性的数字签名

(3)按照签名方式

A. 直接数字签名:只涉及通信双方(A <---> B)
a. 缺点

发送方要抵赖发送某一消息时,可能会声称其私有密钥丢失或被窃,从而他人伪造了他的签名。

b. 改进
  • ① 要求被签名的信息包含一个时间戳(日期与时间);
  • ② 要求将已暴露的密钥报告给一个授权中心。

B. 仲裁数字签名:需涉及到可信赖的仲裁者(A <---> X <---> B)

仲裁者在这一类签名模式中扮演敏感和关键的角色,所有的参与者必须极大地相信这一仲裁机制工作正常。


7、几种数字签名体制

(1)RSA 数字签名体制

  • 用私钥签名,用公钥验证
  • 缺点:分组长度太大,运算代价高,尤其速度较慢;产生密钥很麻烦

(2)ELGamal 数字签名体制

(3)DSS 数字签名体制

采用的算法是 DSA(Schnorr 和 ELGamal 的变种)它只是一个签名系统主要用于与美国政府做生意的公司。


8、数字签名中的问题与改进

(1)签字后的文件可能被接收方重复使用

改进:加入特有凭证(如时间戳)

(2)安全的密钥越来越长

  • 问题:①运算速度较慢;②密钥存储和管理问题
  • 改进:设计新的算法(例如:ECC)

(3)公钥算法不宜用于长文件的加密

改进:先哈希,再加密。


数字签名作为电子商务的应用技术,越来越得到人们的重视包括普通签名和特殊签名(盲签名、代理签名、群签名、不可否认签名、门限签名等)。


9、小结

相关推荐
刘婉晴3 小时前
【信息安全工程师备考笔记】第三章 密码学基本理论
笔记·安全·密码学
向哆哆5 小时前
Java 安全:如何防止 DDoS 攻击?
java·安全·ddos
晓数5 小时前
【硬核干货】JetBrains AI Assistant 干货笔记
人工智能·笔记·jetbrains·ai assistant
我的golang之路果然有问题5 小时前
速成GO访问sql,个人笔记
经验分享·笔记·后端·sql·golang·go·database
lwewan5 小时前
26考研——存储系统(3)
c语言·笔记·考研
星哥说事5 小时前
使用开源免费雷池WAF防火墙,接入保护你的网站
web安全·开源
浩浩测试一下5 小时前
计算机网络中的DHCP是什么呀? 详情解答
android·网络·计算机网络·安全·web安全·网络安全·安全架构
搞机小能手6 小时前
六个能够白嫖学习资料的网站
笔记·学习·分类
nongcunqq6 小时前
爬虫练习 js 逆向
笔记·爬虫
汐汐咯7 小时前
终端运行java出现???
笔记