《身份认证资料.ppt》由会员分享,可在线阅读,更多相关《身份认证资料.ppt(61页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、身份认证 第一类的例子是最常用的密码和口令;第二类的例子第一类的例子是最常用的密码和口令;第二类的例子有身份证、护照、密钥盘等;第三类包括用户的生物特征有身份证、护照、密钥盘等;第三类包括用户的生物特征 ,如指纹,如指纹 、红膜、红膜、DNADNA、声纹、声纹 ,还包括用户的下意识行,还包括用户的下意识行为,比如签名。为,比如签名。这三类物理基础各有利弊。第一类方法最简单,系统这三类物理基础各有利弊。第一类方法最简单,系统开销最小,但是最不安全;第二类泄漏秘密的可能性比较开销最小,但是最不安全;第二类泄漏秘密的可能性比较小,因而安全性比第一类高,但是认证系统相对复杂;第小,因而安全性比第一类高
2、,但是认证系统相对复杂;第三类的安全性最高,比如想窃取一个人的指纹是很困难的三类的安全性最高,比如想窃取一个人的指纹是很困难的,但是涉及更复杂的算法和实现技术。,但是涉及更复杂的算法和实现技术。针对前两类基础的技术起步较早,目前相对成熟,应针对前两类基础的技术起步较早,目前相对成熟,应用比较广泛。有关第三类的技术也由于它在安全性上的优用比较广泛。有关第三类的技术也由于它在安全性上的优势正在迅速发展。势正在迅速发展。7.1.27.1.2数学基础数学基础 示证者示证者 P P 试图向验证者试图向验证者V V证明自己知道某信息。一种证明自己知道某信息。一种方法是方法是P P说出这一信息使得说出这一信
3、息使得V V相信,这样相信,这样V V也知道了这一信也知道了这一信息,这是基于知识的证明。另一种方法是使用某种有效的息,这是基于知识的证明。另一种方法是使用某种有效的数学方法,使得数学方法,使得V V相信他掌握这一信息相信他掌握这一信息 ,却不泄露任何有,却不泄露任何有用的信息,这种方法被称为零知识证明问题。用的信息,这种方法被称为零知识证明问题。零知识证明可以分为两大类:最小泄露证明(零知识证明可以分为两大类:最小泄露证明(MinimMinimum Disclosure Proofum Disclosure Proof)和零知识证明()和零知识证明(Zero Knowledge ProZer
4、o Knowledge Proofof)。)。最小泄露证明需要满足:最小泄露证明需要满足:(1)P P几乎不可能欺骗几乎不可能欺骗V V:如果:如果P P知道证明知道证明 ,他可,他可 以使以使V V以极大的概率相信他知道证明;如果以极大的概率相信他知道证明;如果P P 不知道证明,则他使得不知道证明,则他使得V V相信他知道证明的概相信他知道证明的概 率几乎为零。率几乎为零。(2 2)V V 几乎不可能知道证明的知识几乎不可能知道证明的知识 ,特别是他不,特别是他不 可能向别人重复证明过程。可能向别人重复证明过程。零知识证明除了要满足以上两个条件之外,还要满足零知识证明除了要满足以上两个条件
5、之外,还要满足第三个条件:第三个条件:(3)V V无法从无法从P P那里得到任何有关证明的知识。那里得到任何有关证明的知识。图图7.1 7.1 零知识问题零知识问题 零知识证明最通俗的例子是图零知识证明最通俗的例子是图7.17.1中的山洞问题。图中的山洞问题。图中的山洞里中的山洞里C C、D D 两点之间有一扇上锁的门,两点之间有一扇上锁的门,P P知道打开知道打开门的咒语,按照下面的协议门的咒语,按照下面的协议P P就可以向就可以向V V证明他知道咒语证明他知道咒语但是不需要告诉但是不需要告诉V V咒语的内容:咒语的内容:V V站在站在A A点;点;P P进入山洞,走到进入山洞,走到C C点
6、或点或D D点;点;当当P P消失后,消失后,V V进入到进入到B B点;点;V V指定指定P P从左边或者右边出来;从左边或者右边出来;P P按照要求出洞(如果需要通过门,则使用咒语)按照要求出洞(如果需要通过门,则使用咒语)P P和和V V重复重复-步骤步骤n n次。次。如果如果P P知道咒语,他一定可以按照知道咒语,他一定可以按照 V V 的要求正确的走的要求正确的走出山洞出山洞n n次。如果次。如果P P不知道咒语并想使不知道咒语并想使V V相信他知道咒语,相信他知道咒语,就必须每次都事先猜对就必须每次都事先猜对V V会要求他从哪一边出来,猜对一会要求他从哪一边出来,猜对一次的概率是次
7、的概率是0.50.5,猜对,猜对n n次的概率就是次的概率就是0.50.5n n,当,当n n足够大时,足够大时,这个概率接近于零。因此山洞问题满足零知识证明的所有这个概率接近于零。因此山洞问题满足零知识证明的所有条件。条件。7.1.37.1.3协议基础协议基础 认证协议可以分为双向认证协议(认证协议可以分为双向认证协议(mutual authenticatiomutual authentication protocoln protocol)和单向认证协议()和单向认证协议(one-way authentication protoone-way authentication protoColC
8、ol)。双向认证协议是最常用的协议。双向认证协议是最常用的协议 ,它使得通信双方,它使得通信双方互相认证对方的身份。单向认证协议是通信的一方认证另互相认证对方的身份。单向认证协议是通信的一方认证另 一方的身份,比如服务器在提供客户申请的服务之前,先一方的身份,比如服务器在提供客户申请的服务之前,先要认证客户是否是这项服务的合法用户,但是不需要向用要认证客户是否是这项服务的合法用户,但是不需要向用户证明自己的身份。户证明自己的身份。基于对称密钥的认证协议往往需要双方事先已经通过基于对称密钥的认证协议往往需要双方事先已经通过其他方式(比如电话、信函或传递等物理方法)拥有共同其他方式(比如电话、信函
9、或传递等物理方法)拥有共同的密钥。而基于公钥的认证协议的双方一般需要知道对方的密钥。而基于公钥的认证协议的双方一般需要知道对方的公钥。公钥的获得相对于对称密钥要简便,比如通过的公钥。公钥的获得相对于对称密钥要简便,比如通过C CA A 获得对方的数字证书,这是基于公钥的认证协议的优势获得对方的数字证书,这是基于公钥的认证协议的优势。但是,公钥的缺点是加解密速度慢、代价大,所以认证。但是,公钥的缺点是加解密速度慢、代价大,所以认证协议的最后,双方要协议的最后,双方要协商出一个对称密钥作为下一步通信协商出一个对称密钥作为下一步通信的会话密钥。产生会话密钥还有安全性方面的考虑:一旦的会话密钥。产生会
10、话密钥还有安全性方面的考虑:一旦会话密钥泄漏,则只会泄漏本次通信的内容,而不会带来会话密钥泄漏,则只会泄漏本次通信的内容,而不会带来更大的损失,而且通信者发现会话密钥泄漏后,就可以用更大的损失,而且通信者发现会话密钥泄漏后,就可以用原有的密钥协商出新的会话密钥,重新开始新的会话。所原有的密钥协商出新的会话密钥,重新开始新的会话。所以,无论是基于公钥的还是基于对称密钥的认证协议,都以,无论是基于公钥的还是基于对称密钥的认证协议,都经常要产生对称会话密钥。经常要产生对称会话密钥。在针对协议的攻击手法中在针对协议的攻击手法中 ,消息重放攻击(,消息重放攻击(replayreplay攻攻击)是一种很常
11、用的主动攻击。消息重放攻击最典型的情击)是一种很常用的主动攻击。消息重放攻击最典型的情况是:况是:A A与与B B 通信时,第三方通信时,第三方 C C 窃听获得了窃听获得了A A过去发给过去发给B B的的报文报文M M,然后冒充,然后冒充A A的身份将的身份将MM发给发给B B,希望能够以,希望能够以A A的身的身份与份与 B B 建立通信,并从中获得有用信息。在最坏情况下,建立通信,并从中获得有用信息。在最坏情况下,重放攻击可能导致被攻击者误认对方身份、暴露密钥和其重放攻击可能导致被攻击者误认对方身份、暴露密钥和其他重要信息,至少也可以干扰系统的正常运行。他重要信息,至少也可以干扰系统的正
12、常运行。两种防止重放攻击的常用方式是时间戳方式和提问两种防止重放攻击的常用方式是时间戳方式和提问/应答方式。应答方式。时间戳(时间戳(Time StampTime Stamp)方式的基本思想是:)方式的基本思想是:A A接受一接受一个新消息仅当该消息包含一个时间戳,并且该时间戳在个新消息仅当该消息包含一个时间戳,并且该时间戳在A A看来是足够接近看来是足够接近A A所知道的当前时间。这种方法要求不同所知道的当前时间。这种方法要求不同参与者之间的时钟同步。参与者之间的时钟同步。时间戳方法不能用于面向连接的应用,最大的困难是时间戳方法不能用于面向连接的应用,最大的困难是时钟同步问题:时钟同步问题:
13、(1 1)由于某一方的时钟机制故障可能导致临时失去同由于某一方的时钟机制故障可能导致临时失去同 步,这将增大攻击成功的机会。步,这将增大攻击成功的机会。(2 2)由于变化的和不可预见的网络延迟,不能期望分由于变化的和不可预见的网络延迟,不能期望分 布式时钟保持精确的同步。布式时钟保持精确的同步。因此,任何基于时间戳的过程必须采用时间窗的方式因此,任何基于时间戳的过程必须采用时间窗的方式来处理:一方面,时间窗应足够大,以包容网络延迟;另来处理:一方面,时间窗应足够大,以包容网络延迟;另一方面,时间窗应足够小,以最大限度地减小遭受攻击的一方面,时间窗应足够小,以最大限度地减小遭受攻击的机会。机会。
14、另一种提问另一种提问/应答(应答(Challenge/Response Challenge/Response)方式不需要)方式不需要时钟同步。提问时钟同步。提问/应答方式的基本原理是:应答方式的基本原理是:A A期望从期望从B B获得获得一个新消息一个新消息,首先发给首先发给B B一个临时值一个临时值(challenge),(challenge),并要求后续并要求后续从从 B B 收到的消息收到的消息(response)(response)中包含正确的这个临时值或是由中包含正确的这个临时值或是由这个临时值进行某种事先约定的计算的正确结果。这个临这个临时值进行某种事先约定的计算的正确结果。这个临
15、时值往往是一个随机数,称为现时(时值往往是一个随机数,称为现时(noncenonce)。)。提问提问/应答方式的缺点是不适应非连接性的应用应答方式的缺点是不适应非连接性的应用 ,因,因为它要求在传输开始之前先有握手,要求实时性较高。为它要求在传输开始之前先有握手,要求实时性较高。7.27.2身份认证协议身份认证协议 认证协议按照认证的方向可以分为双向认证协议和单认证协议按照认证的方向可以分为双向认证协议和单向认证协议,按照使用的密码技术可以分为基于对称密码向认证协议,按照使用的密码技术可以分为基于对称密码的认证协议和基于公钥密码的认证协议。的认证协议和基于公钥密码的认证协议。本节基于这两种分类
16、介绍并分析几种基本的认证协议。本节基于这两种分类介绍并分析几种基本的认证协议。7.2.17.2.1双向认证协议双向认证协议 双向认证就是使通信双方确认对方的身份,适用于通双向认证就是使通信双方确认对方的身份,适用于通信双方同时在线的情况。信双方同时在线的情况。7.2.1.17.2.1.1基于对称密码的双向认证协议基于对称密码的双向认证协议 Needham/SchroederNeedham/Schroeder是一个基于对称加密算法的协议,是一个基于对称加密算法的协议,它要求有可信任的第三方它要求有可信任的第三方KDCKDC参与参与 ,采用,采用Challenge/RespChallenge/Re
17、sponseonse的方式,使得的方式,使得 A A、B B互相认证对方的身份互相认证对方的身份 。协议过程。协议过程是:是:(1)(2)(3)(4)(5)其中,其中,KDCKDC是密钥分发中心是密钥分发中心 ;IDIDA A表示表示A A的身份唯一的身份唯一标识;密钥标识;密钥K Ka a和和K Kb b分别是分别是A A和和KDCKDC、B B和和KDCKDC之间共享的之间共享的密钥密钥 ;N N1 1 和和N N2 2 是两个是两个nonce nonce;f(N)f(N)是对是对N N进行一个运算,进行一个运算,比如比如f(N)=N+1f(N)=N+1。本协议的目的是认证。本协议的目的是
18、认证A A和和B B的身份后,安的身份后,安全地分发一个会话密钥全地分发一个会话密钥K Ks s给给A A和和B B。第(第(1 1)步,)步,A A向向KDCKDC申请要和申请要和B B通信。通信。A A在第(在第(2 2)步)步安全地得到了一个新的会话密钥。第(安全地得到了一个新的会话密钥。第(3 3)步,只能由)步,只能由B B解解密并理解,密并理解,B B也获得会话密钥也获得会话密钥 。第(。第(4 4)步,)步,B B告诉告诉A A 已知已知道正确的道正确的K Ks s了了 ,从而证明了,从而证明了B B的身份。第(的身份。第(5 5)步表明)步表明B B相相信信A A也知道也知道K
19、 Ks s,从而认证,从而认证A A的身份。的身份。第(第(4 4)、()、(5 5)步的目的是为了防止某种类型的重放)步的目的是为了防止某种类型的重放攻击攻击 ,特别是如果敌方能够在第(,特别是如果敌方能够在第(3 3)步捕获该消息并重)步捕获该消息并重放之,这将在某种程度上干扰破坏放之,这将在某种程度上干扰破坏B B方的运行操作。方的运行操作。由于除了由于除了KDCKDC之外只有之外只有A A 知道知道K Ka a、只有、只有B B知道知道K Kb b,所,所以双方都可以向对方证明自己的身份。以双方都可以向对方证明自己的身份。但是,这个协议仍然有漏洞。假定攻击方但是,这个协议仍然有漏洞。假
20、定攻击方C C已经掌握已经掌握A A和和 B B 之间通信的一个老的会话密钥,之间通信的一个老的会话密钥,C C可以在第(可以在第(3 3)步冒)步冒充充A A,利用老的会话密钥欺骗,利用老的会话密钥欺骗B B。除非除非B B记住所有以前使用记住所有以前使用的与的与A A通信的会话密钥,否则通信的会话密钥,否则B B无法判断这是一个重放攻击无法判断这是一个重放攻击。然后,如果。然后,如果C C可以中途阻止第(可以中途阻止第(4 4)步的握手信息则可以)步的握手信息则可以冒充冒充A A在第(在第(5 5)步响应。从这一点起)步响应。从这一点起C C就可以向就可以向B B发送伪造发送伪造的消息,而
21、的消息,而B B认为是在与认为是在与A A进行正常通信进行正常通信 Denning Denning结合了时间戳的方法,进行了改进:结合了时间戳的方法,进行了改进:(1 1)(2 2)(3 3)(4 4)(5 5)其中,其中,T T是时间戳;是时间戳;是是KDCKDC时钟与本地时钟(时钟与本地时钟(A A或或B B)之间差异的估计值;)之间差异的估计值;是预期的网络延迟时间。是预期的网络延迟时间。Denning Denning 协议比协议比Needham/SchroederNeedham/Schroeder协议在安全性方面协议在安全性方面增强了一步,然而又提出新的问题,即必须依靠时钟同步增强了一
22、步,然而又提出新的问题,即必须依靠时钟同步。可能发生针对时钟同步的攻击。如果发送者的时钟比可能发生针对时钟同步的攻击。如果发送者的时钟比接收者的时钟要快,攻击者就可以从发送者处窃听消息,接收者的时钟要快,攻击者就可以从发送者处窃听消息,并等待时间戳对接收者来说成为当前时重放给接收者,这并等待时间戳对接收者来说成为当前时重放给接收者,这种重放将会得到意想不到的后果。称为抑制重放攻击。种重放将会得到意想不到的后果。称为抑制重放攻击。7.2.1.27.2.1.2基于公钥密码的双向认证协议基于公钥密码的双向认证协议 使用公钥密码算法,可以克服基于对称密码的认证协使用公钥密码算法,可以克服基于对称密码的
23、认证协议中的问题。议中的问题。请看请看WOO92bWOO92b协议,同样需要有可信的第三方参与:协议,同样需要有可信的第三方参与:(1)(2)(3)(4)(5)(6)(7)其中,其中,KUKUa a是是A A的公钥;的公钥;KRKRa a是是A A的私钥;的私钥;KUKUauthauth是是KDCKDC的公钥;的公钥;KRKRauthauth是是KDCKDC的私钥。的私钥。第第1 1步,步,A A向向 KDC KDC 提出和提出和B B通信。第通信。第2 2步,步,A A得到得到B B的公的公钥。第钥。第3 3步,步,A A向向B B提出通信要求,包含一个现时。第提出通信要求,包含一个现时。第
24、4 4步,步,B B向向 KDC KDC询问询问A A的公钥。第的公钥。第5 5步,步,B B得到得到A A的公钥和一段的公钥和一段KDKDC C签名的报文。第签名的报文。第6 6步,步,B B 将这段报文和现时将这段报文和现时 N Nb b发给发给A A,A A在在 KDC KDC 签名的保文中找到签名的保文中找到N Na a ,知道这不是一个重放。第,知道这不是一个重放。第7 7步,步,A A使用刚得到的会话密钥回答使用刚得到的会话密钥回答B B。协议中协议中 ,A A和和B B都向都向KDCKDC索取对方的公钥,如果对方索取对方的公钥,如果对方能正确解密用其公钥加密的消息,就能够证明对方
25、的身份能正确解密用其公钥加密的消息,就能够证明对方的身份。7.2.27.2.2单向认证协议单向认证协议 许多单向认证的应用(比如许多单向认证的应用(比如emailemail)不需要双方同时在)不需要双方同时在线。一方在向对方证明自己身份的同时,即可发送数据,线。一方在向对方证明自己身份的同时,即可发送数据,另一方收到后,首先验证发送方的身份,如果身份有效,另一方收到后,首先验证发送方的身份,如果身份有效,就可以接受数据。就可以接受数据。单向认证协议中只有一方向另一方证明自己的身份,单向认证协议中只有一方向另一方证明自己的身份,因此过程一般都相对简单。下面是一个不需要第三方的基因此过程一般都相对
26、简单。下面是一个不需要第三方的基于对称密码的单向认证协议于对称密码的单向认证协议 ,要求,要求 A A和和B B 事先拥有共享密事先拥有共享密钥。钥。(1 1)(2 2)(3 3)第第1 1步,步,A A将自己的身份和一个将自己的身份和一个noncenonce发给发给B B,希望和,希望和B B通信。第通信。第2 2步,步,B B生成一个会话密钥生成一个会话密钥K Ks s,连同对,连同对A A的的noncnonce e的应答和一个新的的应答和一个新的 nonce nonce 一起用两人的共享密钥加密后一起用两人的共享密钥加密后发给发给A A;A A 收到后,用共享密钥解密得到收到后,用共享密
27、钥解密得到noncenonce的正确应的正确应答,则相信答,则相信B B的身份,同时得到的身份,同时得到K Ks s 。第。第3 3步,步,A A 计算出第计算出第2 2个个noncenonce的应答,用的应答,用K Ks s 加密,发给加密,发给B B;B B 收到后如果能正收到后如果能正确解密出应答,则相信确解密出应答,则相信A A的身份,因为只有的身份,因为只有A A拥有两人的拥有两人的共享密钥。共享密钥。这种方案的缺点是双方都必须等待对方的回答,不适这种方案的缺点是双方都必须等待对方的回答,不适用于双方不同时在线的情况。用于双方不同时在线的情况。基于第三方的方案可以避免这一问题,第三方
28、一般长基于第三方的方案可以避免这一问题,第三方一般长期在线,双方都可以及时和第三方进行通信。下述方案要期在线,双方都可以及时和第三方进行通信。下述方案要求通信双方都事先与第三方有共享密钥。求通信双方都事先与第三方有共享密钥。(1)(2)(3)第第1 1步,步,A A向向KDCKDC要求和要求和B B通信,同时发给通信,同时发给KDCKDC一个一个nonoNce Nce。第。第2 2步,步,KDCKDC发给发给A A一个用一个用A A的密钥加密的消息,包的密钥加密的消息,包括一个会话密钥、括一个会话密钥、A A发的发的nonce nonce、一段用、一段用B B的的密钥加密的消密钥加密的消息息
29、;A A解密得到解密得到 。第。第3 3步,步,A A 将以将以B B的密钥加密的那段消息的密钥加密的那段消息和用加密的数据一起发给和用加密的数据一起发给B B;B B 收到后首先解密得到收到后首先解密得到A A的身的身份标识和,然后就可以解密份标识和,然后就可以解密A A发来的数据了。发来的数据了。以上方案中,以上方案中,A A 向向 B B 认证自己身份的同时将数据一同认证自己身份的同时将数据一同发给发给B B,并不要求,并不要求 B B 当时在线。但是这种方案不能抵挡重当时在线。但是这种方案不能抵挡重防攻击,防攻击,B B收到第收到第3 3条消息不能判定这是一个真实的消息还条消息不能判定
30、这是一个真实的消息还是一个重防。是一个重防。基于公钥密码的单向身份认证协议可以非常简单,如基于公钥密码的单向身份认证协议可以非常简单,如下方案:下方案:这种方案要求这种方案要求A A、B B互相知道对方的公钥。首先,互相知道对方的公钥。首先,A A用用B B 的公钥加密一个会话密钥的公钥加密一个会话密钥 ,然后,然后A A用会话密钥加密数据用会话密钥加密数据和用自己私钥签名的报文摘要,和用自己私钥签名的报文摘要,A A将这些内容一起发送给将这些内容一起发送给B B。B B 收到后,首先用自己私钥解密出会话密钥,然后解收到后,首先用自己私钥解密出会话密钥,然后解密报文和密报文和 A A 的签名的
31、签名 ,最后计算出报文摘要验证,最后计算出报文摘要验证A A的签名,的签名,从而确定从而确定A A的身份。的身份。7.37.3身份认证的实现身份认证的实现 本节讲述实际应用中的几种身份认证协议。本节讲述实际应用中的几种身份认证协议。7.3.17.3.1拨号认证协议拨号认证协议 在拨号环境中,要进行两部分的认证:首先是用户的在拨号环境中,要进行两部分的认证:首先是用户的调制解调器和网络访问服务器调制解调器和网络访问服务器 (NASNAS)之间使用)之间使用PPPPPP认证认证协议认证协议认证 ,这类认证协议包括,这类认证协议包括 PAP PAP、CHAPCHAP等;然后等;然后NASNAS和认证
32、服务器进行认证,这类协议包括和认证服务器进行认证,这类协议包括TACACS+TACACS+、RADIRADIUSUS等。整个认证过程可以用图等。整个认证过程可以用图7.27.2表示。表示。图图7.2 7.2 拨号网络认证拨号网络认证 PPPPPP(Point to Point ProtocolPoint to Point Protocol)是点对点链路上的标准)是点对点链路上的标准化化Internet IP Internet IP 封装封装 。在建立了链路之后,开始网络层协议。在建立了链路之后,开始网络层协议之前之前 ,PPPPPP提供了一个可选的认证阶段。图提供了一个可选的认证阶段。图7.3
33、7.3是是PPPPPP的帧的帧格式。格式。其中各个字段的含义如下:其中各个字段的含义如下:(1)标志:单字节,值为标志:单字节,值为0111111001111110,指示一帧的开,指示一帧的开 始或结尾。始或结尾。(2 2)地址:单字节,值为地址:单字节,值为1111111111111111,标准广播地址。,标准广播地址。标志标志地址地址控制控制协议协议信息信息FCS标志标志 (3)控制:单字节,值为控制:单字节,值为0000001100000011,请求无序列帧中,请求无序列帧中 用户数据的传输。用户数据的传输。(4 4)协议:双字节,标识封装在信息字段使用的协议。协议:双字节,标识封装在信
34、息字段使用的协议。(5)FCSFCS:Frame Check SequenceFrame Check Sequence,即帧检查序列。,即帧检查序列。7.3.1.1 PPP7.3.1.1 PPP口令认证协议口令认证协议 口令认证协议(口令认证协议(Password Authentication ProtocolPassword Authentication Protocol,PAP PAP)结构简单,使对等实体通过双向握手进行认证。图结构简单,使对等实体通过双向握手进行认证。图7.47.4是是PPP PPP PAPPAP建立初始链路的帧格式。建立初始链路的帧格式。标志标志地址地址控制控制协协
35、议议0 xc023=PAP信息信息FCS标志标志类型类型标识符标识符 长度长度 数据数据图图7.4 PPP PAP7.4 PPP PAP帧格式帧格式 将将PPPPPP帧中的协议字段设置为帧中的协议字段设置为 0 xC023 0 xC023,信息字段内为,信息字段内为PAPPAP协议内容。其中,各字段的解释是:协议内容。其中,各字段的解释是:(1 1)类型:类型:a)a)认证要求;认证要求;2)2)认证确认认证确认;c);c)认证否认。认证否认。(2 2)标识符:单字节,帮助匹配请求和应答标识符:单字节,帮助匹配请求和应答 (3)长度:双字节,指出长度:双字节,指出PAPPAP包的长度,包括代码
36、、包的长度,包括代码、标识符、长度和数据字段标识符、长度和数据字段 (4 4)数据:数据:0 0或多个字节或多个字节 链路建立起来以后,使用包含对等实体名称和口令的链路建立起来以后,使用包含对等实体名称和口令的认证请求包初始化认证请求包初始化PAPPAP认证认证 。认证请求包内的信息字段格。认证请求包内的信息字段格式如图式如图7.57.5。请求者不停发送认证请求包,直到收到一个回复包或请求者不停发送认证请求包,直到收到一个回复包或者重试计数器过期。认证者收到请求者发来的一个对等者重试计数器过期。认证者收到请求者发来的一个对等IDID/口令口令 (Peer-ID/PasswordPeer-ID/
37、Password)对后对其进行比较,如果这个)对后对其进行比较,如果这个对等对等ID/ID/口令对是可识别、可接受的,认证者回复口令对是可识别、可接受的,认证者回复AuthentiAuthenticate-Ackcate-Ack(Authenticate AcknowledgeAuthenticate Acknowledge);如;如果不可识别或者果不可识别或者 代码代码1 1标识符标识符长度长度数据数据对等实体标识符长度对等实体标识符长度对等实体标识符对等实体标识符口令长度口令长度口令口令图图7.5 PPP PAP7.5 PPP PAP认证请求帧格式认证请求帧格式 不可接受,认证者回复不可接
38、受,认证者回复Authenticate-NakAuthenticate-Nak(Authenticate NegaAuthenticate Negative Acknowledgetive Acknowledge)。)。PAP PAP不是强健的认证协议,缺点主要有以下几点:不是强健的认证协议,缺点主要有以下几点:(1 1)PAPPAP只认证对等实体;只认证对等实体;(2 2)口令在电路中以明文传输;口令在电路中以明文传输;(3)没有防止重防攻击或者反复的攻击。没有防止重防攻击或者反复的攻击。7.3.1.2 PPP7.3.1.2 PPP质询质询-握手协议握手协议 质询质询-握手协议(握手协议(C
39、hallenge-Handshake Authentication Challenge-Handshake Authentication ProtocolProtocol,CHAPCHAP)使用三次握手的方式,周期性地认证被)使用三次握手的方式,周期性地认证被认证者的身份。一旦连接建立起来,协议执行,并且可以认证者的身份。一旦连接建立起来,协议执行,并且可以在任意时刻重复执行。在任意时刻重复执行。CHAP CHAP共有共有4 4种帧类型,图种帧类型,图7.67.6是是CHAPCHAP的帧格式。的帧格式。将将PPPPPP帧中的协议字段设置为帧中的协议字段设置为0 xC2230 xC223,信息字
40、段内为,信息字段内为CHAPCHAP协议内容。其中,各字段的解释是:协议内容。其中,各字段的解释是:(1 1)类型:类型:a)a)质询质询;b);b)响应响应;c);c)失败失败;d);d)成功成功 (2 2)标识符:单字节,帮助匹配请求和应答标识符:单字节,帮助匹配请求和应答标志标志地址地址控制控制协议协议0 xc223=chap信息信息FCS标志标志类型类型标识符标识符长度长度数据数据图图7.6 PPP CHAP7.6 PPP CHAP帧格式帧格式 (3)长度:双字节,指出长度:双字节,指出CHAPCHAP包的长度,包括代码包的长度,包括代码 、标识符、长度和数据字段、标识符、长度和数据字
41、段 (4 4)数据:数据:0 0或多个字节或多个字节 CHAP CHAP采用基于采用基于noncenonce的的 Challenge/Response Challenge/Response算法算法 ,要,要求两个相互认证的实体事先共享一个密钥。如果需要双向求两个相互认证的实体事先共享一个密钥。如果需要双向认证认证 ,可以将,可以将CHAPCHAP按两个相反的方向执行两次,两次执按两个相反的方向执行两次,两次执行可以使用同一个共享密钥,但是更好的做法是使用两个行可以使用同一个共享密钥,但是更好的做法是使用两个不同的共享密钥。不同的共享密钥。CHAP CHAP的具体认证过程是:的具体认证过程是:(
42、1 1)链路建立完成后,认证者发给被认证者一链路建立完成后,认证者发给被认证者一个个 challenge challenge,这个,这个challengechallenge具有唯一的标识符。具有唯一的标识符。(2 2)被认证者以被认证者以challenge challenge 作为一个单向作为一个单向HashHash函数的输函数的输 入入 ,计算出,计算出response response,发回给认证者,报文中还,发回给认证者,报文中还 包括包括 challenge challenge的标识符的标识符 。因为有可能认证者收不。因为有可能认证者收不 到到responseresponse,所以,所
43、以 response response是可以重发的,为了说是可以重发的,为了说 明这个明这个responseresponse是哪个是哪个challengechallenge的应答,所以要包的应答,所以要包 含含challengechallenge的标识符。的标识符。(3 3)认证者比较收到的认证者比较收到的 response response 和自己的计算结果是和自己的计算结果是 否相同,然后发送一个成功或者失败的消息给被否相同,然后发送一个成功或者失败的消息给被 认证者认证者 。被认证者发送。被认证者发送response response 之后如果一定时之后如果一定时 间以后仍旧收不到成功或
44、失败的结果,就会重发间以后仍旧收不到成功或失败的结果,就会重发 response response。7.3.1.3 TACACS+7.3.1.3 TACACS+协议协议 TACACS TACACS协议是一种基于协议是一种基于UDPUDP的协议,最初由的协议,最初由BBNBBN开开发,之后被发,之后被 Cisco Cisco多次扩展多次扩展 。TACACS+TACACS+是是TACACS TACACS 的最新的最新版本,基于版本,基于TCPTCP协议。协议。TACACS+TACACS+是客户机是客户机/服务器型协议:服务器型协议:TACACS+TACACS+客户客户机通常是一个机通常是一个NAS
45、NAS;而;而TACACS+TACACS+服务器是一个监控程序,服务器是一个监控程序,监听监听4949号端口。号端口。TACACS+TACACS+的基本设计组件有认证、授权和记账。的基本设计组件有认证、授权和记账。(1 1)TACACS+TACACS+认证认证 TACACS+TACACS+的认证是可选的,可以根据需要进行设的认证是可选的,可以根据需要进行设 设置。设置。TACACS+TACACS+允许允许TACACS+TACACS+客户端采用任意认证协议(客户端采用任意认证协议(PPP PAPPPP PAP、PPP CHAPPPP CHAP、KerberosKerberos等),在拨号网络环境
46、中,等),在拨号网络环境中,通常使用通常使用PPP PAPPPP PAP或或PPP CHAP PPP CHAP。另外,。另外,TACACS+TACACS+的认证交的认证交换包可以包括任意的长度和内容。换包可以包括任意的长度和内容。TACACS+TACACS+认证用到认证用到3 3种类型的包:种类型的包:lSTART START,由,由TACACS+TACACS+客户机发送给客户机发送给TACACS+TACACS+服务器服务器lCONTINUECONTINUE,由,由TACACS+TACACS+客户机发送给客户机发送给TACACS+TACACS+服服务器。务器。lREPLYREPLY,由,由TA
47、CACS+TACACS+服务器发送给服务器发送给TACACS+TACACS+客户机客户机 TACACS+TACACS+的认证过程有以下的认证过程有以下3 3步:步:l客户机发送一个客户机发送一个STARTSTART包给服务器。包给服务器。STARTSTART包的内包的内容包括被执行的认证类型容包括被执行的认证类型 (明文口令、(明文口令、PPP PAPPPP PAP或或PPP CHAPPPP CHAP等等 ),还可能包括用户名等其他认证数,还可能包括用户名等其他认证数据据 。STARTSTART包只在一个认证会话开始时使用一次,包只在一个认证会话开始时使用一次,序列号永远是序列号永远是1 1。
48、l服务器收到服务器收到STARTSTART包以后,回送一个包以后,回送一个REPLYREPLY包,指包,指示认证继续还是结束。如果认证继续,示认证继续还是结束。如果认证继续,REPLYREPLY包还包还需要指出需要哪些新信息。需要指出需要哪些新信息。l如果客户机收到认证结束的如果客户机收到认证结束的REPLYREPLY包,则认证结束包,则认证结束 ;如果收到认证继续的;如果收到认证继续的REPLYREPLY包,则向服务器发送包,则向服务器发送 CONTINUE CONTINUE包包 ,其中包括服务器要求的信息,其中包括服务器要求的信息 ,如,如 此反复,直到认证结束。此反复,直到认证结束。(2
49、)TACACS+TACACS+授权授权 认证结束后认证结束后 ,TACACS+TACACS+客户机可以启动授权过程客户机可以启动授权过程 。如果一个未被认证的用户请求授权,由授权代理决定是否如果一个未被认证的用户请求授权,由授权代理决定是否为其提供服务。为其提供服务。TACACS+TACACS+授权过程分为以下两步:授权过程分为以下两步:l客户端向服务器发送一个客户端向服务器发送一个REQUESTREQUEST包,内容包括包,内容包括 用户和过程的真实性、请求授权的服务和选项。用户和过程的真实性、请求授权的服务和选项。l服务器回复客户端一个服务器回复客户端一个RESPONSERESPONSE包
50、。包。(3 3)TACACS+TACACS+记账记账 TACACS+TACACS+在完成认证和授权之后通常要进行记账。在完成认证和授权之后通常要进行记账。TACACS+TACACS+有有3 3种类型的记账记录:种类型的记账记录:l“开始记录开始记录”(Start RecordsStart Records):指示一个服务即):指示一个服务即 将开始。将开始。l“停止记录停止记录”(Stop RecordsStop Records):指示一个服务已):指示一个服务已 经停止。经停止。l“更新记录更新记录”(Update RecordsUpdate Records):指示一个服务):指示一个服务仍在