现在的位置: 首页 > 综合 > 正文

可扩展认证协议(EAP)5. 初始化的EAP请求/应答类型

2012年11月24日 ⁄ 综合 ⁄ 共 5444字 ⁄ 字号 评论关闭

5. 初始化的EAP请求/应答类型

本节定义在请求和应答交换中用到的初始化EAP类型。更多的类型以后的文档会定义。类型项是一个字节,标识一个EAP请求或应答包的结构。前3个类型看作特殊类型。

剩下的类型定义认证交换。Nak(类型3)或者扩展的NakType254
仅对应答包有效,绝不能在请求包里发送。

所有EAP实现方式必须支持本文定义的1~4类型,应该支持254类型。实现方式可以支持下面的类型或者以后定义到的类型。

1 标识

2 通知

3 Nak (仅应答)

4 MD5-挑战

5 一次性密码(OTP

6 通用令牌卡(GTC

254 扩展的类型

255 用于实验

EAP方法可以支持基于共享私隐。如果这共享私隐是用户登陆密码,实现方式可以支持用非ASCII字符登陆密码。这种情况,输入可以用一个合适的stringprepproile来处理,编码用UTF-8编码。SASLPREPstringprepprofile规范的草稿。

5.1. 标识

描述

标识项用于查询对等端的标识。一般,认证端会将它当作初始化请求。当想与用户交互时,可以给用户提示一个可选的信息。类型1的应答对应类型1的请求。

有些EAP实现方式在一个空字符之后将不同选项piggy-back放进标识请求里。默认情况下,EAP实现不应该认为标识请求或应答会大于1020个字节。

建议标识应答主要用于路由和选择EAP方法。EAP方法应该包含一个专门方法的机制,用于获取标识,这样就不用对标识应答作回应了。标识请求和应答是明文发送的,这样攻击者就可以窥探到标识,甚至修改和欺骗标识交换。为了对付这些威胁,EAP方法应该包含一个支持每包认证、完整性、重播保护和保密的标识交换。标识应答可能不适合用于区分方法;它可能在提供隐私时已被截断或模糊处理过,或者为作为路由可能已被装饰过。当对等端被配置成只接受支持受保护的标识交换认证方法时,对等端会提供一个简略的标识应答。关于标识保护更详细的讨论可以看7.3节。

实现时注意:对等端可能通过用户输入来获取标识。建议认证端在收到无效标识或认证失败时重发标识请求,以防止用户敲错字。建议在终止认证前,至少重发3次标识请求。通知请求可以用来表示一个无效的认证尝试,优先于发送一个新的标识请求。

Type

1

Type-Data

该项可以在请求包里包含一个可显示的信息,可包含UTF-8编码的ISO10646字符。当请求包里有null字符,则只有null前的部分信息可显示。如果标识是未知的,则标识应答项里长度的值应为0。标识应答项不能以null终止。所有情况下,Type-Data项的长度值由请求/应答包的长度项决定。

安全性要求(请看7.2节):

认证机制: None

密钥协商: No

完整性保护: No

重播保护: No

保密性: No

密钥推导: No

密钥长度: N/A

字典攻击保护: N/A

快速重连接: No

加密绑定: N/A

会话无关性: N/A

数据分裂: No

通道绑定: No

5.2. 通知

描述

通知类型可选择用于从认证端向对等端传达一条可显示信息。在完成EAP认证方法前,如果没有未完成的请求,认证端随时可以发一个通知请求给对等端。对等端必须用一个通知应答来响应通知请求,除非EAP认证方法规范禁止使用通知信息。任何情况下,绝不能用Nak应答来响应通知请求。注意,通知请求的最大长度是1020个字节。默认允许最大1015个字节作为人类可读信息。

EAP方法可能在本规范里声明在该方法期间绝不发送通知信息。这种情况,对等端在一个初始化请求已经得到应答时必须丢弃通知请求。

对等端应该向用户显示这条信息或者如果不能显示应该记录下这条信息。通知类型为一些必要性质提供公认的通知,并不表示出错提示,因此不需改变对等端状态。例如,即将到期的密码,接近0OTP序列整数,认证失败的警告等。大多数情况下,不需要通知。

Type

2

Type-Data

请求中的Type-Data包含一个长度大于0个字节的可显示信息,含有UTF-8编码的ISO10646字符。信息长度由请求包的长度项决定。信息绝不能用null结束。对通知请求必须发一个应答去响应。应答的Type-Data长度为0字节。应答应即刻发出。

安全要求(请看7.2)

认证机制: None

加密协商: No

相互认证: No

完整保护: No

重播保护: No

机密性: No

密钥推导: No

密钥长度: No

字典攻击保护:N/A

快速重新连接:N/A

加密绑定: No

会话无关性: N/A

数据分裂: No

通道绑定: No

5.3. Nak

5.3.1. 常规Nak

描述

常规Nak类型只在应答信息中有效。当想要的认证类型不被接受时发送常规Nak用于响应请求。认证类型是4及以上。应答包含对等端相要的一个或多个认证类型。类型0用于表示发送者没有其他可用的选择,因此认证端在收到类型为0Nak时不应发起另一个请求。

由于常规Nak类型只在应答里有效,并且功能有限,绝不能用作一般的出错提示,例如,通信出错或者带特定参数与其他EAP方法协商。

编码

2 用于应答

标识

标识项有一个字节,用于匹配应答与请求。一个常规Nak应答的标识必须匹配请求包里的标识项。

长度

>=6

类型

3

Type-Data

当对等端收到的认证请求是不被接受的认证类型(4-253,255),或者对等端不支持扩展类型,却收到254类型的请求,必须发送一个Nak应答(类型为3)。Nak应答的Type-Data项必须包含一个或多个字节,用以表示想要的认证类型,每个类型有一个字节,或者用0表示没有其他可能的选择。支持扩展类型的对等端收到一个不可接受的类型(4-253,255)会用254Nak来应答,表示想要一个扩展的认证类型。如果认证端可以提供该项支持,就会用一个扩展类型(254)请求来回应。

安全需求(请看7.2)

认证机制: None

加密协商: No

相互认证: No

完整保护: No

重播保护: No

机密性: No

密钥推导: No

密钥长度: No

字典攻击保护:N/A

快速重新连接:N/A

加密绑定: No

会话无关性: N/A

数据分裂: No

通道绑定: No

5.3.2. 扩展的Nak

描述

扩展的Nak类型仅在应答信息里有效。当认证类型不被接受时必须发送扩展Nak来响应254类型请求。扩展Nak类型使用自身的扩展类型格式,应答包含一个或多个对等端想要的认证类型,所有都用扩展类型格式。0类型用于表示发送者没有可用的选择。5.7节有描述扩展类型的一般格式。

由于扩展Nak类型仅在应答里有效,并且功能有限,绝不能用作一般的出错提示,比如通信出错信息,或者带特定参数与其他EAP方法协商。

编码

2表示应答

标识

标识项是一个字节,用于匹配应答与请求。扩展Nak应答的标识项必须匹配请求包里的标识项。

长度

>=20

类型

254

Vendor-Id

0 (IETF)

Vendor-Type

3 (Nak)

Vendor-Data

当请求包含有扩展类型(254)时才发送扩展Nak类型。Vendor-Data项必须包含一个或多个认证类型(4或以上),所有都用扩展格式,每个类型有8个字节,或者是0,也是用扩展格式,表示没有可用选项。想要的认证类型会含有一个Vendor-SpecificIETF类型的混合体。例如,一个扩展Nak应答表示优先使用OTP(类型5),和MIT(Vendor-Id=20)(扩展类型为6),格式如下:

扩展Nak应答表示没有想要的选项时,格式如下:

安全需求(请看7.2)

认证机制: None

加密协商: No

相互认证: No

完整保护: No

重播保护: No

机密性: No

密钥推导: No

密钥长度: No

字典攻击保护:N/A

快速重新连接:N/A

加密绑定: No

会话无关性: N/A

数据分裂: No

通道绑定: No

5.4. MD5-挑战

描述

MD5-挑战类型与PPPCHAP协议类似。给对等端的请求包含一个挑战信息。必须发送一个应答来响应请求。应答可以是类型4(MD5-挑战),类型3Nak),或者类型254(扩展Nak)。Nak应答表示是对等端想要的认证类型。EAP对等端和EAP服务器实现方式必须支持MD5-挑战机制。只支持直通的认证端必须允许与支持MD5-挑战的后台认证服务器联系,即使认证端实现方法自身并不支持MD5-挑战。然而,如果EAP认证端可以本地配置成认证对等端,则要求支持MD5-挑战。

注意,MD5-挑战类型的标识项的使用是不同于RFC1994里描述的。EAP允许MD5-挑战请求包重发,同时,每次一个挑战发送时,标识项和挑战项的状态都必须改变。

注意:RFC1994将共享私密当作一个字节的字符串,并且没指明以何种方式放进系统。EAPMD5-挑战实现方式可以支持非ASCII字符密码。请看第5节,怎样将输入进行处理和编码并放进字节里。

Type

4

Type-Data

Type-Data项的内容与下面类似。这些项的使用,可参考PPP挑战握手认证协议RFC1994

安全机制(请看7.2节)

认证机制:
密码或预共享密钥

加密协商: No

相互认证: No

完整保护: No

重播保护: No

机密性: No

密钥推导: No

密钥长度: No

字典攻击保护:N/A

快速重新连接:N/A

加密绑定: No

会话无关性: N/A

数据分裂: No

通道绑定: No

5.5. 一次性密码(OTP)

描述

一次性密码系统在RFC2289OTP扩展应答RFC2243里有定义。请求包里有OTP挑战,必须发一个应答来响应。应答必须是类型5(OTP)、类型3(Nak)、类型254(扩展的Nak)Nak应答表示正是对等端想要的认证类型。EAPOTP方法只用于一次性密码系统,绝不用于支持明文密码。

Type

5

Type-Data

Type-Data项含有OTP挑战,在请求包里作为可显示信息。在应答包里,该项存储来自OTP字典的6字个字。信息绝不能以null结束。项的长度对请求/重播包的长度项决定。

注意:RFC2289没有指明用户如何输入密码,或者密码出何转换成字节。EAPOTP实现方式可以支持输入非ASCII字符的密码。请看第5节,怎样将输入进行处理和编码并放进字节里。

安全需求(请看7.2节)

认证机制:
一次性密码

加密协商: No

相互认证: No

完整保护: No

重播保护: No

机密性: No

密钥推导: No

密钥长度: No

字典攻击保护:N/A

快速重新连接:N/A

加密绑定: No

会话无关性: N/A

数据分裂: No

通道绑定: No

5.6. 通用令牌卡(GTC)

描述

通用令牌卡定义为使用用户输入的各种令牌实现方式。请求包有可显示信息,应答包有认证需要的令牌卡信息。特别是,这个是用户可以从令牌卡设备读到的信息,并且输入的是SCII文本。必须发送应答包来响应请求。应答必须是类型6(GTC)、类型3(Nak)、类型254(扩展的Nak)Nak表示正是对等端想要的认证类型。EAPGTC方法用令牌来支持挑战/应答认证,绝不能用于在没有保护通道时与服务器明码认证。

Type

6

Type-Data

Type-Data在请求包里含有可显示信息,长度大于0字节。信息的长度时由请求包的长度项决定的。信息不能以null结束。必须发应答包来响应类型为6(通用令牌卡)的请求。应答包里需包含来自令牌卡的数据用作认证。数据长度由应答包的长度项决定。

EAPGTC实现方式可以支持输入非ASCII字符的应答。请看第5节,怎样将输入进行处理和编码并放进字节里。

安全需要(请看7.2)

认证机制:
硬件令牌

加密协商: No

相互认证: No

完整保护: No

重播保护: No

机密性: No

密钥推导: No

密钥长度: No

字典攻击保护:N/A

快速重新连接:N/A

加密绑定: No

会话无关性: N/A

数据分裂: No

通道绑定: No

5.7. 扩展的Nak

描述

由于很多在用的EAP是厂商指定的,扩展的方法类型就允许厂商在没有合适的通用用法时支持他们自己的扩展类型。扩展的类型也用于扩展所有方法类型的空间,使其大于2550的厂商ID将原始255种可能类型映射到2^32-1种可能类型(类型0仅用于Nak应答,表示没有可接受的其他选择).

支持扩展属性的实现方式必须认为EAP类型少于等于256,不管他们是否一个字节或者32位的Vendor-Type。对等端不支持扩展类型则必须发一个Nak5.3.1有描述),并用一个更合适的认证方法来协商。

下面是扩展类型的简图。传输由左到右。

Type

254表示扩展类型

Vendor-Id

Vendor-Id3字节,以网络字节顺序表示SMI网络管理厂商的私有企业编码,由IANA分配。值为0的Vendor-Id保留用于提供扩展的全局EAP类型空间。

Vendor-Type

Vendor-Type项是4字节,表示特定的vendor方法类型。

如果Vendor-Id0Vendor-Type是扩展的,并对EAP类型的现有名称空间是绝密的。前256个类型保留用于兼容单字节EAP类型。因此,从0255EAP类型是语义上一致的,不管他们是作为一个单字节EAP类型或者作为Vendor-Types。也有例外:扩展的Nak和常规Nak包共享相同的类型,但必须分别对待,因为他们是不同格式的。

Vendor-Data

Vendor-Data项由厂商定义。当Vendor-Id等于0Vendor-Data项将用于EAP方法的内容。

5.8. 验用的

描述

试验用的类型没有固定格式和内容。在试验新EAP类型时使用。该类型用于试验和测试。不保证该类型可在对等端之间使用,因为已超出RFC3692范围。

Type

255

Type-Data

未定义

抱歉!评论已关闭.