PPP扩展认证协议_第1页
PPP扩展认证协议_第2页
PPP扩展认证协议_第3页
PPP扩展认证协议_第4页
PPP扩展认证协议_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

StatusofthisMemoThisdocumentspecifiesanInternetstandardstrackprotocolfortheInternetcommunity,andrequestsdiscussionandsuggestionsforimprovements.Pleaserefertothecurrenteditionofthe"InternetOfficialProtocolStandards"(STD1)forthestandardizationstateandstatusofthisprotocol.Distributionofthismemoisunlimited.CopyrightNoticeCopyright(C)TheInternetSociety(1998).AllRightsReserved.摘要点到点协议(PPP)提供一种在点到点链路上传输多协议报文的标准方法。在PPP中定义了一个可扩展的链路控制协议(LCP),LCP协议允许协商认证协议,从而可以在网络层报文在链路上传输之前对对端进行认证。本文档定义了PPP扩展认证协议(EAP)。目录1介绍31.1要求规范31.2术语32PPP扩展认证协议(EAP)32.1配置选项(ConfigOption)格式42.2报文格式4请求和应答5成功和失败63EAP请求/应答类型7标识Identification7通知Notification83.3否定Nak83.4MD5挑战字83.5一次密码(OTP)93.6通用令牌卡94安全考虑95参考文献106鸣谢101.介绍为了在点到点的链路上进行通信,PPP链路的每一端在链路建立阶段必须首先发送LCP报文配置数据链路。链路建立之后,PPP提供可选的认证阶段,可以在进入NCP阶段之前对对端进行认证。缺省情况下,认证过程不是必须的。如果需要链路认证,PPP实现必须在链路建立阶段指定“认证协议”配置选项。这些认证协议主要是用在主机或者路由器,这些主机和路由器通过交换电路线或者拨号线连在PPP网络服务器上,但是也适用于专线。PPP网络服务器可以用主机或路由器的认证身份来作为网络层协商的选项。本文定义了PPP的扩展认证协议(EAP)。链路建立和认证阶段以及其中的认证协议配置选项在PPP协议中定义[1]。1.1要求规范在本文中用以下几个词表示规范描述要求,这几个词用大些(黑体)表示。MUST“必须”,也就是形容词“必需的”,意思是该项是本规范的绝对要求。MUSTNOT"不得”,意思是该项是本规范所绝对禁止的。SHOULD"应该”,也就是形容词“推荐的”,意思是在某些场合可能由于某种原因忽略该项,但是协议的完全实现必须能够理解该项,在决定其他方式之前要经过仔细考虑。MAY“可以”,也就是形容词“可选的”,意思是该项可以作为可选集使用,不包含该选项的协议实现必须能够和包含了该选项的实现交互协作。1.2术语本文频繁使用下面的术语:觥Autherticator认证者链路要求认证的一端。认证者在链路建立阶段的配置请求项中指定要使用的认证协议。觥Peer对端点到点链路的另一端,由认证者认证的另一端。觥Slientlydiscard静静丢弃指直接丢弃数据包,不作进一步处理。实现中应该提供记录错误的能力——包括所丢弃报文的内容,还应该在统计计数器中记录这个事件。2PPP扩展认证协议(EAP)PPP扩展认证协议(EAP)是一个用于PPP认证的通用协议,可以支持多种认证方法。EAP并不在链路建立阶段指定认证方法,而是把这个过程推迟到认证阶段。这样认证方就可以在得到更多的信息以后再决定使用什么认证方法。这种机制还允许PPP认证方简单地把收到的认证报文透传给后方的认证服务器,由后方的认证服务器来真正实现各种认证方法。1.在链路阶段完成以后,认证方向对端发送一个或多个请求报文。在请求报文中有一个类型字段用来指明认证方所请求的信息类型,例如是对端的ID、MD5的挑战字、一次密码(OTP)以及通用令牌卡等°MD5的挑战字对应于CHAP认证协议的挑战字。典型情况下,认证方首先发送一个ID请求报文随后再发送其他的请求报文。当然,并不是必须要首先发送这个ID请求报文,在对端身份是已知的情况下(如租用线、拨号专线等)可以跳过这个步骤。对端对每一个请求报文回应一个应答报文。和请求报文一样,应答报文中也包含一个类型字段,对应于所回应的请求报文中的类型字段。认证方通过发送一个成功或者失败的报文来结束认证过程。优点:EAP可以支持多种认证机制,而无需在LCP阶段预协商过程中指定。某些设备(如:网络接入服务器)不需要关心每一个请求报文的真正含义,而是作为一个代理把认证报文直接透传给后端的认证服务器。设备只需关心认证结果是成功还是失败,然后结束认证阶段。缺点:EAP需要在LCP中增加一个新的认证协议,这样现有的PPP实现要想使用EAP就必须进行修改。同时,使用EAP也和现有的在LCP协商阶段指定认证方法的模型不一致。2.1配置选项(ConfigOption)格式用于指定EAP认证协议的认证协议配置选项格式如下所示,字段的传输顺序是从左向右。012301234567890123456789012345678901+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ITypelLengthlAuthentication-Protocoll+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+类型Type3长度Length4认证协议Authentication-ProtocolC227(16进制)对应于PPP的扩展认证协议EAP1.1报文格式当PPP帧的协议字段是16机制的C227的时候,表示PPP帧的信息字段里封装了一个完整的EAP报文。EAP报文的格式如下所示,字段的传输顺序是从左向右。012301234567890123456789012345678901+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ICodelldentifierlLengthl+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+lData...+-+-+-+-+代码Code代码字段占一个字节,表明了EAP报文的报文类型。分配如下:1请求2应答3成功4失败标识Identifier标识字段占一个字节,用于应答报文和请求报文之间进行匹配。长度Length长度字段占两个字节,用于表示EAP报文的长度,包括代码、标识、长度和数据字段。超出长度的字节应该视为链路层的填充字节,接收方应该忽略。数据Data数据字段是零个或多个字节,数据字段格式由代码字段确定。请求和应答描述请求报文由认证方发向对端。每一个请求报文都有一个类型字段用来表示请求方在请求什么信息。认证方必须向对端发送一个EAP报文并把其中的代码(CODE)字段设为1(REQUEST)。认证方必须在收到一个有效的应答报文或者在一个可选的计数器计满后再发送其他的请求报文。重传的请求报文中的标识(ID)字段必须保持不变,以便区分重传的请求报文和新的请求报文。数据字段的内容取决于类型字段的值。对端每收到一个请求报文后必须回应一个报文。只有在收到请求报文的情况下才发送应答报文,请求报文没有超时重传的情况。应答报文中标识(ID)字段必须和请求报文中的标识字(ID)段相匹配。1实现注意事项:由于在认证过程经常涉及到用户输入,必须采取合适的重传策略和超时时间。建议缺省情况下采用6秒的超时计数器,最大重传次数设为10。在某些情况下可以延长超时时间(如涉及到令牌卡的情况九另外,对端在等待用户输入的时候必须静静地丢弃收到的重复的请求报文。请求和应答报文的格式如下所示,字段的传输顺序是从左向右。012301234567890123456789012345678901+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Code|Identifier|Length|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Type|Type-Data...+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-代码Code1请求2.应答标识Identifier标识字段占一个字节。由于等待应答超时而重传的请求报文的标识字段必须保持不变。新的(不是重传的)请求报文必须改变标识字段。如果对端在收到重复的请求报文之前已经发送过针对该报文的应答报文,它必须重新发送已发送的应答报文。如果对端收到重复的请求报文之前还没有发送针对该报文的应答报文,它必须静静地丢弃重复的请求报文。长度Length长度字段占两个自己,用于表示EAP报文的长度,包括代码、标识、长度和数据字段。超出长度的字节应该视为链路层的填充字节,接收方应该忽略。类型Type类型字段占一个字节。这个字段表示请求或者应答的信息类型。每一种EAP请求或者应答报文必须指定并且也只能指定一种类型。一般情况下,应答报文中的类型字段和请求报文中的类型字段是相同的,但是还存在一种为NAK的应答类型用来表示对端不接受请求报文中的信息类型。当对端用NAK报文应答请求报文的时候,对端可以同时提供一个它所支持的的信息类型供认证者选择。在本文的随后章节中有对类型的详细定义。类型数据Type-Data类型数据字段随着请求或应答报文中的类型字段变化而变化。成功和失败描述成功报文是认证者向发送给对端用来指示认证成功的。认证者必须传送代码字段为3(成功)的EAP报文。如果不能认证对端(对应于一个或多个请求报文收到不可接受的应答),认证者必须发送代码字段为4(失败)的EAP报文。认证者可能会在发送失败的应答报文之前再发起请求报文来避免用户输入错误的情况。1实现注意事项:由于成功和失败报文不需要确认,它们有可能会丢失。对端必须允许这种情况的发生。对端可以把网络协议报文作为对认证成功的指示;同样也可以把LCP的结束请求报文作为对认证失败的指示。成功和失败报文的格式如下所示,字段的传输顺序从左向右。012301234567890123456789012345678901+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Code|Identifier|Length|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+代码Code3代表成功4代表失败标识Identifier标识字段占一个字节,用于和对端的应答报文之间的匹配。成功和失败报文中的标识字段必须和它所对应的应答报文中的标识字段相匹配。长度Length41EAP请求/应答类型这一节中主要定义了在请求和应答的交互过程中所使用到的EAP类型集,后续的文档可能会再扩展其他的类型。类型字段占一个字节,它标识了EAP请求和应答报文的结构。前三中类型有其特别的适用情况,后两种类型适用于认证信息的交互。NAK类型只适用在应答报文中,而绝不能出现在请求报文中。所有的EAP实现必须支持类型1到4,本文中定义了这些类型以及类型5、6。后续的RFC可能会定义一些其他的类型。标识Identity通知Notification3否定Nak(只用在应答中)4MD5挑战字MD5-Challenge一次密码One-TimePassword(OTP)(RFC1938)通用令牌卡GenericTokenCard标识Identification描述标识类型用来询问对端的身份。一般情况下,认证者会首先发起这种类型的请求,这种请求报文可选择包含一个可显示的提示信息,用于和终端用户间的交互。对这种请求报文的应答报文的类型值也必须设为1。1实现注意事项:对端可能通过用户的输入得到身份值,因此建议认证者在收到错误的身份值或者认证失败的身份值后重新发送标识类型的请求报文,以应付用户输入错误的情况。并且建议认证者至少在尝试三次失败以后才向对端发送一个失败(Failure)的应答报文来终止认证阶段。认证者可以在重新发送标识(ID)请求报文之前发送一个通知(Notification)报文用于提示对端认证错误(也可以把这些提示信息放在重新发送的标识(ID)请求报文的提示信息中)。类型Type1类型数据Type-Data在请求报文中这个字段可以包含一段可显示的提示信息;而在应答报文中这个字段包含对端的身份(ID),如果对端还不知道自己的身份,那么在长度(Length)字段中指示标识(ID)字段的长度应该为零。在该字段中的字符串不需要用空字符(NULL)结束,因为长度字段中的值就标明了字符串的长度。通知Notification描述通知类型经常用于认证者向对端传送一个可显示的字符串。对端应该把这个字符串显示给用户,如果不能显示的话也应该记录下来。它主要用于向对端发一些通知,比如提示密码将要超期、OTP的顺序号码接近零以及认证失败的警告等。在大部分情况下不需要这个类型。类型Type2类型数据Type-Data请求报文中的类型数据字段包含一段长度大于0字节的可显示的字符串。字符串的长度由请求报文中的长度字段的值来决定,并且字符串不需要用空字符(NULL)结束。对端收到这种类型的请求报文以后不管怎么处理其中的通知信息都必须立刻发送一个类型值为2(通知)的应答报文,并且应答报文的类型数据字段的长度应该为零。1.3否定Nak描述否定类型只应该出现在应答报文中,用来表示对端不接受请求报文中的认证信息类型。认证信息类型是指类型值大于等于4的信息类型。否定类型的应答报文中可以同时提供一个对端所期望的认证信息类型。类型Type3类型数据Type-Data这个字段必须包含一个字节用来向认证者提供对端所期待的认证信息类型。1.4MD5挑战字描述MD5挑战字和PPP的CHAP[3]协议中的挑战字类似,使用MD5算法°CHAP的具体实现细节应该查阅PPP挑战握手认证协议的RFC[3]。在类型为MD5挑战字的请求报文中包含一个“挑战”信息,对端收到这个请求报文后必须发送一个应答报文,应答报文的信息类型可以是4(MD5挑战字)或者3(否定),在NAK应答报文中对端同时也标明了它所期待的认证机制的类型值。所有的EAP实现必须支持MD5挑战字算法。类型Type4类型数据Type-Data类型数据的内容如下所示。至于如何使用其中的这些字段请参阅PPP的挑战握手认证协议[3]。012301234567890123456789012345678901+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Value-Size|Value...+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Name...+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+1.5一次密码(OTP)描述一次密码系统在文献[4]中定义。请求报文中包含一个可显示的信息作为一次密码(OTP)的挑战字。对端收到这种请求报文后必须发送一个应答报文,应答报文的类型值也必须设为5(OTP)或者3(NAK),在NAK应答报文中对端同时也标明了它所期待的认证机制的类型值。类型Type5类型数据Type-Data在请求报文中,类型数据字段包含一个可显示的信息作为一次密码(OTP)的挑战字。在应答报文中类型数据字段用于填充从OTP目录中得到的6个字。该字段不需要用空字符(NULL)结束,该字段的长度可以从报文的长度字段中计算得到。1.6通用令牌卡描述通用令牌卡类型适用于各种需要用户输入信息的令牌卡的实现。在请求报文中包含一段ASCII文本信息,而应答报文中包含用于认证的令牌卡信息。典型的,令牌卡信息是由用户从令牌卡设备上读取得到并作为ASCII文本输入的。类型Type6类型数据Type-Data在请求报文中,该字段包含一段长度大于零的可显示的信息,它的长度可以从报文的长度字段中计算得到,因此该字段不需要用空字符(NULL)结束。对端收到这种请求报文以后必须发送一个类型值为6(通用令牌卡)的报文作为应答,应答报文中包含用于认证的令牌卡信息,通用它的长度也可以从报文的长度字段中计算得到。1安全考虑安全主题是该RFC的主题。PPP的认证交换过程依赖于实现。例如在有些实现中认证失败就直接终止链路,而在另外一些实现中并不终止链路,而只是限制和滤除网络层的流量从而允许用户更改密钥或者发邮件通知管理员。虽然没有如何处理认证失败以后的重新认证的规定,但由于LCP的状态机可以随时重新协商认证协议,然后开始一个新的认证过程,因此建议用于认证失败的各种计

温馨提示

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

评论

0/150

提交评论