第3章-认证理论基础_第1页
第3章-认证理论基础_第2页
第3章-认证理论基础_第3页
第3章-认证理论基础_第4页
第3章-认证理论基础_第5页
已阅读5页,还剩40页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

3.1认证的概念3.2Hash函数3.3消息认证函数

3.4数字签名3.5移动互联网中使用的认证技术第3章认证理论基础

3.1认证的概念

网络系统安全要考虑两个方面。一方面,用密码保护传送的信息使其不被破译;另一方面,是防止对手对系统进行主动攻击,如伪造、篡改信息等。

认证(Authentication)就是一种防止主动攻击的重要技术,它对于开放网络中的各种信息系统的安全性有重要作用。认证的主要目的有两个:第一是实体认证,即验证信息的发送者是真的,而不是冒充的,这包括信源、信宿等的认证和识别;第二是消息认证,即验证信息的完整性,确保数据在传输或存储过程中没有被篡改、重放或延迟。

3.1.1认证系统的模型图3-1展示了一个认证系统的模型。在这个系统中,发送方通过一个安全信道将消息发送给接收方,接收方不仅想收到消息本身,而且还要验证消息是否来自合法的发送方以及消息是否被篡改过。信宿D对信源S进行实体认证的目的是S要让D相信“他是S”,那么双方需要做到:

①双方在诚实的情况下,S能够让D成功地识别自己,即在协议完成时D接受了S的身份;②D不能重新使用自己与S识别过程中的通信信息来伪装成S,并向第三方T证明自己是S;

③除了S以外的第三方T以S的身份执行该协议,不能让D相信T是S。

3.1.1认证系统的模型消息认证的目的在于如何让接收报文的接收方来鉴别报文的真伪,消息认证的内容应包括:证实消息报文的信源和信宿;报文内容是否遭到过篡改;报文的序号和时间栏没有错误。消息认证只在通信双方之间进行,不允许第三方进行上述认证,而且认证不一定是实时的。

3.2.1Hash函数的概念3.2.2MD4和MD5算法3.2.3安全Hash算法(SHA)3.2Hash函数3.2.1Hash函数的概念Hash函数的输入长度是可变的,返回一个固定长度串,这个串也被称为输入信息的Hash值,也称为消息摘要。计算给定输入内容的Hash值是简单的,但给定某个Hash值,求其输入内容是比较困难的,即Hash函数是单向函数。Hash函数H一般满足下列性质:函数H是公开的,其输入内容可为任意长度;函数H的输出长度固定;不同的输入内容不能产生相同的函数值(即无碰撞性);无法根据函数值推导出输入的内容。Hash值的长度由具体的Hash函数确定,例如MD4算法的输出为128比特,SHA-1的输出为160比特。3.2.1Hash函数的概念Hash函数的基本用法:Hash函数与对称加密算法、公钥加密算法以及数字签名算法结合使用,可以实现有效的保密与认证等安全功能。一、可以实现保密性和认证,发送方A将消息M与其Hash值H(M)连接,用对称密码算法加密后发送至接收方B。接收方用与发送方共享的密钥K对密文解密后得到M'和H(M),而后计算M'的Hash值H(M'),通过比较H(M)和H(M')来完成对消息M的认证。3.2.1Hash函数的概念二、提供了认证,未对消息M进行保密,只对消息的Hash值进行了加解密变换。三、发送方A采用公钥密码算法,用A自己的私钥PRa对消息M的Hash值进行签名得到E(PRa,H(M)),而后与M连接后发出,接收方B用A的公钥PUa对E(PRa,H(M))进行解密得到H(M),再与B自己由接收消息M'计算得到的H(M')进行比较来实现认证。3.2.1Hash函数的概念四、发送方A发送给接收方B的信息是E(K,[M||E(PRa,H(M))]),是在三的方案基础上增加了对称密钥加密保护,可提供认证、数字签名和保密性。五、在哈希运算H中增加了通信双方共享的秘密值S,加大了对手攻击的困难性。但是,它仅仅提供了认证。3.2.1Hash函数的概念六、在五的方案基础上增加了对称密钥加密保护,可以提供保密性和认证。3.2.1Hash函数的概念针对Hash函数的攻击方法

目前,对Hash函数最有效的攻击方法是生日攻击和中途相遇攻击,这两种方法对Hash值为128比特的Hash函数在理论上是有效的,但是当Hash值超过160比特时,在计算上就是不可行的,所以目前使用Hash值大于160比特以上的Hash函数是较为安全的。

下面将介绍这两种针对Hash函数的攻击方法。3.2.1Hash函数的概念生日攻击

生日攻击是指为了寻找到能够发生碰撞的消息而在消息空间中进行搜索的一种攻击方式。它适用于任何Hash函数,并被作为衡量一个Hash函数安全与否的重要参考。它来源于概率论上著名的生日悖论问题,即在一个教室中至少需要有多少个学生才能保证有两个学生的生日相同的概率不小于1/2。若从某些人中指定一个人,则他与其他人的生日相同的概率为365-1,但是如果不指定某个日期,从这些人里面找到生日相同的人,成功的概率就大得多。

将生日问题推广到消息的集合中,就可以得到在生日攻击的成功概率尽量低的情况下所需的Hash值长度。按照现在的计算条件,要想使一个Hash函数比较安全,其输出的Hash值长度不应小于128bit。3.2.1Hash函数的概念2.中间相遇攻击

中间相遇攻击的思路与生日攻击类似,但这种攻击只适合于具有分组链接结构的Hash函数。这种攻击也是通过不断的搜索和计算,在消息集合中寻找能够产生碰撞的消息。在进行中间相遇攻击时,攻击者首先随意选出若干个消息分组,将它们分为两部分。然后对其中的第一部分从初值开始进行迭代,到中间的某一步结束,得到I个输出;第二部分从Hash值(任意选定)开始用逆函数进行反向迭代,也是到中间的某一步结束,得到J个输出。最后,对这两部分的输出进行比较,如果能得到相同的输出值,就可以得到一对碰撞消息。

类似于生日攻击,可以通过计算得到为了获得对应的碰撞消息概率所需的消息数I+J的大小。通过研究发现,为了能够抵抗选择明/密文攻击,需要分组加密函数的分组长度不小于128bit,同时函数还需要具有伪随机置换的性质。

3.2.2MD4和MD5算法一、算法简介

美国麻省理工学院教授RonaldRivest分别于1990年和1991年设计出了MD4和MD5两种信息摘要算法。MD5是在MD4的基础上发展而来的,虽然比MD4稍微慢一些,但更加安全。

MD4算法是一种用来测试信息完整性的Hash算法。它是通过32位操作数的位操作来实现的,所以适用在32位字长的处理器上并用高速软件进行实现。它的安全性并不是基于大数分解这样的数学难题,有人很快就用分析和差分的方法成功攻击了MD4算法三轮变换中的两轮,证明了它并不像期望的那样安全。于是,Rivest对MD4算法进行了改进,从而发明了MD5算法。

3.2.2MD4和MD5算法二、MD5算法消息首先被拆成若干个512位的分组,其中最后一个分组是“消息尾部+1和0组成的填充字节+64位消息长度”,以确保不同长度的消息在填充后不相同。之后,MD5将每一个512位分组又划分为16个32位子分组。每个512位消息分组就以16个32位字的形式进入算法的主循环,512位消息分组的个数决定了循环的次数。如图3-4所示,MD5的主循环有四轮,每轮进行16次操作,每一轮的操作过程相似。每次操作对a,b,c,d中的3个做一次非线性函数运算,并将所得结果加上第4个变量、一个子分组和一个常数。再将所得结果向右循环移动一位,并加上a,b,c,d中的一个。最后,用该结果取代a,b,c,d其中的一个。MD5算法的输出由四个32位分组组成,将它们级联形成一个128位的Hash值。

3.2.2MD4和MD5算法3.2.3安全Hash算法(SHA)一、安全Hash算法的发展过程1993年,美国国家标准与技术研究院(NIST)公布了安全散列算法SHA-0。1995年,NIST又公布了改进后的版本SHA-1,其设计上模仿了MD5算法,接受任意长度的输入消息,但生成的是160比特的消息摘要,抗穷举搜索的能力更强。2001年,NIST公布SHA-2作为联邦信息处理标准,包含SHA-224、SHA-256、SHA-384、SHA-512等6个算法,分别生成224比特、256比特、384比特和512比特的Hash值。2008年,NIST启动了安全Hash函数SHA-3的评选。2012年10月,GuidoBertoni,JoanDaemen,MichaelPeeters和GillesVanAssche设计的密码学函数族Keccsk被选中,被公布为新的Hash函数标准。3.2.3安全Hash算法(SHA)二、SHA-1算法SHA-1算法首先将消息填充为512位的整数倍。填充方法与MD5完全一样。SHA-1算法有五个32位变量(而MD5仅有四个),先对它们进行初始化:h0=0x67452301,h1=0xEFCDAB89,h2=0x98BADCFE,h3=0x10325476,h4=0xC3D2E1F0。完成初始化之后,将这五个变量复制到另外的变量中:h0到a,h1到b,h2到c,h3到d,h4到e。然后开始算法的主循环部分。它一次可以处理512位消息,循环的次数是消息中512位分组的数目。主循环有四轮,每轮有20次操作(MD5有四轮,每轮有16次操作)。如图3-5所示,每次操作选取a,b,c,d,e中的3个进行一次非线性运算,然后进行与MD5中类似的移位和加运算。3.2.3安全Hash算法(SHA)之后,a,b,c,d,e分别加上h0,h1,h2,h3,h4,然后让下一个消息分组继续运行算法。最后,SHA-1算法的输出结果由h0,h1,h2,h3和h4级联而成。3.2.3安全Hash算法(SHA)三、针对SHA系列算法的攻击进展1997年,王小云首次使用“比特追踪法”分析SHA-0算法,并在理论上攻破了SHA-0算法。在2004年CRYPTO的Rump会议上,王小云、冯登国、来学嘉和于红波宣布了攻击MD5、SHA-0和其它Hash函数的初步结果。2005年2月,王小云和殷益群、于红波等人发表了攻破SHA-0的算法,只需要239次计算就能找到碰撞,对SHA-1的攻击只需要269次计算就能找到一组碰撞。在2005年8月的CRYPTO会议接近尾声时,王小云、姚期智、姚储枫再次发表了攻破SHA-1的算法,可以通过263次计算找到碰撞。目前,针对SHA-2的攻击算法也已经出现,这里不做详细介绍,有兴趣的读者可查阅相关资料。

3.3.1消息加密函数3.3.2消息认证码MAC3.3消息认证函数3.3消息认证函数消息认证函数可分为以下三类:

消息加密函数。它是用整个消息加密后的密文作为对消息的认证。消息认证码(MAC)。它是一个对信源消息进行编码并用生成的定长值作为认证符的函数。Hash函数。它是公开的,可以将任意长的消息映射成具有固定长度的信息,并以该信息作为认证符。3.3.1消息加密函数消息加密本身提供了一种认证手段,即在认证中主要采用消息加密函数。下面介绍四种采用消息加密函数的认证过程。A为发送方,B为接收方。B接收到消息后,通过解密来判断消息是否来自A、消息是否完整以及有无篡改。使用了对称密码算法。当只有A和B知道密钥K时,因为没有其他人能够解密出报文的明文,该过程即提供了保密性。3.3.1消息加密函数使用了公钥密码算法,提供了保密性,但不能提供认证,因为任何第三方都可以使用B的公钥PUb来加密报文,并谎称报文是来自A的。让A使用它自己的私钥PRa对报文进行加密,并让B用A的公钥PUa进行解密。3.3.1消息加密函数A可以先用自己的私钥PRa对报文进行加密,即可提供数字签名,然后再用B的公钥PUb来加密,以此来提供保密性。3.3.2消息认证码MACMAC(MessageAuthenticationCode,消息认证码)是一种实现消息认证的方法,利用密钥来生成一个固定长度的小段信息并附加在消息之后,可以用来防止攻击者恶意篡改或伪造消息。在这种方法中,若发送方A准备向接收方B发送消息,则A就计算MAC,它是消息和密钥的函数,即MAC=C(K,M)上式中,M是输入消息,C是MAC函数,K是仅由收发双方共享的密钥,MAC为消息认证码。3.3.2消息认证码MACMAC函数类似于加密函数,但不需要可逆性。下面介绍三种用法。只提供了对消息的认证,发送方A先对消息M进行加密,然后根据密文计算认证码,并将认证码与消息密文进行连接后发送给接收方B。B根据接收到的消息密文计算认证码并进行比较,如果相同,则可以确认消息来自于发送方A,然后对消息进行解密;否则,说明消息并不是来自于发送方A,就无须对消息进行解密。3.3.2消息认证码MAC发送方A在K1的作用下先生成了对M的认证码C(K1,M),然后将明文M与它的认证码C(K1,M)连接,再用K2进行加密。接收方B接收到消息后,先用K2对消息进行解密,然后计算M的认证码,再与接收到的认证码进行比较,如果两个认证码相等则说明消息M确实来自于发送方A。3.3.2消息认证码MAC发送方A先对消息M进行加密,然后根据密文计算认证码,并将认证码与消息密文进行连接后发送给接收方B。B根据接到的消息的密文计算出认证码,并与从A发来的报文中提取的认证码进行比较,如果二者相同,则说明消息确实来自于发送方A,然后再对消息进行解密;否则,说明消息并不是来自于发送方A,就无须对消息进行解密。

3.4.1基本概念3.4.2常用数字签名技术3.4数字签名3.4.1基本概念数字签名(又称公钥数字签名)类似于写在纸上的普通物理签名,但使用了公钥加密领域的技术进行实现。签名信息是采用一套规则和一系列参数通过某种运算得到的,通过它可以鉴别认证签名者的身份并验证电子文档或数据的完整性。3.4.1基本概念

为了满足在网络环境中身份认证、数据完整性和不可否认性等安全需求,数字签名必须具有以下几个重要特性:可信性。即签名的接收方可以方便地并有效地通过一个专门的验证算法来验证出签名的真伪;不可伪造性。即除了合法的签名者之外,任何人都无法伪造出这一签名;不可复制性。即对于某一条消息的签名,任何一方都不能将此签名用作对另一条消息的签名;不可抵赖性。即签名一旦生成并被发送出去,签名的生成者将不能否认自己的签名,因为接收方可以向别人出示签名来证明消息的来源;不可修改性。即签名一旦完成,则对被签名消息的任何修改都能够被轻易发现。3.4.1基本概念采用公钥加密体制的数字签名的具体运行过程如下:①发送端首先对所要发送的消息数据采用Hash函数进行运算并获得其消息摘要,然后使用私钥对这段摘要进行加密,将加密结果作为数字签名附在所要发送的消息数据之后一同发出;②接收端通过一个可信的第三方——证书机构(CertificationAuthority,CA)获得发送端的公钥,对接收到的数字签名进行解密,得到摘要1;③接收端采用相同的Hash函数计算并获得消息数据的摘要2,然后将摘要1与摘要2进行比较,以判断签名是否有效。3.4.2常用数字签名技术目前,数字签名主要采用的是公钥密码算法,其中比较典型的有两个:RSA签名算法和ElGamal签名算法。一、RSA数字签名方案具体过程如下:(1)初始化任意选取两个大素数p和q,计算乘积n=pq以及欧拉函数值φ(n)=(p-1)(q-1);再随机选取一个整数e,满足1<e<φ(n),而且e与φ(n)互素;然后计算整数d,使得ed≡1modφ(n)。最后,公开n,e的值作为公钥,而p,q和d保密。(2)签名过程设需要签名的消息为x(x∈Zn),选择一个安全的Hash函数,发送方的私钥为d,计算SigK≡h(x)dmodn则SigK即为对消息x的签名。3.4.2常用数字签名技术(3)验证过程设接收方收到的签名消息为y,利用发送方的公钥e对签名进行验证:VerK(x,y)=TRUE⇔h(x)modn≡yemodn,其中x,y∈Zn若VerK(x,y)=TRUE,则签名有效;否则签名无效。3.4.2常用数字签名技术二、ElGamal数字签名方案ElGamal数字签名方案的基本元素是素数q和a,其中a是q的原元。用户A通过如下步骤产生公钥和私钥:生成随机整数XA,使得1<XA<q-1;计算YA=aXAmodq;则A的私钥是XA;A的公钥是{q,a,YA}。

为了对消息M进行签名,用户A首先计算M的Hash值m=H(M),这里m是满足0≤m≤q-1的整数。然后A通过如下步骤产生数字签名:选择随机整数K,满足1≤K≤q-1以及gcd(K,q-1)=1,即K与q-1互素;计算S1=a

Kmodq;计算K-1mod(q-1),即计算K模q-1的逆;3.4.2常用数字签名技术二、ElGamal数字签名方案计算S2=K-1(m-XAS1)mod(q-1);签名包括(S1,S2)对。任意用户B都能通过如下步骤验证签名:计算V1=am

modq;计算V2=(YA)S1(S1)S2modq。如果V1=V2,则说明签名合法。

3.5.1WPKI技术3.5.2双因子认证技术3.5移动互联网中使用的认证技术3.5.1WPKI技术WPKI即“无线公开密钥体系”,它是将互联网电子商务中的PKI(PublicKeyInfrastructrue,公钥基础设施)安全机制引入到无线网络环境中的一套遵循既定标准的密钥及证书管理体系。PKI是利用公钥理论和技术建立的提供信息安全服务的基础设施,它是国际公认的互联网电子商务的安全认证机制。WPKI可以对移动网络环境中使用的公开密钥和数字证书进行管理,并有效地建立起一个安全和值得信赖的无线网络环境。3.5.1WPKI技术WPKI系统也必须具有以下几部分:PKI客户端、注册机构(RA)、认证机构(CA)和证书库以及应用接口等基本组成部分:认证机构(CA)是PKI的信任基础,负责分发和验证数字证书,规定证书的有效期,发布证书的废除列表。注册机构(RA)为用户和CA之间提供一个接口,它是CA的校验者,需要在数字证书分发给请求者之前对证书进行验证。数字证书库用于存储已经签发的数字证书和公钥,用户可以由此获得所需的其他用户的证书及公钥。应用接口系统是一个完整的WPKI系统必须提供的。一个良好的应用接口系统可以使各种应用能够以安全、一致、可信的方式与WPKI进行交换,确保安全网络环境的完整性和便捷性。3.5.2双因子认证技术

双因子认证,又称为双因素认证,是一种安全认证方法。在这一认证过程中,需要用户提供两种不同的认证因素来证明自己的身份,从而更好地保护用户证书和可访问的资源。双因子认证比基于单因子的验证方式提供了一种更高级别的保证。在单因子认证中,用户只需提供一种认证因子,一般是密码或者口令。双因子认证不仅需要用户提供密码,而且还需要用户提供第二个因子,通常情况下这一因子可能是一个安全令牌或生物特征标志(如指纹或面部)。3.5.2双因子认证技术一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论