一、认证技术概述
1、网络常见攻击
2、对信息网络安全的攻击有(两种类型)
(1)被动攻击 —— 加密技术
通过侦听和截取手段获取数据
(2)主动攻击 —— 认证技术
通过伪造、重放、篡改、乱序等手段改变数据。
3、认证(Authentication)
- 指通过某种手段,完成对某种信息的确认,保证和其声称的一样。
- 通俗地说,就是验明正身,防止有人冒充。
- 认证是防止主动攻击的重要技术。
(1)认证的种类
A. 身份认证(Identification authentication)
- 是用户向系统出示自己身份证明的过程;
- 是系统查核用户身份证明的过程。
- 认证技术
- 基于秘密信息的身份认证
- 基于信任物体的身份认证
- 基于生物特征的身份认证
基于秘密信息的身份认证 —— 根据用户独知的东西来证明身份
基于信任物体的身份认证 —— 根据用户所拥有的东西来证明身份
基于生物特征的身份认证 —— 根据用户独特的体征来证明身份
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)特点
- 从一个报文生成一个 MD 代码是容易的,但反过来从一个代码生成一个报文则实际上是不可能的。
- 消息中的任何一位或多位的变化都将导致该散列值的变化,即保证不同的报文不会得出同样的 MD 代码。
2、散列函数
- 没有正式的数学基础,而是依靠算法的复杂性产生随机的输出来满足对其功能的要求。
- 散列函数是公开的,一般不涉及保密密钥。
- 用于完整性校验和提高数字签名的有效性。
3、对 Hash 函数的要求
- H(x) 可应用于任意大小的消息
- H(x) 能产生定长的输出
- 对任何给定的 x,计算 H(x) 比较容易。
- 对任何给定的 hash 值 h,找到满足 H(x)=h 的 x 在计算上是不可行的(单向性)
- 抗碰撞性
- 弱抗碰撞性:对任何给定的分组 x,找到满足 y≠x,且 H(y)=H(x) 的 y,在计算上是不可行的。
- 强抗碰撞性:找到任何满足 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、报文鉴别码和报文摘要的局限性
- 用于保护通信双方免受第三方攻击
- 无法防止通信双方的相互攻击
- 报文宿方伪造报文
- 报文源方否认已发送的报文
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)公钥算法不宜用于长文件的加密
改进:先哈希,再加密。
数字签名作为电子商务的应用技术,越来越得到人们的重视包括普通签名和特殊签名(盲签名、代理签名、群签名、不可否认签名、门限签名等)。