组织:中国互动出版网(http://www.china-pub.com/) RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm) E-mail:ouyang@china-pub.com 译者:piex(piex jintao@bigfoot.com) 译文发布时间:2002-01-18 版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必须保留本文档的翻译及版权信息。 Network Working Group L. Blunk Request for Comments: 2284 J. Vollbrecht Category: Standards Track Merit Network, Inc. March 1998 PPP扩展认证协议(EAP) (RFC2284-PPP Extensible Authentication Protocol (EAP)) Status of this Memo This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited. Copyright Notice Copyright (C) The Internet Society (1998). All Rights Reserved. 摘要 点到点协议(PPP)提供一种在点到点链路上传输多协议报文的标准方法。在PPP中定义了一个可扩展的链路控制协议(LCP),LCP协议允许协商认证协议,从而可以在网络层报文在链路上传输之前对对端进行认证。本文档定义了PPP扩展认证协议(EAP)。 目 录 1介绍 3 1.1要求规范 3 1.2术语 3 2PPP扩展认证协议(EAP) 3 2.1配置选项(Config Option)格式 4 2.2报文格式 4 请求和应答 5 成功和失败 6 3EAP请求/应答类型 7 3.1标识 Identification 7 3.2通知 Notification 8 3.3否定 Nak 8 3.4MD5挑战字 8 3.5一次密码(OTP) 9 3.6通用令牌卡 9 4安全考虑 9 5参考文献 10 6鸣谢 10 1.介绍 为了在点到点的链路上进行通信,PPP链路的每一端在链路建立阶段必须首先发送LCP报文配置数据链路。链路建立之后,PPP提供可选的认证阶段,可以在进入NCP阶段之前对对端进行认证。 缺省情况下,认证过程不是必须的。如果需要链路认证,PPP实现必须在链路建立阶段指定“认证协议”配置选项。 这些认证协议主要是用在主机或者路由器,这些主机和路由器通过交换电路线或者拨号线连在PPP网络服务器上,但是也适用于专线。PPP网络服务器可以用主机或路由器的认证身份来作为网络层协商的选项 。 本文定义了PPP的扩展认证协议(EAP)。链路建立和认证阶段以及其中的认证协议配置选项在PPP协议中定义[1]。 1.1 要求规范 在本文中用以下几个词表示规范描述要求,这几个词用大些(黑体)表示。 1. MUST “必须”,也就是形容词“必需的”,意思是该项是本规范的绝对要求。 2. MUST NOT “不得”,意思是该项是本规范所绝对禁止的。 3. SHOULD “应该”,也就是形容词“推荐的”,意思是在某些场合可能由于某种原因忽略该项,但是协议的完全实现必须能够理解该项,在决定其他方式之前要经过仔细考虑。 4. MAY “可以”,也就是形容词“可选的”,意思是该项可以作为可选集使用,不包含该选项的协议实现必须能够和包含了该选项的实现交互协作。 1.2 术语 本文频繁使用下面的术语: 黖 Autherticator 认证者 链路要求认证的一端。认证者在链路建立阶段的配置请求项中指定要使用的认证协议。 黖 Peer 对端 点到点链路的另一端,由认证者认证的另一端。 黖 Sliently discard 静静丢弃 指直接丢弃数据包,不作进一步处理。实现中应该提供记录错误的能力——包括所丢弃报文的内容,还应该在统计计数器中记录这个事件。 2 PPP扩展认证协议(EAP) PPP扩展认证协议(EAP)是一个用于PPP认证的通用协议,可以支持多种认证方法。EAP并不在链路建立阶段指定认证方法,而是把这个过程推迟到认证阶段。这样认证方就可以在得到更多的信息以后再决定使用什么认证方法。这种机制还允许PPP认证方简单地把收到的认证报文透传给后方的认证服务器,由后方的认证服务器来真正实现各种认证方法。 1. 在链路阶段完成以后,认证方向对端发送一个或多个请求报文。在请求报文中有一个类型字段用来指明认证方所请求的信息类型,例如是对端的ID、MD5的挑战字、一次密码(OTP)以及通用令牌卡等。MD5的挑战字对应于CHAP认证协议的挑战字。典型情况下,认证方首先发送一个ID请求报文随后再发送其他的请求报文。当然,并不是必须要首先发送这个ID请求报文,在对端身份是已知的情况下(如租用线、拨号专线等)可以跳过这个步骤。 2. 对端对每一个请求报文回应一个应答报文。和请求报文一样,应答报文中也包含一个类型字段,对应于所回应的请求报文中的类型字段。 3. 认证方通过发送一个成功或者失败的报文来结束认证过程。 优点: EAP可以支持多种认证机制,而无需在LCP阶段预协商过程中指定。 某些设备(如:网络接入服务器)不需要关心每一个请求报文的真正含义,而是作为一个代理把认证报文直接透传给后端的认证服务器。设备只需关心认证结果是成功还是失败,然后结束认证阶段。 缺点: EAP需要在LCP中增加一个新的认证协议,这样现有的PPP实现要想使用EAP就必须进行修改。同时,使用EAP也和现有的在LCP协商阶段指定认证方法的模型不一致。 2.1 配置选项(Config Option)格式 用于指定EAP认证协议的认证协议配置选项格式如下所示,字段的传输顺序是从左向右。 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | Authentication-Protocol | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 类型 Type 3 长度 Length 4 认证协议 Authentication-Protocol C227 (16进制) 对应于PPP的扩展认证协议EAP 1.1 报文格式 当PPP帧的协议字段是16机制的C227的时候,表示PPP帧的信息字段里封装了一个完整的EAP报文。EAP报文的格式如下所示,字段的传输顺序是从左向右。 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Code | Identifier | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ... +-+-+-+-+ 代码 Code 代码字段占一个字节,表明了EAP报文的报文类型。分配如下: 1 请求 2 应答 3 成功 4 失败 标识 Identifier 标识字段占一个字节,用于应答报文和请求报文之间进行匹配。 长度 Length 长度字段占两个字节,用于表示EAP报文的长度,包括代码、标识、长度和数据字段。超出长度的字节应该视为链路层的填充字节,接收方应该忽略。 数据 Data 数据字段是零个或多个字节,数据字段格式由代码字段确定。 请求和应答 描述 请求报文由认证方发向对端。每一个请求报文都有一个类型字段用来表示请求方在请求什么信息。认证方必须向对端发送一个EAP报文并把其中的代码(CODE)字段设为1(REQUEST)。认证方必须在收到一个有效的应答报文或者在一个可选的计数器计满后再发送其他的请求报文。重传的请求报文中的标识(ID)字段必须保持不变,以便区分重传的请求报文和新的请求报文。数据字段的内容取决于类型字段的值。对端每收到一个请求报文后必须回应一个报文。只有在收到请求报文的情况下才发送应答报文,请求报文没有超时重传的情况。应答报文中标识(ID)字段必须和请求报文中的标识字(ID)段相匹配。 1 实现注意事项:由于在认证过程经常涉及到用户输入,必须采取合适的重传策略和超时时间。建议缺省情况下采用6秒的超时计数器,最大重传次数设为10。在某些情况下可以延长超时时间(如涉及到令牌卡的情况)。另外,对端在等待用户输入的时候必须静静地丢弃收到的重复的请求报文。 请求和应答报文的格式如下所示,字段的传输顺序是从左向右。 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Code | Identifier | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Type-Data ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- 代码 Code 1 请求 2 . 应答 标识 Identifier 标识字段占一个字节。由于等待应答超时而重传的请求报文的标识字段必须保持不变。新的(不是重传的)请求报文必须改变标识字段。如果对端在收到重复的请求报文之前已经发送过针对该报文的应答报文,它必须重新发送已发送的应答报文。如果对端收到重复的请求报文之前还没有发送针对该报文的应答报文,它必须静静地丢弃重复的请求报文。 长度 Length 长度字段占两个自己,用于表示EAP报文的长度,包括代码、标识、长度和数据字段。超出长度的字节应该视为链路层的填充字节,接收方应该忽略。 类型 Type 类型字段占一个字节。这个字段表示请求或者应答的信息类型。每一种EAP 请求或者应答报文必须指定并且也只能指定一种类型。一般情况下,应答报文中的类型字段和请求报文中的类型字段是相同的,但是还存在一种为NAK的应答类型用来表示对端不接受请求报文中的信息类型。当对端用NAK报文应答请求报文的时候,对端可以同时提供一个它所支持的的信息类型供认证者选择。在本文的随后章节中有对类型的详细定义。 类型数据 Type-Data 类型数据字段随着请求或应答报文中的类型字段变化而变化。 成功和失败 描述 成功报文是认证者向发送给对端用来指示认证成功的。认证者必须传送代码字段为3(成功)的EAP报文。 如果不能认证对端(对应于一个或多个请求报文收到不可接受的应答),认证者必须发送代码字段为4(失败)的EAP报文。认证者可能会在发送失败的应答报文之前再发起请求报文来避免用户输入错误的情况。 1 实现注意事项:由于成功和失败报文不需要确认,它们有可能会丢失。对端必须允许这种情况的发生。对端可以把网络协议报文作为对认证成功的指示;同样也可以把LCP的结束请求报文作为对认证失败的指示。 成功和失败报文的格式如下所示,字段的传输顺序从左向右。 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Code | Identifier | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 代码 Code 3 代表成功 4 代表失败 标识 Identifier 标识字段占一个字节,用于和对端的应答报文之间的匹配。成功和失败报文中的标识字段必须和它所对应的应答报文中的标识字段相匹配。 长度 Length 4 1 EAP请求/应答类型 这一节中主要定义了在请求和应答的交互过程中所使用到的EAP类型集,后续的文档可能会再扩展其他的类型。类型字段占一个字节,它标识了EAP请求和应答报文的结构。前三中类型有其特别的适用情况,后两种类型适用于认证信息的交互。NAK类型只适用在应答报文中,而绝不能出现在请求报文中。所有的EAP实现必须支持类型1到4,本文中定义了这些类型以及类型5、6。后续的RFC可能会定义一些其他的类型。 1 标识 Identity 2 通知 Notification 3 否定 Nak (只用在应答中) 4 MD5挑战字 MD5-Challenge 5 一次密码 One-Time Password (OTP) (RFC 1938) 6 通用令牌卡 Generic Token Card 1.1 标识 Identification 描述 标识类型用来询问对端的身份。一般情况下,认证者会首先发起这种类型的请求,这种请求报文可选择包含一个可显示的提示信息,用于和终端用户间的交互。对这种请求报文的应答报文的类型值也必须设为1。 1 实现注意事项:对端可能通过用户的输入得到身份值,因此建议认证者在收到错误的身份值或者认证失败的身份值后重新发送标识类型的请求报文,以应付用户输入错误的情况。并且建议认证者至少在尝试三次失败以后才向对端发送一个失败(Failure)的应答报文来终止认证阶段。认证者可以在重新发送标识(ID)请求报文之前发送一个通知(Notification)报文用于提示对端认证错误(也可以把这些提示信息放在重新发送的标识(ID)请求报文的提示信息中)。 类型 Type 1 类型数据 Type-Data 在请求报文中这个字段可以包含一段可显示的提示信息;而在应答报文中这个字段包含对端的身份(ID),如果对端还不知道自己的身份,那么在长度(Length)字段中指示标识(ID)字段的长度应该为零。在该字段中的字符串不需要用空字符(NULL)结束,因为长度字段中的值就标明了字符串的长度。 1.2 通知 Notification 描述 通知类型经常用于认证者向对端传送一个可显示的字符串。对端应该把这个字符串显示给用户,如果不能显示的话也应该记录下来。它主要用于向对端发一些通知,比如提示密码将要超期、OTP的顺序号码接近零以及认证失败的警告等。在大部分情况下不需要这个类型。 类型 Type 2 类型数据 Type-Data 请求报文中的类型数据字段包含一段长度大于0字节的可显示的字符串。字符串的长度由请求报文中的长度字段的值来决定,并且字符串不需要用空字符(NULL)结束。对端收到这种类型的请求报文以后不管怎么处理其中的通知信息都必须立刻发送一个类型值为2(通知)的应答报文,并且应答报文的类型数据字段的长度应该为零。 1.3 否定 Nak 描述 否定类型只应该出现在应答报文中,用来表示对端不接受请求报文中的认证信息类型。认证信息类型是指类型值大于等于4的信息类型。否定类型的应答报文中可以同时提供一个对端所期望的认证信息类型。 类型 Type 3 类型数据 Type-Data 这个字段必须包含一个字节用来向认证者提供对端所期待的认证信息类型。 1.4 MD5挑战字 描述 MD5挑战字和PPP的CHAP[3]协议中的挑战字类似,使用MD5算法。CHAP的具体实现细节应该查阅PPP挑战握手认证协议的RFC[3]。在类型为MD5挑战字的请求报文中包含一个“挑战”信息,对端收到这个请求报文后必须发送一个应答报文,应答报文的信息类型可以是4(MD5挑战字)或者3(否定),在NAK应答报文中对端同时也标明了它所期待的认证机制的类型值。所有的EAP实现必须支持MD5挑战字算法。 类型 Type 4 类型数据 Type-Data 类型数据的内容如下所示。至于如何使用其中的这些字段请参阅PPP的挑战握手认证协议[3]。 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Value-Size | Value ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Name ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1.5 一次密码(OTP) 描述 一次密码系统在文献[4]中定义。请求报文中包含一个可显示的信息作为一次密码(OTP)的挑战字。对端收到这种请求报文后必须发送一个应答报文,应答报文的类型值也必须设为5(OTP)或者3(NAK),在NAK应答报文中对端同时也标明了它所期待的认证机制的类型值。 类型 Type 5 类型数据 Type-Data 在请求报文中,类型数据字段包含一个可显示的信息作为一次密码(OTP)的挑战字。在应答报文中类型数据字段用于填充从OTP目录中得到的6个字。该字段不需要用空字符(NULL)结束,该字段的长度可以从报文的长度字段中计算得到。 1.6 通用令牌卡 描述 通用令牌卡类型适用于各种需要用户输入信息的令牌卡的实现。在请求报文中包含一段ASCII文本信息,而应答报文中包含用于认证的令牌卡信息。典型的,令牌卡信息是由用户从令牌卡设备上读取得到并作为ASCII文本输入的。 类型 Type 6 类型数据 Type-Data 在请求报文中,该字段包含一段长度大于零的可显示的信息,它的长度可以从报文的长度字段中计算得到,因此该字段不需要用空字符(NULL)结束。对端收到这种请求报文以后必须发送一个类型值为6(通用令牌卡)的报文作为应答,应答报文中包含用于认证的令牌卡信息,通用它的长度也可以从报文的长度字段中计算得到。 1 安全考虑 安全主题是该RFC的主题。 PPP的认证交换过程依赖于实现。例如在有些实现中认证失败就直接终止链路,而在另外一些实现中并不终止链路,而只是限制和滤除网络层的流量从而允许用户更改密钥或者发邮件通知管理员。 虽然没有如何处理认证失败以后的重新认证的规定,但由于LCP的状态机可以随时重新协商认证协议,然后开始一个新的认证过程,因此建议用于认证失败的各种计数器只有在认证成功或者链路终结以后才重新设置。 并没有要求认证一定要在两个方向上进行,也没有要求在两个方向上使用同样的认证协议。我们完全可以接受在两个方向上使用不同的认证协议,当然,这依赖于协商的结果。 实际上,一个PPP服务器不应该使用多种认证协议来认证一个特定的用户。因为这样容易使用户在使用安全性较低的认证协议(如PAP,而不是EAP)的时候受到攻击。 对于每一个用户名,应该指示一种特定的认证方法,如果用户在不同的环境下使用不同的认证方法,那么他应该在不同的环境下使用不同的用户名,每个用户名对应一个认证方法。 1 参考文献 [1] Simpson, W., "The Point-to-Point Protocol (PPP)", STD 51, RFC 1661, July 1994. [2] Reynolds, J. and J. Postel, "Assigned Numbers", STD 2, RFC 1700, October 1994. [3] Simpson, W., "PPP Challenge Handshake Authentication Protocol (CHAP)", RFC 1994, August 1996. [4] Haller, N. and C. Metz, "A One-Time Password System", RFC 1938, May 1996. [5] Yergeau, F., "UTF-8, a transformation format of Unicode and ISO 10646", RFC 2044, October 1996. [6] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", RFC 2119, March 1997. 1 鸣谢 撰写本文的很多灵感都来源于Dave Carrel的AHA草案和PPP的CHAP认证协议。 Bill Simpson提供了本文所使用的书写模板。 Al Rubens为本文提出了很多有价值的建议。
京东创始人刘强东和其妻子章泽天最近成为了互联网舆论关注的焦点。有关他们“移民美国”和在美国购买豪宅的传言在互联网上广泛传播。然而,京东官方通过微博发言人发布的消息澄清了这些传言,称这些言论纯属虚假信息和蓄意捏造。
日前,据博主“@超能数码君老周”爆料,国内三大运营商中国移动、中国电信和中国联通预计将集体采购百万台规模的华为Mate60系列手机。
据报道,荷兰半导体设备公司ASML正看到美国对华遏制政策的负面影响。阿斯麦(ASML)CEO彼得·温宁克在一档电视节目中分享了他对中国大陆问题以及该公司面临的出口管制和保护主义的看法。彼得曾在多个场合表达了他对出口管制以及中荷经济关系的担忧。
今年早些时候,抖音悄然上线了一款名为“青桃”的 App,Slogan 为“看见你的热爱”,根据应用介绍可知,“青桃”是一个属于年轻人的兴趣知识视频平台,由抖音官方出品的中长视频关联版本,整体风格有些类似B站。
日前,威马汽车首席数据官梅松林转发了一份“世界各国地区拥车率排行榜”,同时,他发文表示:中国汽车普及率低于非洲国家尼日利亚,每百户家庭仅17户有车。意大利世界排名第一,每十户中九户有车。
近日,一项新的研究发现,维生素 C 和 E 等抗氧化剂会激活一种机制,刺激癌症肿瘤中新血管的生长,帮助它们生长和扩散。
据媒体援引消息人士报道,苹果公司正在测试使用3D打印技术来生产其智能手表的钢质底盘。消息传出后,3D系统一度大涨超10%,不过截至周三收盘,该股涨幅回落至2%以内。
9月2日,坐拥千万粉丝的网红主播“秀才”账号被封禁,在社交媒体平台上引发热议。平台相关负责人表示,“秀才”账号违反平台相关规定,已封禁。据知情人士透露,秀才近期被举报存在违法行为,这可能是他被封禁的部分原因。据悉,“秀才”年龄39岁,是安徽省亳州市蒙城县人,抖音网红,粉丝数量超1200万。他曾被称为“中老年...
9月3日消息,亚马逊的一些股东,包括持有该公司股票的一家养老基金,日前对亚马逊、其创始人贝索斯和其董事会提起诉讼,指控他们在为 Project Kuiper 卫星星座项目购买发射服务时“违反了信义义务”。
据消息,为推广自家应用,苹果现推出了一个名为“Apps by Apple”的网站,展示了苹果为旗下产品(如 iPhone、iPad、Apple Watch、Mac 和 Apple TV)开发的各种应用程序。
特斯拉本周在美国大幅下调Model S和X售价,引发了该公司一些最坚定支持者的不满。知名特斯拉多头、未来基金(Future Fund)管理合伙人加里·布莱克发帖称,降价是一种“短期麻醉剂”,会让潜在客户等待进一步降价。
据外媒9月2日报道,荷兰半导体设备制造商阿斯麦称,尽管荷兰政府颁布的半导体设备出口管制新规9月正式生效,但该公司已获得在2023年底以前向中国运送受限制芯片制造机器的许可。
近日,根据美国证券交易委员会的文件显示,苹果卫星服务提供商 Globalstar 近期向马斯克旗下的 SpaceX 支付 6400 万美元(约 4.65 亿元人民币)。用于在 2023-2025 年期间,发射卫星,进一步扩展苹果 iPhone 系列的 SOS 卫星服务。
据报道,马斯克旗下社交平台𝕏(推特)日前调整了隐私政策,允许 𝕏 使用用户发布的信息来训练其人工智能(AI)模型。新的隐私政策将于 9 月 29 日生效。新政策规定,𝕏可能会使用所收集到的平台信息和公开可用的信息,来帮助训练 𝕏 的机器学习或人工智能模型。
9月2日,荣耀CEO赵明在采访中谈及华为手机回归时表示,替老同事们高兴,觉得手机行业,由于华为的回归,让竞争充满了更多的可能性和更多的魅力,对行业来说也是件好事。
《自然》30日发表的一篇论文报道了一个名为Swift的人工智能(AI)系统,该系统驾驶无人机的能力可在真实世界中一对一冠军赛里战胜人类对手。
近日,非营利组织纽约真菌学会(NYMS)发出警告,表示亚马逊为代表的电商平台上,充斥着各种AI生成的蘑菇觅食科普书籍,其中存在诸多错误。
社交媒体平台𝕏(原推特)新隐私政策提到:“在您同意的情况下,我们可能出于安全、安保和身份识别目的收集和使用您的生物识别信息。”
2023年德国柏林消费电子展上,各大企业都带来了最新的理念和产品,而高端化、本土化的中国产品正在不断吸引欧洲等国际市场的目光。
罗永浩日前在直播中吐槽苹果即将推出的 iPhone 新品,具体内容为:“以我对我‘子公司’的了解,我认为 iPhone 15 跟 iPhone 14 不会有什么区别的,除了序(列)号变了,这个‘不要脸’的东西,这个‘臭厨子’。