
网络安全03-消息鉴别.pptx
35页网络安全消息鉴别安全的信息交换应满足的性质机密性( Confidentiality)完整性(Integrity)可用性(Availability)不可否认性( Non-repudiation)消息鉴别的概念消息鉴别(Message Authentication)l消息认证、报文认证、报文鉴别l鉴别:消息接收者对消息进行的验证,是一个证实收到的消息来自可信的源点且未被篡改的过程真实性:消息确实来自于真正的发送者,而非假冒完整性:消息内容没有被篡改、重放或延迟消息鉴别的必要性网络通信的安全威胁l泄漏消息内容被泄漏给非授权用户l伪造假冒源点的身份向网络中插入消息l消息篡改内容篡改:插入、删除、修改等序号篡改:在依赖序号的协议如TCP中,对消息序号进行篡改,包括插入、删除、重排等时间篡改:对消息进行延迟或重放消息鉴别的作用保护双方的数据交换不被其他人侵犯l基于双方共享的秘密l但是消息鉴别无法解决双方之间可能存在的争议B伪造一个消息,声称是A发送的B否认发送过某个消息,而A无法证明B撒谎单纯鉴别系统的模型安全信道信道信源鉴 别编码器鉴 别密钥源攻击者鉴 别解码器信宿需要鉴别密钥,而且此密钥一般不同于加密密钥消息鉴别系统的构成认证算法:底层实现的一项基本功能l认证功能要求底层必须实现某种能生成认证标识的算法l认证标识(鉴别符)是一个用于消息鉴别的特征值l认证标识的生成算法用一个生成函数f来实现,称为鉴别函数认证协议l接收方用该协议来完成消息合法性鉴别的操作l认证协议调用底层的认证算法(鉴别函数),来验证消息的真实性鉴别函数f是决定认证(鉴别)系统特性的主要因素认证协议算法:鉴别函数高层认证协议消息鉴别系统的分类可根据鉴别函数的特性分类根据鉴别符的生成方式,鉴别函数可以分成以下几类:l基于消息加密方式的鉴别以整个消息的密文作为鉴别符l基于消息鉴别码(MAC)的鉴别方式发送方利用公开函数+密钥产生一个固定长度的值作为鉴别标识,并与消息一同发送l基于Hash函数的鉴别方式采用hash函数将任意长度的消息映射为一个定长的散列值,以此散列值为鉴别码可以认为是MAC方式的一种特例基于消息加密方式的鉴别基于消息加密方式的鉴别以整个消息的密文为鉴别符加密模式l对称密钥模式l公开密钥模式接收端鉴别的实现l基于这样的假设:接收端能够正确地对密文解密,就可以确定消息是完整的,而且是来自于真实的发送方,从而实现了对消息的鉴别使用对称密钥模式提供保密提供鉴别l仅来自Al传输中未被更改不提供签名MCMEDkk发送方A接收方B使用对称密钥模式的问题存在的问题l接收端怎样判断密文的合法性l接收端如何判断解密的结果是否正确解密运算的本质是数学运算l原始消息对接收端是未知的l接收端可以得到 M = Dk(c)l怎么判断 M = M一种方法是强制明文具有某种结构使用公钥加密体制 1提供保密不提供鉴别和签名MCMEDkUbkRb发送方A接收方B使用公钥加密体制 2不提供保密提供鉴别与签名l仅A有KRa可以加密l传输中未被更改MCMEDkRakUa发送方A接收方B使用公钥加密体制 3提供保密:KUb提供鉴别和签名:KRaMCMEDkRakUa发送方A接收方BCEkUbCEkRb基于MAC的鉴别基于MAC的鉴别消息鉴别码(Message Authentication Code, MAC)l发送方采用一种类似于加密的算法和一个密钥,根据消息内容计算生成一个固定大小的小数据块,并加入到消息中,称为MAC。
MAC = fk(m)需要鉴别密钥l核心是类似于加密算法的鉴别码生成算法lMAC被附加在消息中,用于消息的合法性鉴别功能l接收者可以确信消息M未被改变l接收者可以确信消息来自所声称的发送者消息鉴别码的基本原理MMMMACMACf()f()比较密钥K密钥K认证结果信道双方共享鉴别密钥 k发送方接收方MAC函数的特点MAC函数类似于加密函数,需要密钥MAC函数无需可逆,可以是单向函数l使得MAC函数更不易被破解MAC函数不能提供对消息的保密l保密性通过对消息加密而获得需要两个独立密钥l两种方式:先计算MAC再加密先加密再计算MAC基于MAC的鉴别过程独立于加、解密过程可以用于不需加密保护的数据的鉴别MAC方法不能提供数字签名功能l所以无法防止对方的欺骗MAC的基本应用 1提供消息鉴别l仅A和B共享密钥KMMMACf()比较密钥Kf()发送方A接收方BMMACMAC的基本应用 2MMMACf()D()比较密钥KE()密钥K密钥KMMACf()密文发送方接收方 提供保密 只有A和B共享k 提供鉴别 只有A和B共享k1、先计算MAC再加密2、K是加密密钥3、K是认证密钥MAC的应用 3密文MMACf()f()比较密钥KE()密钥K密钥K密文+D()密钥KM1、先加密再计算MAC2、K是加密密钥3、K是认证密钥发送方接收方 提供保密 只有A和B共享k 提供鉴别 只有A和B共享kMAC函数的安全性分析MAC函数的特点l多对一映射对同一个M,存在多个key产生相同的MACKey相同,存在多个M产生相同的MACln-bit MAC: 2n个可能的MAClK-bit密钥: 2k个可能的密钥lN个可能的消息:N 2nl一般情况下,n kMAC函数的安全性l主要是对强行攻击的抵抗能力l方式:穷举法,根据已知消息M和对应的MAC值,来推断密钥kl前提:MAC算法已知MF()kMAC对MAC函数强行攻击的方式已知消息M1和对应的MAC1值对所有可能的密钥ki,计算消息M1的MAC,其中至少存在一个k,使得fk(M1)=MAC1由于密钥空间为2k大,以上计算将产生2k个MAC结果;而MAC空间为2n大,且2n 2k ,故存在多个k产生相同的MAC:一般是个2k-n个key对应一个MAC为了确定哪一个是正确的key,分析者需要选择另一组M2和MAC2,对上面的个结果进行验证,以缩小搜索范围因此,可能需要多轮验证:大约需要k/n轮计算量为2k+2k-n+2k-2n+可见强行攻击难度很大MAC函数的安全性总结需要大量的(M,MAC)对,对MAC的强行攻击通常不能离线进行MAC算法抵抗强行攻击的有效级为(2k, 2n)中的最小值为了足够安全,MAC函数应该具有以下的性质:l给定一个或多个(M, MAC)对而不知道密钥的情况下,对于一个新的消息,要计算出对应的MAC在计算上不可行l攻击者得到一个消息M及对应的MAC,则构造消息M使得MAC = MAC在计算上是不可行的基于哈希函数的鉴别基于哈希函数的鉴别哈希函数l一种单向函数l输入:任意长度的消息Ml输出:固定长度的消息摘要是一个固定长度的哈希值H(M)l哈希值是消息中所有比特的函数值消息中任意内容的变化将导致哈希值的变化l具有完整性检测功能l可用于数字签名哈希函数消息鉴别(1)基本的哈希函数消息鉴别l对称加密:发端和收端共享加密密钥kl哈希值提供了消息鉴别需要的结构和冗余l提供保密和鉴别双重功能:消息和H(M)被加密保护MMEkMH(M)H(M)H()D()比较密钥KE()密钥KMH(M)H()发送方接收方哈希函数消息鉴别(2)仅对哈希值进行加密的鉴别方案l用于不需对消息加密的场合l基于对称密钥机制l提供鉴别:H(M)被加密保护MMEkH(M)H()D()比较哈希密钥KE()密钥KH()MEkH(M)哈希函数消息鉴别(3)仅对哈希值进行加密的鉴别方案l用于不需对消息加密的场合l基于公开密钥机制l提供鉴别和数字签名:发送方用自己的私钥加密H(M)MMEkRaH(M)H()D()比较密钥KUaE()密钥KRaH()MEkRaH(M)发送方A接收方B哈希函数消息鉴别(4)提供保密:对称密钥算法、密钥k进行外层加密提供鉴别和数字签名:A用私钥对消息明文的哈希值进行加密MMEkRaH(M)H()D()比较密钥KUaE()密钥KRaH()MEkRaH(M)发送方A接收方BED密钥K密钥K哈希函数消息鉴别(5)采用秘密数值的哈希鉴别l通信双方共享一个秘密数值sl计算哈希值时,s附加到消息M上一起计算得到H(M|s)l传输过程中,数据不加密,但不传送sl提供鉴别:只有发送方和接收方共享秘密Sl适用于加密算法不可用的场合MMH(M|s)H()比较哈希H()MH(M|s)MssMss哈希函数消息鉴别(6)提供鉴别:只有发送方和接收方才共享S提供保密:只有发送方和接收方才共享kMMH(M|s)H()比较哈希H()MH(M|s)MssMssEK密文DK发送方接收方哈希函数的安全性需求哈希函数的输入可以是任意长度消息哈希函数的输出是定长度的数值哈希函数的计算要简单单向性l给定哈希值h,寻找消息M使得H(M) = h,计算上不可行弱抗冲突性l给定消息M,寻找消息M,使得H(M) = H(M),计算上不可行强抗冲突性l寻找两个消息M和N,使得H(N) = H(M) ,计算上不可行几种安全的哈希函数:lMD5, SHA-1, HMAC谢谢!。












