《网络安全11消息认证码课件.pptx》由会员分享,可在线阅读,更多相关《网络安全11消息认证码课件.pptx(40页珍藏版)》请在三一办公上搜索。
1、,单纯的加解密算法无法保证抵抗下述攻击伪装内容修改顺序修改计时修改发送方否认接收方否认,不属于机密性范畴,属于数据完整性范畴,Chapter 12 消息认证码,计算机与网络安全,消息认证需求消息认证函数消息认证码基于Hash函数的MAC基于分组密码的MAC:DAA和CMAC,2022/12/22,西安电子科技大学计算机学院,3,2022/12/22,西安电子科技大学计算机学院,4,12.1 对认证的需求,可能的攻击:1. 泄密:将消息透漏给未授权方2. 传输分析:分析通信双方的通信模式3. 伪装:欺诈源向网络中插入一条消息4. 内容修改:对消息内容的修改5. 顺序修改:对通信双方消息顺序的修改
2、6. 计时修改:对消息的延时和重播7. 发送方否认:对消息否认8. 接收方否认:对消息否认,2022/12/22,西安电子科技大学计算机学院,5,消息认证:验证所收到的消息确实是来自真实的发送方且未被修改的消息,它也可验证消息的顺序和及时性。数字签名:是一种认证技术,其中的一些方法可用来抗发送方否认攻击。(接收者可验证但不能伪造),消息认证函数是实现消息认证的基础其工作原理和通信领域常见的差错控制编码函数类似,都是通过对原始报文进行某种运算,产生一个定长的输出,这个输出是原始报文的“冗余信息”,即消息认证码,有时也被称为密码校验和。,2022/12/22,西安电子科技大学计算机学院,6,常用的
3、消息认证函数包括如下两类: 利用加密函数作为消息认证函数:这种方法把原始报文加密后产生的密文作为它的消息认证码; 专用的消息认证函数:以原始报文和密钥作为输入,产生定长的输出,这个输出就是原始报文的消息认证码。可以利用运行于CBC模式下的常规加密算法或带密钥的Hash函数(HMAC)来构造消息认证函数。,2022/12/22,西安电子科技大学计算机学院,7,2022/12/22,西安电子科技大学计算机学院,8,12.2 认证函数,两层:产生认证符 验证产生认证符的函数类型:消息加密:消息的密文作为认证符。消息认证码:消息和密钥的公开函数,产生定长的值作为认证符。 MAC: message au
4、thentication code Hash函数:将任意长消息映射为定长的hash值作为认证符。,2022/12/22,西安电子科技大学计算机学院,9,12.2.1 消息加密,消息加密也能提供一种认证的方法对称密码,既可以提供认证又可以提供保密性,但不是绝对的。只有消息具有适当的结构、冗余或含有校验和,接收方才可能对消息的任何变化进行检测。否则,认证难以完成。严格意义上说,单独使用加密技术无法实现消息认证。(不推荐),2022/12/22,西安电子科技大学计算机学院,10,2022/12/22,西安电子科技大学计算机学院,11,2022/12/22,西安电子科技大学计算机学院,12,消息加密,
5、公钥体制中:加密不能提供对发送方的认证(公钥是公开的)发送方可用自己的私钥进行签名接收方可用发送方的公钥进行验证保密性和可认证性,2022/12/22,西安电子科技大学计算机学院,13,2022/12/22,西安电子科技大学计算机学院,14,2022/12/22,西安电子科技大学计算机学院,15,2022/12/22,西安电子科技大学计算机学院,16,12.2.2 消息认证码 (MAC),一种认证技术利用密钥来生成一个固定长度的短数据块(MAC),并将该数据块附加在消息之后。MAC的值依赖于消息和密钥 MAC = Ck(M)=C(M,K)MAC函数于加密类似,但MAC算法不要求可逆性,而加密算
6、法必须是可逆的。接收方进行同样的MAC码计算并验证是否与发送过来的MAC码相同,2022/12/22,西安电子科技大学计算机学院,17,MAC 特性,MAC码是一个密码校验和MAC = CK(M)=C(K, M)消息M的长度是可变的密钥K是要保密的,且收发双方共享。产生固定长度的认证码MAC算法是一个多对一的函数多个消息对应同一MAC值但是找到同一MAC值所对应的多个消息应该是困难的。,2022/12/22,西安电子科技大学计算机学院,18,Message Authentication Code,2022/12/22,西安电子科技大学计算机学院,19,若相同,则有:接收方可以相信消息未被修改。
7、接收方可以相信消息来自真正的发送方。接收方可以确信消息中含有的序列号是正确的。为什么需要使用MAC?有些情况只需要认证(如广播)文档的持续保护(例如解密后的保护)由于收发双方共享密钥,所以MAC不能提供数字签名,2022/12/22,西安电子科技大学计算机学院,20,对MACs的要求:抗多种攻击(例如穷举密钥攻击)且满足:已知一条消息和MAC, 构造出另一条具有同样MAC的消息是不可行的MACs应该是均匀分布的MAC应该依赖于消息的所有比特位,2022/12/22,西安电子科技大学计算机学院,21,2022/12/22,西安电子科技大学计算机学院,22,2022/12/22,西安电子科技大学计
8、算机学院,23,12.3 HMAC,密码hash函数作为MAC:不用分组密码,而用hash函数来产生MAC因为hash函数一般都较快没有出口限制,(分组密码有出口限制)hash函数不依赖于密钥,所以不能直接用于MAC建议:KeyedHash = Hash( Key | Message ),2022/12/22,西安电子科技大学计算机学院,24,利用带密钥的Hash函数实现消息认证,2022/12/22,西安电子科技大学计算机学院,25,当前获得广泛应用的构造带密钥的Hash函数的方案是HMAC(keyed-hashing for message authentication code),它是B
9、ellare等人于1996年提出,并于1997年作为RFC2104标准发表, 并被很多因特网协议(如IPSEC、SSL)所使用。HMAC算法利用已有的Hash函数,使用不同的Hash函数,就可以得到不同的HMAC,例如选用MD5时的HMAC记为HMAC-MD5,选用SHA-1时的HMAC记为HMAC-SHA1。,HMAC的设计目标是:,2022/12/22,西安电子科技大学计算机学院,26, 可不经修改而使用现有的Hash函数,特别是那些易于软件实现的、源代码可方便获取且免费使用的Hash函数; 其中嵌入的Hash函数可易于替换为更快或更安全的Hash函数; 保持嵌入的Hash函数的最初性能,
10、不因用于HMAC而使其性能降低; 以简单方式使用和处理密钥; 在对嵌入的Hash函数合理假设的基础上,易于分析HMAC用于鉴别时的密码强度。,2022/12/22,西安电子科技大学计算机学院,27,HMAC 概览,2022/12/22,西安电子科技大学计算机学院,28,2022/12/22,西安电子科技大学计算机学院,29,HMAC,作为RFC2104 HMACK = Hash(K+ XOR opad)| Hash(K+ XOR ipad)|M)其中 K+ 为在K左边填充0后所得的b位长的结果(b为每一消息分组的位数)opad, ipad 都是指定的填充常量多执行了3次hash压缩函数算法可用
11、于MD5, SHA-1, RIPEMD-160中的任何一个,2022/12/22,西安电子科技大学计算机学院,30,HMAC算法的具体执行步骤如下: 在密钥K的右边填充一些0,使其成为长度为b比特的比特串,记为K+; 计算Si=K+ipad,其中ipad(inner pad)是HMAC算法中规定的一个长度为b比特的比特模式串,它等于将00110110(16进制的36)重复b/8次后得到的比特串; 把HMAC的输入报文x=x1 x2xL附加在Si的右端,得到Si|x =Si|x1 x2xL,将该比特串作为Hash函数h的输入,得到l比特的输出h (Si|x); 计算So=K+opad,其中opa
12、d(outter pad)是HMAC算法中规定的另一个长度为b比特的比特模式串,它等于将01011100(16进制的5C)重复b/8次后得到的比特串; 将第3步得到的h(Si|x)填充到b比特后附加在So的右端,并以该比特串作为Hash函数h的输入,得到l比特的输出; 将第5步的输出作为HMAC算法的最终输出结果,即为消息x的消息认证码HMACk(x)。,2022/12/22,西安电子科技大学计算机学院,31,建立在嵌入Hash函数基础上的所有MAC,其安全性在某种程度上都依赖于该Hash函数的强度。对于HMAC,可以给出HMAC的强度与所嵌入Hash函数强度之间的关系。Bellare等人(1
13、996年)已经证明,如果攻击者已知若干(时间、消息-MAC)对,则成功攻击HMAC的概率等价于对所嵌入Hash函数的下列攻击之一: 即使对于攻击者而言,IV是随机的、秘密的和未知的,攻击者也能计算Hash函数的压缩函数的输出。 即使IV是随机的和秘密的,攻击者也能找到Hash函数的碰撞。,2022/12/22,西安电子科技大学计算机学院,32,HMAC 的安全性,HMAC的安全性依赖于hash算法的安全性 攻击HMAC需要下列之一:对密钥进行穷举攻击生日攻击从速度与安全制约,选择恰当的hash函数,2022/12/22,西安电子科技大学计算机学院,33,12.6 基于分组密码的MAC,DAA:
14、数据认证算法 CMAC:基于密码的消息认证码,2022/12/22,西安电子科技大学计算机学院,34,用对称密码产生MACs,采用分组密码的链接工作模式,并把最后分组作为MACData Authentication Algorithm (DAA) 是一个广泛使用的数据认证算法,基于DES-CBC(FIPS PUB113,ANSI X9.17)IV=0且最后一个分组用0填充其后以补足64位分组用DES的密文分组链接模式CBC解密消息把最后一个分组作为MAC发送或者取最后分组的左边M bits (16M64) 但是对于安全性来说,最终的MAC还是太小了,2022/12/22,西安电子科技大学计算机
15、学院,35,Data Authentication Algorithm,基于DES实现的数据认证算法,2022/12/22,西安电子科技大学计算机学院,36, 置IV = 0,并把报文的最后一个分组用0填充成64比特; 采用DES的CBC模式加密报文; 抛弃加密的中间结果,只将最后一组密文(或最后一组密文的左边M (16M64)比特)作为原始报文的MAC。,2022/12/22,西安电子科技大学计算机学院,37,12.6.2 CMAC,适用于AES和3DES的CMAC,为n个消分组,k位加密密钥和n位的常数K1,T为消息认证码,也称为tag;Tlen是T的位长度;MSBs(X)是位串的X最左边的s位。,12.7 认证加密,2022/12/22,西安电子科技大学计算机学院,38,在通信中同时提供保密性和认证性的加密系统提供认证和加密的通用方案HtE:先Hash再加密,MtE:先MAC再加密,SSL/TLS使用EtM:先加密再MAC,IPsec使用E&M:加密并且MAC,SSH使用,12.7 认证加密,2022/12/22,西安电子科技大学计算机学院,39,12.7.1 分组密码链接-消息认证码略12.7.2 Galois/计数器略,12.8 使用Hash函数和MAC产生伪随机数,略,2022/12/22,西安电子科技大学计算机学院,40,
链接地址:https://www.31ppt.com/p-1866560.html