【网络安全】第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、小结

相关推荐
小春学渗透27 分钟前
Day107:代码审计-PHP模型开发篇&MVC层&RCE执行&文件对比法&1day分析&0day验证
开发语言·安全·web安全·php·mvc
落樱坠入星野1 小时前
拿下阿里云之后如何在本地运行镜像进行分析
经验分享·安全·网络安全·阿里云·云计算
iSee8571 小时前
ArcGIS地理空间平台 manager 任意文件读取漏洞复现
安全
超栈2 小时前
HCIP(11)-期中综合实验(BGP、Peer、OSPF、VLAN、IP、Route-Policy)
运维·网络·网络协议·计算机网络·web安全·网络安全·信息与通信
Wh1teR0se2 小时前
XSS漏洞--常用payload及绕过
web安全·网络安全·xss
丶21362 小时前
【鉴权】深入了解 Cookie:Web 开发中的客户端存储小数据
前端·安全·web
weixin_518285053 小时前
深度学习笔记11-神经网络
笔记·深度学习·神经网络
龙鸣丿6 小时前
Linux基础学习笔记
linux·笔记·学习
Nu11PointerException8 小时前
JAVA笔记 | ResponseBodyEmitter等异步流式接口快速学习
笔记·学习
_.Switch8 小时前
高级Python自动化运维:容器安全与网络策略的深度解析
运维·网络·python·安全·自动化·devops