您好,欢迎访问三七文档
第五章认证技术现代密码的两个最重要的分支就是加密和认证。加密的目的是防止敌方获得机密信息。认证则是为了防止敌方的主动攻击,包括验证信息真伪及防止信息在通信过程中被篡改、删除、插入、伪造、延迟及重放等。认证主要包括三个方面:消息认证、身份验证和数字签名。上一章介绍了数字签名技术,本章将对认证技术的另外两个方面进行介绍。5.1消息认证网络安全所面临的基本攻击类型,包括:被动攻击(获取消息的内容、进行业务流分析)主动攻击(假冒、重放、消息的篡改、业务拒绝)。抗击被动攻击的方法是加密,抗击主动攻击的方法则是消息认证。消息认证是一个过程,用以验证接收消息的真实性(的确是由它所声称的实体发来的)和完整性(未被篡改、插入、删除),同时还用于验证消息的顺序性和时间性(未重排、重放、延迟)。除此之外,在考虑网络安全时还需考虑业务的不可否认性,即防止通信双方中的其一方对所传输消息的否认。实现消息的不可否认性可通过数字签字,数字签字也是一种认证技术,也可用于抗击主动攻击。5.1.1消息认证的模式5.1.2认证函数消息认证机制和数字签字机制都有一产生认证符的基本功能,这一基本功能又作为认证协议的一个组成成分。认证符是用于认证消息的数值,它的产生方汉又分为消息加密、消息认证码MAC(MessageAuthenticationCode)、杂凑函数(HashFunction)三大类,下面分别介绍。1.消息加密(MessageEncryptionFunction):消息加密产生认证符是指将消息加密后的密文作为认证符,其用法又根据单钥加密还是公钥加密有所不同。1)单钥加密图5.1表示消息M的发送方A根据单钥加密算法以与接收方B共享的密钥K对消息加密后发往B。第三方不知密钥K就不能恢复消息的明文,因此系统提供了保密性。图5.1单钥消息加密:保密性和认证性该系统还向B保证所收到的消息的确来自A,因为只有A知道密钥K。对B来说还必须有某种手段以决定M是否为合法的明文。一种解决方法是让明文有某种容易识别但又不易被篡改的结构,例如在消息被加密前附加一个错误检测吗,也称为校验和。如图5.2所示:(a)内部错误控制(b)外部错误控制图5.2内部错误控制和外部错误控制2)公钥加密为了提供认证功能,发方A使用自己的秘密钥SKA对消息加密,B使用A的公开钥PKA对消息解密(如图5.3(a)所示)。(a)公钥加密:认证性和签字(b)公钥加密:保密件、认证性和签字图5.3公钥消息加密的基本方式和单钥加密提供认证一样,因为只有A方拥有加密密钥SKA,因此可使B相信自己收到的消息的确来自A。同样,这时对明文也必须有某种错误控制结构以使接收者能区分明文和随机比特串。然而由于任何人都可使用A的公开钥解密密文,所以这种方案不提供保密性。为了既提供认证件,又提供保密件,A首先用自己的秘密钥SKA加密M以提供认证性,然后用B的公开钥再一次加密以提供保密性,如图5.3(b)所示。这种方案的缺点是需执行四次复杂的公钥算法。2.消息认证码MAC(MessageAuthenticationCode)消息认证码是指消息被一密钥控制的公开函数作用后产生的、用作认证符的、固定长度的数值,也称为密码校验和。此时需要通信双方A和B共享一密钥K。设A欲发送给B的消息是M,A首先计算MAC=CK(M),其中CK()是密钥控制的公开函数,然后向B发送M‖MAC,B受到后做与A相同的计算,求得一新MAC,并与收到的MAC做比较,如图5.4(a)所示。如果仅收发双方知道K,且B计算得到的MAC与接收到的MAC一致就实现了以下功能:①接收方相信发方发来的消息未被篡改,这是因为攻击者不知道密钥,所以不能够公篡改消息后相应地篡改MAC,而如果仅篡改消息,则接收方计算的新MAC将与收到的MAC不同。②接收方相信发方不是冒充的,这是团为除收发双方外再无其他人知道密钥,因此其他人不可能对自己发送的消息计算出正确的MAC。③如果消息中有序列号(如TCP中的消息),则由于发方不能成功地篡改序列号,所以接收者相信所收消息中的序列号。MAC函数与加密算法类似,不同之处为MAC函数不必是可逆的,因此与加密算法相比更不易被攻破。(a)消息认证(b)保密性和认证性:对明文认证(c)保密性和认证性:对密文认证图5.4MAC的基本使用方式3.散列函数(HashFunction)散列函数H是一公开函数,用于将任意长的消息M映射为较短的、固定长度的一个值H(M),作为认证符,称函数值H(M)为散列值或散列码或消息摘要。散列码是消息中所有比特的函数,因此提供了一种错误检测能力,即改变消息中任何一个比特或几个比特都会使散列码发生改变。图5.5表示散列函数用来提供消息认证的基本使用方式,共有以下六种:图5.5杂凑函数的基本使用方式①消息与散列码链接后用单钥加密算法加密。这种方式还提供了保密性。②用单钥加密算法仅对散列码加密。这种方式用于不要求保密性的情况中可减少处理负担。③用公钥加密算法和发方的秘密钥仅加密散列码。这种方式提供认证性,又由于只有发方能产生加密的散列码,因此这种方式还对发方发送的消息提供了数字签字,事实上这种方式就是数字签字。④消息的散列值用公钥加密算法和发方的秘密钥加密后与消息链接,再对链接后的结果用单钥加密算法加密,这种方式提供了保密性和数字签字。⑤使用这种方式时要求通信双方共享一个秘密值S,A计算消息M和秘密值S链接在一起的散列值,并将此散列值附加到M后发往B。因B也有S,所以可更新计算散列值以对消息进行认证。由于秘密值S本身未被发送,敌手无法对截获的消息加以篡改,也无法产生假消息。这种方式仅提供认证。⑥这种方式是在⑤中消息与散列值链接以后再增加单钥加密运算,从而又可提供保密性。由于加密运算的速度较慢,代价较高,而且很多加密算法还受到专利保护,因此在不要求保密性的情况下,方式②和③将比其他方式更具优势。散列函数应满足的条件散列函数的目的是为需认证的数据产生散列函数应满足以下条件:①函数的输入可以是任意长;②函数的输出是固定长;③已知x,求H(x)较为容易,可用硬件或软件实现;④已知h,求使得H(x)=h的x在计算上是不可行的,这一性质称为函数的单向性,称H(x)为单向散列函数;⑤已知x,找出y(y≠x)使得H(y)=H(x)在计算上是不可行的,如果单向散列函数满足这一性质,则称其为弱单向散列函数;⑥找出任意两个不同的输入x,y,使得H(y)=H(x)在计算上是不可行的,如果单间散列函数满足这——性质,则称其为强单向散列函数。性质⑥、⑥给出了散列函数无碰撞性的概念,如果散列函数对不向的输入可产生相同的输出,则称该函数具有碰撞性。以上六个条件中,前三个是散列函数能用于消息认证的基本要求。第4个条件(即单向性)则对使用秘密值的认证技术(见图5.5(e))极为重要。假如散列函数不具有单向性,则攻击者截获M和C=H(S‖M)后,求C的逆S‖M,就可求出秘密值S。第5个条件使得敌手无法在已知某个消息时,找到与该消息只有相同散列值的另一消息。这一性质用于散列值被加密情况时(见图5.5(b)和5.5(c))防止敌手的伪造,由于在这种情况下,敌手可读取传送的明文消息M,因此能产生该消息的散列值H(M)。但出于敌手不知道用于加密散列值的密钥,他就不可能既伪造一个消息M,又伪造这个消息的散列值加密后的密文EK[H(M)]。然而,如果第5个条件不成立,敌手在截获明文消息及其加密的散列值后,就可按以下方式伪造消息:首先求出截获的消息的散列值,然后产生一个具有相同散列值的伪造消息,最后再将伪造的消息和截获的加密的散列值发往通信的接收一万。第6个性质用于散列函数抵抗生日攻击。5.3.2一个简单的散列函数散列函数一般都较为复杂,为了获得对散列函数的感性认识,这一小节先介绍一个最简单的散列函数。将函数的输入划分为M比特长的分组,然后各分组之间逐比特异或,即:Ci=bi1⊕bi2⊕…⊕bim,1iM其中Ci为散列值的第i个比特,M为分组数,bij,为第j个分组的第i个比特,⊕为异或运算。从函数的定义可见,函数的作用是为每个比特位都产生出一个简单的校验和。由于任一M比特散列值出现的可能性都相等,因此数据出错而散列值不变的概率为2-n,所以该函数可有效地用于随机数据的完整性检验。近年已经发展了许多散列函数,如MD、MD4、MD5、SHA等,现在流行的散列函数有MD4、MD5和SHA。注意,客户机和服务器必须使用相同的算法,无论是MD4还是MD5,MD4客户机不能和MD5服务器交互。MD2摘要算法的设计是出于下面的考虑:利用32位RISC结构来使其吞吐量最大,而不需要大量的替换表(SubstitutionTable)。MD4算法将消息的给予对长度作为输人,产生一个128位的“指纹”或“消息化”。要产生两个具有相同消息化的文字块或者产生任何具有预先给定“指纹”的消息,都被认为在计算上是不可能的。MD5摘要算法是个数据认证标准。MD5在RFC1321中给出文档描述,是MD4算法的一个扩展。MD提供了一种单向的哈希函数,是一个校验工具。它将一个任意长的字串作为输人,产生一个128位的“报文摘要”。通过计算每个文件的数字指纹(或数字签名)来检查文件是否被更换,或者是否与原来的一致。一个称为MD系列的算法集就是进行这项工作的。其中最常用到的是MD5的系统。安全散列算法(SHA)由美国国家标准技术研究所(NIST)开发,作为联邦信息处理标准于1993年发表(FIPSPUB180),1995年修订,作为SHA-1(FIPSPUB180-1),SHA一1基于MD4设计。SHA-1算法中可输人最大长度为2“位的消息,输出160位消息摘要;输人以5互2位数据块为单位处理。国际上还流行其他一些散列算法,如俄罗斯国家标准GOST算法、Merkle设计的Snefru算法、欧共体RIPE计划中所采用的RIPE-MD算法和RIPEMAC,以及Zhens提出的MD-5改进算法HAVAL散列算法。5.1身份认证通过网络开展电子商务业务,身份识别问题是一个不得不解决的问题。一方面,只有合法用户才可以使用网络资源,所以网络资源管理必须识别用户的身份。另一方面,传统的交易双方可以面对面地谈判交涉,很容易识别对方的身份。而通过网络交易却不同,交易双方不见面,通过普遍的电子传输信息很难确认对方的身份。因此,电子商务中的身份识别问题显得尤为突出。只有采取一定的措施使商家可以确认对方身份,商家才能放心地开展电子商务业务。5.1.1身份认证的概念身份认证又叫身份识别,它是通信和数据系统正确识别通信用户或终端的个人身份的重要途径。比如银行的自动取款机(ATM)可将现款发放给经它正确识别的账号持卡人。对计算机的访问和使用、安全地区的出人和放行、出人境等都是以准确的身份识别为基础的。身份识别技术能使识别者让对方识别到自己的真正身份,确保识别者的合法权益。身份认证是安全系统中的第一道关卡,如图图5-6所示,用户在访问安全系统之前,首先经过身份认证系统识别身份,然后访问监控器根据用户的身份和授权数据库决定用户是否能够访问某个资源。授权数据库由安全管理员按照需要进行配置。图5-6身份认证的地位审计系统根据审计设置记录用户的请求和行为,同时人侵检测系统实时或非实时地是否有人侵行为。访问控制和审计系统都要依赖于身份认证系统提供的“信息”——用户的身份。可见,身份认证在安全系统中的地位极其重要,是最基本的安全服务,其他的安全服务都要依赖于它。一旦身份认证系统被攻破,那么系统的所有安全措施将形同虚设。黑客攻击的目标往往就是身份认证系统。计算机系统安全机制的主要目标是控制对信息的访问。当前用于身份识别的技术方法主要有四种:①利用用户身份、口令、密钥等技术措施进行身份识别;②利用用户的体貌特征、指纹、签字等技术措施进行身份识别;③利用用户持有的证件(如光卡、磁卡等)进行身份识别;④多种方法交互使用进行身份识别。5.2.2口令认证口令识别是目前广泛采用的技术措施之一。1.口令认证的过程口令识别机制在技术上需要分两步处理:第一步是给予身份标
本文标题:信息安全技术05章
链接地址:https://www.777doc.com/doc-2713277 .html