认证与访问控制(崔永泉)认证第二讲鉴别协议.ppt
文本预览下载声明
* 5.1鉴别和密钥交换协议的核心问题 5.2采用对称密码的鉴别机制 5.3采用公开密码算法的机制 5.4 采用密码校验函数的机制 5.5 密码交换协议 5 鉴别和密钥交换协议 * 5.1核心问题 基于对称密码算法的鉴别依靠一定协议下的数据加密处理。通信双方共享一个密钥(通常存储在硬件中),该密钥在询问—应答协议中处理或加密信息交换。 * 5.1鉴别和密钥交换协议的核心问题 在设计认证协议时特别需要注意的问题,并给出抵抗这些攻击的具体设计策略。 鉴别和密钥交换协议的核心问题有两个: 保密性 时效性 为了防止伪装和防止暴露会话密钥,基本鉴别与会话密码信息必须以保密形式通信。这就要求预先存在保密或公开密钥供实现加密使用。 第二个问题也很重要,因为涉及防止消息重放攻击。 * 5.1 核心问题:重放 常见的消息重放 攻击形式有: 1、简单重放:攻击者简单复制一条消息,以后在重新发送它; 2、可被日志记录的复制品:攻击者可以在一个合法有效的时间窗内重放一个带时间戳的消息; 3、不能被检测到的复制品:这种情况可能出现,原因是原始信息已经被拦截,无法到达目的地,而只有重放的信息到达目的地。 4、反向重放,不做修改。向消息发送者重放。当采用传统对称加密方式时,这种攻击是可能的。因为消息发送者不能简单地识别发送的消息和收到的消息在内容上的区别。 * 5.1核心问题重放:非重复值的使用 1)序列号:计数的策略:对付重放攻击的一种方法是在认证交换中使用一个序数来给每一个消息报文编号。仅当收到的消息序数顺序合法时才接受之。但这种方法的困难是要求双方必须保持上次消息的序号。 2)时间戳: A接受一个新消息仅当该消息包含一个时间戳,该时间戳在A看来,是足够接近A所知道的当前时间;这种方法要求不同参与者之间的时钟需要同步 3)验证者发送随机值(如询问):不可预测、不重复 * 时间戳 在网络环境中,特别是在分布式网络环境中,时钟同步并不容易做到 一旦时钟同步失败 要么协议不能正常服务,影响可用性(availability),造成拒绝服务(DOS) 要么放大时钟窗口,造成攻击的机会 时间窗大小的选择应根据消息的时效性来确定 * 5.1 询问/应答方式(Challenge/Response) A期望从B获得一个消息 首先发给B一个随机值(challenge) B收到这个值之后,对它作某种变换,并送回去 A收到B的response,希望包含这个随机值 在有的协议中,这个challenge也称为nonce 可能明文传输,也可能密文传输 这个条件可以是知道某个口令,也可能是其他的事情 变换例子:用密钥加密,说明B知道这个密钥;简单运算,比如增一,说明B知道这个随机值 * 5.1相互鉴别协议 在理论上,相互鉴别可通过组合两个单向鉴别交换协议来实现。然而,这种组合需要被仔细地考察,因为有可能这样的组合易受窃听重放攻击。 另外,设计协议消息数比相应的单向交换协议的消息数的两倍少得多的相互鉴别交换协议是可能的。 因此,由于安全性和性能的原因,相互鉴别交换协议必须为此目的而特别地进行设计。 * 5.1鉴别和密钥交换协议的核心问题 5.2采用对称密码的鉴别机制 5.3采用公开密码算法的机制 5.4 采用密码校验函数的机制 5.5 密码交换协议 5 鉴别和密钥交换协议 * * 4.5 MD5算法 * 4.5 MD5描述 Merkle于1989年提出hash function模型 Ron Rivest于1990年提出MD4 1992年, Ron Rivest 完成MD5 (RFC 1321) 在最近数年之前,MD5是最主要的hash算法 现行美国标准SHA-1以MD5的前身MD4为基础 * 4.5 MD5描述 输入:任意长度的报文 输入分组长度:512 bit 输出:128 bit 报文 * * 4.5 MD5描述-step 1 附加长度值 对报文进行填充,使其比特数与448模512同余,即填充长度为512的整数倍减去64 填充方法:填充比特串的最高位为1,其余各位均为0 * 4.5 MD5描述-step 2 附加长度值 |M2|为512的倍数: Y0,Y1,…,YL-1 * 4.5 MD5描述-step 3 初始化MD缓存 MD为128bit,用于存放散列函数的中间及最终结果 MD可表示为4个32bit的寄存器(A,B,C,D),初始化如下: * 4.5 MD5描述-step 4 压缩:4个循环的压缩算法 * 4.5 MD5描述-step 5 输出 * 4.5 HMD5算法 * 单个512bit分组的MD5处理过程(MD5压缩函数) 当前正在处 理的512 比特分组 128bit 的缓存值 更新缓存 T[0,1…64] * 每步操作形式 * *
显示全部