




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
扩展认证协议RFC3748这个备忘录的状态本文档明确描述了互联网社区的一个互联网标准跟踪协议,需要进一步进行讨论和改善的建议,请参考最新的“互联网官方协议标准”国家标准化。这个备忘录的发布是不受限制的。版权通知摘要本文档定义了EAP扩展认证协议,一个支持多种认证方法的认证框架。EAP通常直接运行在数据链路层,利于ppp协议或者IEEE802,不需要IP地址。EAP提供了它自己支持的重复性淘汰和转发,但是在较低层排序保证自力更生。EAP本身不支持碎片,然而单独的EAP方法可能支持这个。本文档替代了RFC2284.本文档和RFC2284更改的总结在附录A中体现。目录概要1. 引言本文档定义了扩展认证协议,一个支持多路认证方法的认证框架。EAP通常直接运行在数据链路层,例如点对点协议或者是IEEE802,不需要IP地址。EAP提供了它自己支持的重复性淘汰和转发,但是在较低层排序保证自力更生。EAP本身不支持碎片,然而单独的EAP方法可能支持这个。EAP可用于专用的链接,以及开关电路和有线和无线链路。到目前为止,EAP已经通过连接交换电路或拨号链路使用PPP协议,实施在主机和路由器上。同时也通过使用IEEE802协议,应用在交换机和接入点。在IEEE802有线媒体封装的EAP在IEEE802.1X中得以描述,并且在IEEE无线局域网中封装,由IEEE802.11i描述。EAP架构的优势之一就是它的灵活性。EAP是用来选择一个专门的认证机制,通常是在验证请求需要更多的信息来确认专门的认证方法被使用,而不是需要验证者需要更新来支持每个新的验证方法,EAP允许使用后台认证服务器,他可以实现一些或所有认证方法,当认证者为部分或所有的方法和对等体作为一个传递。在这个文件中,不论是否认证者作为一个传递,认证要求都要申请。凡要求是为了适用于认证或者后台认证服务器,这取决于EAP认证在哪里被终止,EAP服务器将被使用。1.1 要求说明书1.2 术语本文档经常使用下列词语:认证器:启动EAP认证链路的终端。认证器这个属于被使用在IEEE802.1X,在本文档中拥有相同的含义。对等体:回应认证器的链路终端。在IEEE802.1X中,这个终端被认为是请求者。请求者:在IEEE802.1X中,链路终端回应认证器。在本文档中,这个链路终端被称为对等体。后台认证服务器:一个后台认证服务器是一个提供认证服务给认证器的实体。当被使用时,这个服务器通常为认证器执行EAP方法。这个术语也被使用在IEEE802.1X。AAA:认证,授权和计费。带有EAP的AAA协议支持包括RADIUS和Diameter。在这个文档中,AAA服务器和后台认证服务器这两个术语可交换使用。可显示的信息:这被翻译成人类可读的字符串。这个信息便把必须跟从UTF-8转换格式。EAP服务器:终止带有对等体的EAP认证方法的实体。在没有后台认证服务器可以被使用这种情况下,EAP服务器是认证器的一部分。在认证器工作在传递模式的情况下,EAP服务器位于后台认证服务器。丢弃:这意味着落实丢弃包不需要进一步的处理。执行中还应该提供记录事件的能力,包括默默的丢弃数据包的内容,和应该在一个统计记录其中记录这个事件。成功认证:在本文档中,成功认证是一个EAP消息的交换,作为认证器决定允许对等体访问和对等体决定访问的结果。认证器的决定通常包括认证和授权两个方面;对等体可能成功的向认证器认证,但是访问可能由于政策原因被认证器拒绝。消息完整性检查:主要的哈希函数用于认证和数据完整性保护。这常常被称为消息验证码,但是IEEE802规范使用MIC简称来防止和媒体访问控制这个词语相混淆。加密分离:两个密码(x和y)是独立的加密,如果对手知道了在协议交换中所有的信息,也不能进行破密,即从X中计算出Y,或者从Y中计算出X。特别是,这个定义允许对手以明文的形式发送随机数,作为该协议中使用的所有可预见的计数器的值。换句话说,如果密钥是单独加密的,就没有捷径来从Y中分离出X或从X中分离出Y,但是对手必须执行此计算,相当于执行一个详尽搜索秘密状态值。主会话密钥(MSK):密钥材料是从EAP对等体和服务器间获取,通过EAP方法输出。MSK至少是64字节长度。在现有的实现中,一个AAA服务器作为一个EAP服务器来传送MSK到认证器。扩展的主会话密钥:附加的密钥材料从EAP客户端和服务器间获取,通过EAP方法输出。EMSK至少64字节的长度。EMSK不与认证器或其他第三方共享。EMSK是为将来使用的,现在还没有定义。结果标志:一个提供结果标志的方法,如果方法的最后信息被发送或者接受:1) 对等体知道他是否认证了服务器,还有是否服务器认证了它。2) 服务器知道是否它认证了对等体,还有事都对等体认证了他。在这种情况下,成功的认证足够获得访问批准,于是对等体和认证器将会知道另外一方是否提供或者接受访问。也可能不经常是这种情况。一个认证的对等体可能被拒绝访问,由于缺少授权或者其他的原因。既然EAP交换是在对等体和服务器间运行的,其他节点也可能影响到授权的决定。这在7.16中被详细的讨论。1.3 适用性EAP被设计用来使用在网络访问认证上,IP层连通性到达不了的地方。将EAP用于其他用途,例如块数据传输是不被建议的。由于EAP不需要IP连通性,它仅仅为认证协议的可靠传输提供了足够的支持,其余的什么也没有。EAP是锁步协议,它仅仅支持传输中一个独立的数据包。因此,EAP不能够有效的传输块数据,不像传输层协议例如TCP或STCP。虽然EAP为转发提供了支持,它假定排序保证较低层提供,所以发生故障的接收是不被支持的。由于EAP不支持分裂和重组,EAP认证方法产生的有效载荷大于EAP MTU需要提供分裂支持的最小值。由于认证方法例如EAP-TLS为分裂和重组提供支持,在本文档中EAP方法不支持。因此,如果EAP数据包的大小超出了EAP 链路的MTU,这些方法将会遇到困难。EAP认证是由服务器发起的,而很多认证协议是由客户端发起的,因此,为了运行EAP,认证算法增加一两个额外的信息是必要的。凡基于证书的认证都是支持的,由于证书链的支离破碎,大量的额外往返可能更大。一般来说,一个分裂的EAP数据包由于有碎片,将需要很多的往返包来发送。例如,一个认证链的大小是14960个字节,将需要10个往返来发送一个1496自己大小的EAP MTU。EAP运行在较低层的地方很多数量的包发生丢失,或者在认证器和认证服务器之间的连接处大量的包丢失也发生,EAP方法需要很多往返可能有些困难。在这种情况下,使用较少往返的EAP方法是可取的。2 扩展认证协议EAP认证交换过程如下:1 认证器发送了一个请求来认证对等端。这个请求有一个类型字段来指出什么正在被请求。请求的例子包括身份、MD5的挑战等。MD5挑战的类型与CHAP认证协议对应密切。通常情况下,认证器将发送一个最初的身份认证请求,然而,一个最初的身份请求是不需要的,可能被掠过。例如,在对等端已经确定连接到端口时,或身份被另外的方式获得时,身份就不需要了。2 对等端发送一个回应包来回复合法的请求。和请求包一样,回应包包含了一个类型字段,与请求的类型字段相对应。3 认证器返送一个附加的请求包,对等体回复一个数据包。请求和回复的序列继续和需要的一样长。EAP是一个锁步协议,因此除了初始请求外,一个新的请求不能够在收到有效相应之前被提前发送。认证器像4.1节描述的那样,对重传请求包有责任。经过适当数量的转发后,认证器应该结束EAP谈话,认证器不能够发送成功或者失败数据包,当重传或它没有从对等端收到回应。4 通信继续知道认证器不能认证对等端,在这种情况下,必须发送一个EAP失败。或者,认证谈话继续直到认证成功认证,在这种情况下,认证器必须发送一个EAP成功。优点:l EAP协议能够支持多种认证方法,不需要预谈判一个特殊的。l 网络访问服务器设备不需要理解每个认证方法,也不需要为后台认证服务器作中继代理。支持中继是可选的。一个认证器可能认证本地对等端,同时为非本地对等端作为中继,认证方法可能不会当地完成。l 认证器和后台认证服务器相离简化了证件管理和政策的制定。缺点:l 在PPP中使用EAP,需要增加一个新的认证类型到PPP LCP,因此PPP需要更改以使用它。它也脱离了从前的成功通过一个专门的认证方法的PPP认证模型。同样,交换机或无线接入点的实现EAP协议需要支持IEEE802.1X。l 认证器和后台认证服务器分开,它使安全性分析复杂化,如果需要的话,密钥分配也复杂化了。2.1 支持序列EAP会话可能利用各种方法。一个典型的例子就是在一个独立的EAP认证方法例如MD5挑战后跟着身份请求。然而,在一个EAP会话中,对等端和认证器必须使用一种认证方法,之后认证器必须发送。一旦对等端发送和初始请求包一样类型的回应包,认证器在一个给定的方法必须完成最后一轮前必须不能发送请求一个不同类型的请求包,也不能在初始认证方法完成之前,为额外的任意类型的方法发送请求包;一个对等体收到这样的请求包必须把它们作为非法的,默默的丢弃他们。因此,身份请求是不支持的。对等体必须不能为回复请求包发送一个NaK,在初始non-NaK回应被发送之后。由于伪造的EAP请求包可能被攻击者发送出去了,认证器收到意外的NaK时应该抛弃它并且记录这件事情。在EAP会话中多路认证方法不支持,因为他们容易受到中间人的攻击,并与现有的实现不兼容。单独的EAP认证方法被使用,但是其他的方法在它之中运行(一个隧道方法),禁止多路认证方法不提供。这种隧道方法显示为一种单独的认证方法的EAP。可提供后向兼容,因为一个对等体不能支持用NaK回复初始EAP请求的隧道方法。2.2 EAP多路传输模型从概念上讲,EAP的实施包括以下部分:a) 较低层。较低层负责在对等体和认证器之间转发和接受EAP帧。EAP已经在各类的较低层上运行,例如PPP,有限IEEE802有限网络,IEEE802.11无线局域网,UDP和IKEv2,TCP。较低层的表现在第3节中讨论。b) EAP层。EAP层通过较低层收到和转发EAP数据包,完成重复检测和转发,同时从EAP对等体和认证层传递和接受EAP信息。c) EAP对等体和认证层。在代码字段的基础上,EAP层多路分离输入EAP数据包到EAP对等体和认证层。通常情况下,一个EAP在给定的主机上实施,将会支持不论是对等体或者认证功能。但是对于一个主机来说,扮演一个EAP对等体和认证器来说是有可能的。在这样下,EAP对等体和认证层都将会出现。d) EAP方法层。EAP方法通过EAP对等体和认证层完成认证算法和接收转发EAP信息。由于EAP本身不支持破裂,现在这是EAP方法的责任,这将在第5节中被讨论。EAP多路传输模型在下图一种说明。注意这里没有请求必须遵守这个模型,只要上了线的行为与它保持一致就行。 图表 1:EAP多路传输模型在EAP中,代码字段功能很像在IP中的协议数字。假定EAP层根据代码字段多路分离传入的EAP数据包。接收到的EAP数据包(代码=1,3成功和4失败)被EAP层传到EAP的对等层。带有代码=2(回应)的EAP数据包被传送到EAP认证层。在EAP中,类型字段功能更像在UDP或TCP中的端口号码。假定EAP对等层和认证层根据他们的类型多路分离输入的EAP数据包,同时根据类型将他们传递给EAP方法。在一台主机上用EAP方法实施注册,根据他所支持的角色,决定从对等层或者认证层,或者两个都是收取数据包。既然EAP认证方法可能获取身份,要实现应该是除了身份方法外,身份请求和回应被认证方法可接受。标识类型将会在5.1节讨论。一个通知的回复仅仅被作为确定对等层接收到通知请求,不是它已经处理,或者向使用者显示信息。它不能假定通知请求或回复的内容对另外一种方法也合法。通知类型将在5.2节讨论。NaK或者扩展的NaK都是用于谈判的目的。对等层为一个带有NaK响应或者扩展NaK响应的不可接受类型响应初始的EAP请求.它不能假定NaK响应的内容是另一种方法可用的。NaK类型将在5.3节被讨论。带有成功或失败代码的EAP数据包不包括类型字段,也不被传送到一个EAP方法。成功和失败将在第4.2节中讨论。鉴于上述考虑,成功,失败,NaK响应和通知请求/回应信息必须不能用在承载注定要发送到其他EAP方法的数据。2.3 传递行为当作为一个传递认证器时,认证器检查代码,身份,字段长度,在4.1节描述的那样。它把从对等端收到的EAP数据包,派定到认证层发送到后台认证服务器;从后台认证服务器接收到的数据包发送到对等体。一个主机收到EAP后仅仅可能做下列三件事情中的一件:执行它,丢弃它,继续传送。继续传送的决定通常是根据检查后的代码,身份和字段长度。一个传递性认证器必须能够把从带有代码=2的对等体收到的EAP数据包发送给后台认证服务器。它也必须能够从后台认证服务器收到EAP数据包,并且将代码=1,代码=3,代码=4的EAP数据包传递给对等层。除非认证器完成一个或多个支持认证作用的本地认证方法,EAP方法层包头字段作为转发决策的一部分不被检查。当认证器支持本地认证方法,它可能检查类型字段来决定是否执行这个数据包或者转发这个数据包。符合传递性认证的操作,必须默认转发任何类型的EAP数据包。带有代码=1(请求),代码=3(成功),以及代码=4(失败)的EAP数据包被EAP层多路分离,并且被传送到对等层。因此,除非一个主机实现EAP对等层,这些数据包将会被默默的丢弃掉。同样的。接收到代码=2的EAP数据包也会被EAP层多路分离,并且被传送到认证层。因此,除非主机实现EAP认证层的功能,这些数据包将会被丢弃。传递性对等层的行为在这个说明中没有被定义,并且像RADIUS和Diameter这些AAA协议不支持。转发模型在图2中被说明: +-+-+-+-+-+-+ +-+-+-+-+-+-+ | | | | |EAP method | |EAP method | | V | | | +-+-+-!-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-!-+-+-+ | ! | |EAP | EAP | | | ! | | ! | |Peer | Auth.| EAP Auth. | | ! | |EAP ! peer| | | +-+ | |EAP !Auth.| | ! | | | ! | ! | | ! | +-+-+-!-+-+-+ +-+-+-+-!-+-+-+-+-+-!-+-+-+-+ +-+-+-!-+-+-+ | ! | | ! | ! | | ! | |EAP !layer| | EAP !layer| EAP !layer | |EAP !layer| | ! | | ! | ! | | ! | +-+-+-!-+-+-+ +-+-+-+-!-+-+-+-+-+-!-+-+-+-+ +-+-+-!-+-+-+ | ! | | ! | ! | | ! | |Lower!layer| | Lower!layer| AAA ! /IP | | AAA ! /IP | | ! | | ! | ! | | ! | +-+-+-!-+-+-+ +-+-+-+-!-+-+-+-+-+-!-+-+-+-+ +-+-+-!-+-+-+ ! ! ! ! ! ! ! ! +-+ +-+ 图表 2:传递性认证器在本章节中,认证器作为一个传递性,它必须确定唯一的认证结果,基于后台认证服务器发送的接收/拒绝指示;输出必须不能被接收/拒绝一起发送的EAP数据包的内容确定,或者缺失的这样压缩EAP数据包。2.4 点对点对等操作由于EAP是点对点对等协议,独立和同步认证可能发生在相反的方向上。两个链路的终端可能同时作为认证器和对等端。这种情况下,两个终端都必须实施EAP认证器和对等层。另外,在两个节点的EAP方法的实现必须同时支持验证和对等的功能。虽然EAP支持点对点的对等行动,一些EAP的实现,方法,AAA协议和链路层可能不支持这个。一些EAP方法可能支持不对称的认证,对等体请求的证书类型和认证器的另一种类型。使用这样一个方法的支持点对点对等操作的主机将需要预备两种证书类型。例如,EAP-TLS是一种客户-服务器协议,其中不同的证书配置文件通常是用于客户端和服务器。这意味了主机用EAP-TLS,支持点对点对等认证需要实现EAP对等体和认证层,同时支持对等层和在EAP-TLS实施过程中的认证作用,还要为每个功能预备合适的证书。AAA协议像RADIUS/EAP和Diameter EAP仅仅支持传递性认证操作。像在2.6.2中说明的那样,一个RADIUS服务器对访问请求回应一个压缩了EAP请求,成功或失败的访问拒绝包。因此这里不支持传递式对等操作。即使是一种相互支持认证和结果标志的方法被使用,一些因素可能会要求,两种EAP认证(每个方向上)被请求。主要有:1 在较低层支持双向会话密钥派生。较低层像IEEE802.11可能只支持单向派生和传输临时会话密钥。例如,组密钥握手定义在IEEE802.11i是单向的,因为在IEEE802.11结构模型中,只有访问点发送多播/广播信息。在IEEE802.11ad hoc模型中,对等体可能发送多播/广播流量,请求两个单向组密钥交换。由于设计的限制,这同样意味了单向密钥派生的需要和EAP方法交换发生在每个方向。2 在较低层中支持打破僵局。较低层像IEEE802.11adhoc不支持打破僵局,当两个主机相互初始认证时,将仅仅转送一个单独的认证。这意味着,虽然802.11支持双向组密钥握手,然后两个认证,每个方向一个,仍可能会发生。3 对等体政策补偿。EAP方法可能支持结果标志,使对等体能够用这种方法说明EAP服务器,它将成功的认证EAP服务器,同时服务器将表明它也认证了对等体。然而,传递性认证将不会得知对等体已经接受了EAP服务器提供的证件,除非这个信息通过AAA协议提供给了认证器。认证器应该解释接收数据包中的密钥属性,作为对等体成功认证服务器的信息显示。然而,即使相互认证发生了,EAP对等体的访问策略在初始EAP交换时不被满足,。例如,EAP认证器可能不会证明授权同时担任对等端和认证器的作用。因此,对等体可能需要在相反方向上加额外的认证,即使对等体提供指示,EAP服务器成功的认证。3 较低层行为3.1 较低层请求EAP对较低层有如下的假设:1 不可靠的传输。在EAP中,认证器转发请求还没有接收到回应,因此EAP不能假定较低层是可靠的。由于EAP定义了他自己的转发行为,当EAP运行在可靠的较低层时,转发是有可能发生在当前层和EAP层。注意,EAP成功和失败数据包不被转发。没有可靠的较低层和不可忽略的错误比例,这些数据包可能丢失,导致时延。因此提高丢失EAP成功或失败数据包的弹性是有利的,就像4.2节中说的那样。2 较低层错误检测。当EAP不能假定较低层是可靠的,它将依赖于较低层错误检测。EAP方法可能不包括一个MIC,或者他们可能不计算EAP数据包的所有字段,像代码,身份,长度或类型字段。因此,没有较低层错误检测,不可预料的错误将会进入EAP层或者是EAP方法层的包头字段,导致认证失败。例如,EAP TLS,它仅仅通过类型数据字段计算出它的MIC,把MIC确认失败当作致命性的错误。没有较低层错误检测这个方法和其他类似的方法,较低层将不会可靠。3 较低层安全。EAP不会请求较低层去提供安全服务,像是每个数据包保密性,认证,整型和重放保护。然而,当这些安全服务合法时,EAP方法支持密钥派生,能够用于提供动态密钥生成的材料。这将把EAP认证绑定到随后的数据上,同时保护数据不被修改,欺骗和重放。详细请见7.1节。4 最小MTU。EAP可以在较低层运行,提供一个1020字节甚至更大的EAP MTU。EAP不支持MTU路径发现和分裂,也不支持重组。同样在本说明书中定义的其他方法也不支持。身份,消息,NaK回应,MD5挑战,临时密码,种类令牌卡,扩展的NaK响应类型。通常,EAP对等体包含关于从较低层来的EAP MTU信息,并设定EAP帧大小为合适的值。当认证器实施在传递性模式时,认证服务器没有直接的方法来确认EAP MTU,因此依赖于认证器提供这项信息,像是通过MTU帧属性,在2.4节描述的那样。当像EAP-TLS方法支持分裂和重组时,EAP方法本来是设计为使用在PPP中一个1500字节的MTU保证为控制帧,可能没有分裂和重组特征。EAP方法能够假定一个最小的1020字节的EAP MTU没有其他的信息。EAP方法应该包括支持分裂和重组,如果他们的有效载荷比这个最小的EAP MTU大。EAP是一个锁步协议,当处理分裂和重组时,它意味了一个不可避免无效性。因此,如果较低层支持分裂和重组,那么分裂和重组发生在较低层比在EAP中会更好。通过提供一个认为的大EAP MTU给EAP,导致分裂和重组在较低层中实现。5 可能的重复。当较低层可靠时,它将提供EAP层一个不重复的数据流。然而,当较低层提供无重复时,而不是请求时,这是有利的。身份字段向对等体和认证器都提供检查重复的能力。6 排序保证。EAP不需要身份单调的增加,这在较低层正确操作的排序保证是可保证的。EAP本来是定义运行在PPP上,同时第一节有排序请求:“点对点对等协议是为两个对等体之间的简单链路传送数据包设计。这些链路提供了全双工的同步的双向操作,被假定按顺序传递数据包。”较低层为EAP传递必须维持源地址和目的地之间的秩序。重新排序,如果这个发生的话,通常会导致EAP认证失败,导致EAP认证重新开始。在重新排序这种环境下,EAP认证失败将会十分平常。EAP仅仅运行在较低层提供排序保证;在原始的IP或UDP传送中运行EAP是不被推荐的。在RADIUS中封装EAP满足了排序的需要,由于RADIUS是锁步协议,因此需要按顺序发送数据包。3.2 EAP在PPP中使用为了通过点对点的链路建立通信,在链路建立阶段每个PPP链路的终端首先发送LCP数据包来配置数据链路。链路建立完毕后,在运行到网络层前,PPP提供一个可选的认证。默认情况下,认证不是命令。如果每个链路的认证是要求的,在链路建立阶段,必须要明确指定认证协议构造选项。如果对等体的身份在认证项中显示了,服务器能够为接下来的网络层谈判使用可选选项的身份。当在PPP中实施时,EAP不能在PPP链路控制阶段选择一个具体的认证方法,宁可推迟这个操作指导认证阶段。它允许认证器在确定专门的认证策略前请求更多的信息。当PPP认证器仅仅通过认证交换时,允许使用实际上能使用各种方法的后台服务器。PPP链路建立和认证阶段,和认证协议构造选项,被定义在PPP协议中。3.2.1 PPP构造选项格式PPP认证协议构造选项格式后跟着EAP谈判。字段从左端传送到右端。准确的说,一个EAP数据包被压缩到一个PPP数据链路层帧的信息字段,协议字段显示了类型。 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 ProtocolC277(Hex)forEAP3.3 在IEEE802中使用EAP通过IEEE802压缩EAP被定义在IEEE802.1X。在IEEE802封装的EAP不包含PPP,IEEE802.1X不包含对链路的支持,或网络层的协商。因此,在IEEE802.1X中,不可能通过非EAP的认证方法,例如PAP或CHAP。3.4 较低层标志较低层标志的可靠性和安全性依赖于更低的层。由于EAP是媒体独立的,较低层安全性的出现或缺席不会被考虑到EAP信息处理中。为了提高可靠性,如果一个对等体收到较低层的成功标志消息,其被定义在7.2节,它可能包括一个成功数据包已经丢失,和表现为已经收到一个成功数据包。这包含在某些情况下选择忽略成功数据包,像是在4.2节描述的那样。关于在PPP较低层可靠性和安全性问题的讨论,IEEE802有线网络和IEEE802.11无线局域网能够在安全性思考中找到,7.12节。在EAP认证结束后,对等体通常会通过认证器转发和接受数据。确保实体转发的数据是相同的一个后,才算是成功的完成了EAP认证。为了达到这个目的,较低层必须提供每个包的完整性,认证和重放保护,还有在EAP认证阶段绑定这些数据包的服务到派生的密钥上。除此之外,随后的数据流也有可能被修改,欺骗和重演。较低层加密套接字的密钥材料本身由EAP提供的,加密套接字和密钥激活是由较低层控制的。在PPP中,加密套接字在ECP中顺利通过,因此不可能使用从EAP认证中派生的密钥,直到完成ECP。因此,一个初始的EAP交换不能由PPP加密套接字保护,尽管EAP再次认证可能被保护。在IEEE802媒体中,初始的密钥激活通常发生在EAP认证之后。因此一个初始的EAP交换通常不被较低层的加密套接字保护,尽管EAP的重新认证或预认证交换可能被保护。4 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 . +-+-+-+-+代码代码字段是一个字节,鉴定EAP数据包的类型。EAP代码被下列指派:1 请求2 回应3 成功4 失败由于EAP仅仅定义了代码1-4,EAP数据包其他的代码被认证器和对等端默默的丢弃。标识符标识符字段是一个字节,用于匹配请求的回应。长度长度字段是两个字节,显示了长度,字节数,EAP数据包包含代码,标识符,长度和数据字段。字节外的长度字段范围应该被当作数据链路层填料,一旦接受必须被忽略。带有长度字段的消息的字节数大于接收到的字节数是,必须被默默的丢弃。数据数据字段是0字节或者更多的字节。数据字段的格式被数据字段确定。4.1 请求和回应描述请求数据包被认证器发送到对等端。每个请求都有一个类型字段,其中显示了被请求的状态。额外的请求数据包必须被发送,直到合法的回应数据包被接收到,一个可选的重试计数器到期,或者较低层失败显示被接受到了。转播请求在发送时必须带有相同的标识符,目的是为了与新请求包相互区分。数据字段的内容在请求类型中是独立的。对等端必须返送一个回应包,用来回应合法的请求数据包。回应包必须被发送,当作回应合法的请求,同时不会在计时器没到时转发。如果一个对等体接收到合法的重复请求包时,他已经发送了一个回应包,它必须重新发送自己的初始回应,不需要再次处理请求包。请求包在他们被接收到的时候必须被处理,同时在检查下次请求时必须被处理。请求包和回应包的格式如下所示,这些字段从左到右发送。 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 . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-代码1 请求2 回应标识符标识符字段是一个字节。如果当等待回应时,请求数据包由于超时被转播,标识符字段必须相同。任何新的请求必须修改标识符字段。回应包的标识符字段必须和当前未解决的请求包符合。认证器接收到一个回应包时,标识符不能符合当前未解决的请求包,必须丢弃。为了防止在新请求和转发之间混淆,每个新请求的标识符值应该和之前请求标识符值不同,但是不需要在整个会话过程中是独一无二的。一个可以达到此目的的方法就是开始时为标识符赋予初值,随后每个新的请求包的标识符值依次递增。最好是开始的标识符值是随机的,而不是从零开始,因为它会导致序列攻击什么的,变得很麻烦。由于标识符空间对每个字段来说是独一无二的,认证器没有被仅仅256个同步认证会话所限制。同样的,当重新认证时,EAP会话可能持续一段很长的时间,他与不会被仅仅限制在256个往返包中。注意事项:认证器负责转发请求信息。如果请求信息从其他地方获得,那么认证器将需要存储请求包的拷贝,为了达到这个目的。在用任何方法处理它们之前,对等端负责探测和处理重复请求信息,包括把它们传送到外面。在执行它们之前,认证器同样负责丢弃标识符值不符合的回应信息,包括为了查证传送他们到后台认证服务器。由于认证器能在对等端接收到回应包之前转发数据包,认证器能够接收到多路的回应包,每个都有一个合适的标识符值。直到一个新的请求信息被认证器接受到,标识符的值不会被更新,因此认证器在同一时间将回应包传送给后台认证服务器。长度长度字段是两个字节,显示了包含代码,标识符,类型和类型数据字段的EAP数据包的长度。长度字段范围之外的字节应该被当作数据链路层的沉淀,同时一旦收到必须被忽略。带有长度字段的消息,如果长度值大于接收到的字节数,那么必须被默默的丢弃。类型类型字段是一个字节。这个字段显示了请求包或回应包的类型。一个单独的类型必须为每个请求包或回应包所具体描述。初始的类型说明书在本文档的第5小节中讨论。回应包的类型字段要么与请求包的类型相符合,要么与扩展的Nak相符合,他显示了请求类型是不被对等端所接受的。对等端必须不能发送NaK作为请求包的回应包,在初始non-NaK回应被发送后。EAP服务器没有满足这些请求而接收到回应包时,必须丢弃到。类型数据类型数据字段随着请求包、回应包的类型而有不同的值。4.2 成功和失败在EAP认证方法显示对等端已经成功向认证器认证后,成功数据包被认证器发送给对等端,。认证器必须传播代码字段为3的EAP数据包。如果认证器不能认证对等端,那么在EAP方法不成功认证之后,必须传播一个代码字段为4的EAP数据包。在发送失败回应之前,为了允许人为错误,认证器可能希望发出多路请求包。成功和失败数据包不能包含其他的信息。如果给定方法的说明中没有明确允许这个方法在那个端点完成,成功和失败数据包不能够被一个EAP认证器发送,。对等端EAP接收到成功或者失败数据包后,若数据包不是明确允许必须丢弃。默认情况下,EAP对等端必须默默的丢弃一个包装的成功数据包,这就保证了一个离散的认证器将不会绕开通过发送成功数据包的彼此认证,居先于EAP方法会话结论。注意事项:因为成功和失败数据包不被承认,它们没有被认证器转发,也可能丢失了。一个对等体必须考虑到这个通知中的情形。查看3.4节作为参看,处理较低层成功和失败的标志。像是在2.1节描述的那样,一个单独的EAP认证方法在EAP会话中被允许。EAP方法可能实现结果标志。在认证器发送了一个失败结果信息给对等端后,忽略从对等端传来的回应消息,它必须随后发送一个失败数据包,在认证器发送一个成功结果信息给对等端,并且从对等端接收到成功结果信息后,他必须接着发送一个成功数据包。在对等端,一旦方法实现的不成功(例如认证器发送了失败结果消息,或者对等端决定她不想要继续这个会话了),对等端必须终止这个会话并且对较低层显示失败信息。对等端必须默默的丢弃成功数据包,并且可能丢弃失败数据包。因此,丢弃失败数据包不会导致超时。在对等端,在成功结果标志被双方交换后,一个失败数据包必须被丢弃。对等端可能,在这个事件中EAP成功数据包没有被接受,包括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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+代码:3 成功4 失败标识符:标识符字段是一个字节,用于匹配答复响应。标识符字段必须符合相应高的标识符字段。长度:44.3 转播行为由于认证过程往往包含用户输入,一旦转发策略和认证超时,必须慎重做一些决定。默认情况下,在EAP运行在不可靠的较低层,EAP转发计时器应该被动态的估计。建议最多转发3-5个。当运行在可靠的较低层时,认证器转发计时器应该被设定一个无穷大的值,因此在EAP层转发才不会发生。对等体可能坚持维持一个超时值,为了避免无限的等待请求包。在认证过程需要用户数输入,测量往返时间可能取决于用于用户的反应而不是网络的特点,因此动态的RTO估计可能不会有帮助。相反的,转发计数器应该被设定,以使提供足够的时间为用户响应,在某些情况下需要较长的超时时间,例如当令牌卡参与。为了给EAP认证器指导提供合适的超时值,一个线索可以被后台认证服务器传递给认证器。为了动态的估计EAP转发计数器,SRTT,RTTVAR,RTO算法的评价在RFC2988中描述,包括Karns算法的使用,和以下潜在的修改:a) 为了避免在分布式系统中固定计时器发生同步的行为,转发计时器通过使用RTO值和随机在-RTOmin/2和RTOmin/2之间增加一个值,同抖动一起被计算。另类计算器被使用来增加抖动。这些必须是伪随机的。关于伪随机数的泰伦在RFC1750中描述。b) 当EAP在一个的单独的链路上传输时,RTOinitial,RTOmin和RTOmax这些较小的值被使用。推荐的数据是RTOinitial=1秒,RTOmin=200毫秒,RTOmax=20秒。c) 当EAP在单独一条链路上传输时,估计在每个认证的基础上完成,而不是基于每个会话的基础。这使得转播估计能最大的使用链路层上的行为信息。d) 一个EAP的实施可能清除SRTT和RTTVAR,在计时器后退好几次后,因为它可能是当前的SRTT和RTTVAR,在这种情况下是伪造的。一旦SRTT和RTTVAR被清零,它们应该被下一个RTT样本初始化,具体描述在RFC2988。5 初始EAP请求/回应类型这一小节定义了在请求/回应交换中使用的EAP类型设置。更多的类型可能被定义在将来的文件中。类型字段是一个字节,并且标识了EAP请求或回应数据包的结构。之前的3个类型被当作是特殊的事件类型。存在的类型定义了认证交换。Nak或者扩展的Nak仅仅对回应数据包是合法的,它们不能发送在请求包中。所有的EAP过程必须支持类型1-4,它们在本文档中被定义,同时也应该支持类型254。这些过程可能支持在此或将来的RFCs中定义的其他类型。1 标识符2 通知3 Nak4 MD5-挑战5 一次性密码6 GTC254 扩展类型255 实验性的使用EAO方法可能支持基于共享密钥的认证。如果共享的密钥是由用户输入的密码,可以实现支持输入非ASCII类型的密码。在这种情况下,输入应该用一个合适的stringprep配置文件来处理,同时用UTF-8编码来编写。一个可能的初稿stringprep配置文件在SASLPREP中描述。5.1 身份描述身份类型是用来询问对等端的身份。通常情况下,认证器将使用初始请求来解决这个问题。可选的显示信息可能被列入提示对等端,在希望和用户互动的情况下。类型1的回应应该回复请求类型唯一的请求包。在一个NUL字符标识后,一些EAP实现背驼式各种选项加入身份请求。默认情况下,EAP不应该假定身份请求或回应能大于1020字节。身份回应首先被用于路由目的和选择哪种EAP方法可用。EAP方法应该包括一个为获得身份的专门方法,因此他们不需要依靠身份响应。身份请求和回应发送明文,因此攻击者可以窥探身份信息,甚至更改或欺骗身份的交流。为了解决这些威胁,最好是一个EAP方法中包含支持每个数据包认证的身份交换,完整性和重放保护,保密性。身份响应对这个方法来说不是合适的身份;他可能已经用于路径目的。凡对等端被配置为仅仅接受支持保护身份交换的认证方法,对等端可能提供一个简短的身份回应。进一步关于身份保护的讨论,请看7.3节。实施说明:对等端可能通过用户输入获得身份。在非法的身份认证失败和为了允许部分用户输入错误的情况下,认证器已被建议重新尝试身份请求,。在终止认证之前,身份请求应该至少尝试3次。通知请求可能被用于显示非法的认证请求,优先于传输一个新的身份请求。(可选择的,失败可能在新的身份请求消息中显示) 类型 1 类型数据这个字段可能包含在请求中可显示的信息,包括UTF-8编码10646属性。请求包中什么也没有,仅仅优先于空的字段的一部分被显示。如果身份是未知的,身份回应字段应该是在长度上为0字节。身份回应字段不应该被无效的终止。在所有的情况下,类型数据字段的长度应该从请求/回应数据包中获得。安全需求(看7.2节) A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国人保考试试题及答案
- 机械设计试题及答案
- 郑州叉车考试试题及答案
- 2025年广汉市市直机关遴选考试笔试试题(含答案)
- 2025年大理州永平县博南镇卫生院岗招聘考试笔试试题(含答案)
- 2025宪法知识竞赛培训试题(含答案)
- 北京物业专业知识培训课件
- 手术室n1护士所有考试试题及答案
- 树枝花艺基础知识培训课件
- 2024年职业技能鉴定:信号司索工竞赛题库(附含答案)
- JGT161-2016 无粘结预应力钢绞线
- 236种食物的血糖生成指数
- 软件无线电原理与应用第3版楼才义部分习题答案
- 怡安高潜人才选拔与盘点分享综合
- 烹饪论文及烹饪技师毕业论文
- Docker:容器与容器云(第2版)
- 药品安全药品安全
- 数据仓库维度建模
- 克制冲动情绪预防激情犯罪
- GA 1805-2022危险化学品经营企业反恐怖防范要求
- 全国中小学生语文素养展示活动组委会
评论
0/150
提交评论