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