您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 北航-第四章-鉴别技术和访问控制
2012计算机网络安全概论1第四章鉴别技术和访问控制2012计算机网络安全概论2鉴别服务鉴别目的:证实信息交换过程的有效性和合法性的一种手段,主要有以下方面:证实收到信息的真实性证实存储数据的真实性证实发送信息的真实性证实信息的时效性证实对方的真实性使接收方的活动可审计与仲裁提供第三方公证的可能性2012计算机网络安全概论3鉴别服务功能防窃听了解后续通信中冒充某一方所需要的信息了解在后续的通信活动中向第三方冒充所需的信息了解进行脱机的口令分析所需的信息防止冒充一方发起信息交换与拦截使对方相信他的冒充身份了解进行脱机的口令分析所需的信息获得以后可用于冒充的信息获得以后向被冒充者冒充另一方所需的信息哄骗另一方为他对某个信息进行签名或解密2012计算机网络安全概论4鉴别服务功能(续)防止窃取一方安全信息对被窃信息方进行冒充对通信双方过去交换的信息进行解密防止在通信信道上进行拦截获得可进行脱机口令分析的信息偷换通信内容让对方察觉冒充一方而不让另一方察觉2012计算机网络安全概论5回顾:信息安全的需求保密性Confidentiality完整性Integrity系统完整性数据完整性真实性authenticity鉴别–消息认证–身份认证:验证真实身份和所声称身份相符的过程可用性Availability……2012计算机网络安全概论6消息认证在网络通信中,有一些针对消息内容的攻击方法伪造消息窜改消息内容改变消息顺序消息重放或者延迟消息认证:对收到的消息进行验证,证明确实是来自声称的发送方,并且没有被修改过。如果在消息中加入时间及顺序信息,则可以完成对时间和顺序的认证2012计算机网络安全概论7消息认证的三种方式Messageencryption:用整个消息的密文作为认证标识接收方必须能够识别错误MAC:一个公开函数,加上一个密钥产生一个固定长度的值作为认证标识Hashfunction:一个公开函数将任意长度的消息映射到一个固定长度的散列值,作为认证标识2012计算机网络安全概论8MessageAuthenticationCode使用一个双方共享的秘密密钥生成一个固定大小的小数据块,并加入到消息中,称MAC,或密码校验和(cryptographicchecksum)用户A和用户B,共享密钥K,对于消息M,MAC=CK(M)如果接收方计算的MAC与收到的MAC匹配,则接收者可以确信消息M未被改变接收者可以确信消息来自所声称的发送者如果消息中含有序列号,则可以保证正确的消息顺序MAC函数类似于加密函数,但不需要可逆性。因此在数学上比加密算法被攻击的弱点要少2012计算机网络安全概论9MAC应用方式MC||CKKCompareMCk(M)2012计算机网络安全概论10关于MAC算法MAC不等于数字签名因为通讯双方共享同一个密钥MAC有固定的长度MAC结构的重要性,例如,密钥足够长+加密算法足够好安全M=(X1,X2,…,Xt)对M产生校验核M=X1X2…XtMAC=EK(M)攻击者选择M=(Y1,Y2,…,Yt-1,Yt),使得Yt满足:Yt=Y1Y2…Yt-1M于是M=MEK(M)=EK(M)CK(M)=CK(M)所以,尽管攻击者不知道K,仍然可以伪造消息M2012计算机网络安全概论11MAC算法的要求条件:攻击者知道MAC函数但不知道密钥K要求:已知M和CK(M),要想构造M使得CK(M)=CK(M)在计算上不可行(计算上无碰撞)CK(M)均匀分布:随机选择M和M,Pr[CK(M)=CK(M)]=2-|MAC|f是M的一个变换(例如对某些位取反),那么,Pr[CK(M)=CK(f(M))]=2-|MAC|2012计算机网络安全概论12MACbasedonDESANSI标准(X9.17)即为CBC模式结构,初始向量为0该方法适用于其他加密算法算法:M=(X1,X2,…,Xt)M1=EK(X1)Mj+1=EK(Xj+1Mj),1jtMAC=Mt2012计算机网络安全概论13消息摘要和函数在通信过程中,信息的完整性是信息安全保证的重要指标。所谓信息完整性是指信息在存储和传输过程中不被非法篡改、破坏、增删,能真实无误地到达目的地的特性。消息摘要是保证信息完整性的基本技术之一,函数则是消息摘要技术的核心内容。Hash函数的概念和基本原理两个典型的Hash算法:MD5算法和SHA-1算法消息摘要的生成和验证过程2012计算机网络安全概论14Hash函数的概念和原理Hash函数是把可变长输入数据转换成固定长度输出数据的一种函数这个定长的输出数据称为输入数据的消息摘要,也称为散列值、哈希值或数字指纹函数具有单向的性质,所谓单向性,是指从输入数据很容易计算其Hash值,但通过Hash值想找到其对应的输入数据是很困难的要找到一个输入数据使其Hash值等于一个特定的值也是很困难的一个好的Hash函数也是无碰撞的:即很难产生两个输入数据,使它们的Hash值相同2012计算机网络安全概论15单向性:已知哈希函数的输出,要求它的输入是困难的,即已知c=hash(m),求m是困难的快速性:已知m,计算hash(m)是容易的抗碰撞性:已知hash(m1)=c1,构造m2使hash(m2)=c1是困难的雪崩性:c=hash(m),c的每一比特都与m的每一比特有关,并有高度敏感性。即每改变m的一个比特,都将对c产生明显影响接受的输入数据没有长度限制:对输入任何长度的数据能够生成该输入消息固定长度的输出。Hash函数的特性2012计算机网络安全概论16„„++++3M3M1M2MnM1M2MnMhMM将输入数据分成若干等长的分组,对每个分组按位进行异或(XOR)运算结果便为其消息摘要一个最简单的Hash函数图中Mh即为消息M的消息摘要值2012计算机网络安全概论17攻击者的目标通常是找到两个不同消息映射为同一值。对函数有二种基本攻击方法:穷举攻击法(ExhaustiveAttack)生日攻击(BirthdayAttack)Hash函数的安全性2012计算机网络安全概论18使用公开密钥加密方法和发送方的私有密钥对Hash值进行加密既能提供认证,又能提供数字签名因为只有发送方能够生成加密的Hash认证码数字签名技术的典型实现方式MM||H(M)hashE)]([MHESR)(MH比较Dhash接受者R发送者SSRKSUKM’hash2012计算机网络安全概论19给定H=h(M),其中H为初值,攻击者在所有可能的M中寻求有利于攻击者的M’,使h(M’)=h(M),由于限定了目标h(M)来寻找h(M’),这种攻击法又称为目标攻击。穷举攻击法2012计算机网络安全概论20生日攻击依赖于消息摘要的长度,即Hash值的长度。生日悖论:在一个教室中,找一个与某人生日相同的概率不小于0.5时,所需学生为183人。但要一个教室中至少有两个学生的生日在同一天的概率不小于0.5的学生人数仅为23人。这是因为对于第一种情况,与某个已知生日的人同日生的概率为1/365。若教室中有t人,则至少找到一人与此人同日生的概率为p=1-(364/365)t-1。易于解出,当t≥183时可使p0.5。对于第二种情况,第一个人在特定日出生的概率为1/365,而第二人不在该日生的概率为(1-1/365),类似地第三人与前两位不同日生的概率为(1-3/365),以此类推,t个人都不同时生日概率为(1-1/365)(1-2/365)…(1-(t-1)/365),因此,至少有两人于同日生的概率为p-(1-1/365)(1-2/365)…(1-(t-1)/365),解之当,t≥23时,p0.5。对于n比特Hash值的生日攻击,由上式可计算出,当进行2n/2次的选择明文攻击下成功的概率将超过0.63.2012计算机网络安全概论21针对生日攻击的安全条件消息摘要必须足够地长一个40比特长的消息摘要是很不安全的,因为仅仅用220(大约一百万)次随机Hash可至少以1/2的概率找到一个碰撞。通常建议消息摘要的长度至少应选取为128比特,此时生日攻击需要约264次Hash。统计结果表明,如hash(m)的长度为128位(bit)时,则任意两个分别为M1,M2的输入报文具有完全相同的h(m)的概率接近于零安全Hash标准的输出长度选为160比特2012计算机网络安全概论22hash函数通用模型由Merkle于1989年提出几乎被所有hash算法采用具体做法:把原始消息M分成一些固定长度的块Yi最后一块padding并使其包含消息M的长度设定初始值CV0压缩函数f,CVi=f(CVi-1,Yi-1)最后一个CVi为hash值2012计算机网络安全概论23hash函数模型图bY0nIV=CV0fbY1nfbYL-1nCVL-1fCV1nnIV=initialvalue初始值CV=chainingvalue链接值Yi=ithinputblock(第i个输入数据块)f=compressionalgorithm(压缩算法)n=lengthofhashcode(散列码的长度)b=lengthofinputblock(输入块的长度)CVL2012计算机网络安全概论24MD5算法简介MD5的全称是Message-DigestAlgorithm5在90年代初由MIT的计算机科学实验室和RSADataSecurityInc发明,经MD2、MD3和MD4发展而来MD5将任意长度的输入消息变换成一个128bit的大整数,并且它是一个不可逆的变换算法。MD5的典型应用是对一段信息(Message)产生信息摘要(Message-Digest),以防止被篡改。MD5还广泛用于加密和解密技术上。比如在UNIX系统中用户的密码就是以MD5(或其它类似的算法)经加密后存储在文件系统中。2012计算机网络安全概论25MD5算法处理过程MD5以512位分组来处理输入的信息,每一分组又被划分为16个32位子分组,每一个分组要经过4轮循环处理,处理前以A、B、C、D这4个缓冲区中的值作为输入参数,处理后输出四个32位值,A、B、C、D分别加上这4个32位值后再作为下一个分组处理所用的输入参数。所有分组经过了4轮主循环的处理后,输出四个32位最终值,将这四个32位值级联后即生成了一个128位摘要值ABCDABCD512位分组4轮循环512位分组4轮循环512位分组4轮循环„„消息M消息M填充信息2012计算机网络安全概论26信息填充在MD5算法中,首先需要对信息进行填充,使其字节长度对512求余的结果等于448在信息的后面填充一个1和若干个0附加一个64位的二进制数据,此数据表示填充前信息的长度要散列的数据M1000„M的长度512n+448比特64比特2012计算机网络安全概论27循环处理填充后的消息被划分成若干个512位的分组,每一分组又被划分为16个32位子分组。这些分组作为算法的输入信息进行处理。初始化链接变量(ChainingVariable)MD5中有A、B、C、D四个缓冲区(32位的寄存器)中,最开始存放四个被称作链接变量的32位的整数参数,这些参数将用于下一步的摘要算法中。这四个缓冲区分别被初始化为以下的值:A=0x01234567B=0x89abcdefC=0xfedcba98D=0x76543210当设置好这四个链接变量后,将它们复制到另外四个变量中:A到a,B到b,C到c,D到d。abcd组成128位寄存器,用于保存中间结果和最终结果2012计算机网络安全概论28循环处理消息的每一个分组均经过四轮循环处理,处理前将缓冲区A、B、C、D的内容作为输入参数,处理后的结果再加入到A、B、C、D中去。消息分组ABCDABC
本文标题:北航-第四章-鉴别技术和访问控制
链接地址:https://www.777doc.com/doc-6723486 .html