1. 在链路阶段完成以后,认证方向对端发送一个或多个请求报文 。在请求报文中有一个类型字段用来指明认证方所请求的信息类型,例如是对端的ID、MD5的挑战字、一次密码(OTP)以及通用令牌卡等 。MD5的挑战字对应于CHAP认证协议的挑战字 。典型情况下,认证方首先发送一个ID请求报文随后再发送其他的请求报文 。当然,并不是必须要首先发送这个ID请求报文,在对端身份是已知的情况下(如租用线、拨号专线等)可以跳过这个步骤 。
2. 对端对每一个请求报文回应一个应答报文 。和请求报文一样,应答报文中也包含一个类型字段,对应于所回应的请求报文中的类型字段 。
3. 认证方通过发送一个成功或者失败的报文来结束认证过程 。
优点:
EAP可以支持多种认证机制,而无需在LCP阶段预协商过程中指定 。
某些设备(如:网络接入服务器)不需要关心每一个请求报文的真正含义,而是作为一个代理把认证报文直接透传给后端的认证服务器 。设备只需关心认证结果是成功还是失败,然后结束认证阶段 。
缺点:
EAP需要在LCP中增加一个新的认证协议,这样现有的PPP实现要想使用EAP就必须进行修改 。同时,使用EAP也和现有的在LCP协商阶段指定认证方法的模型不一致 。
2.1配置选项(ConfigOption)格式
用于指定EAP认证协议的认证协议配置选项格式如下所示,字段的传输顺序是从左向右 。
0123
01234567890123456789012345678901
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeLengthAuthentication-Protocol
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
类型Type
3
长度Length
4
认证协议Authentication-Protocol
C227(16进制)对应于PPP的扩展认证协议EAP
1.1报文格式
当PPP帧的协议字段是16机制的C227的时候,表示PPP帧的信息字段里封装了一个完整的EAP报文 。EAP报文的格式如下所示,字段的传输顺序是从左向右 。
0123
01234567890123456789012345678901
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CodeIdentifierLength
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Data...
- - - -
代码Code
代码字段占一个字节,表明了EAP报文的报文类型 。分配如下:
1请求
2应答
3成功
4失败
标识Identifier
标识字段占一个字节,用于应答报文和请求报文之间进行匹配 。
长度Length
长度字段占两个字节,用于表示EAP报文的长度,包括代码、标识、长度和数据字段 。超出长度的字节应该视为链路层的填充字节,接收方应该忽略 。
数据Data
数据字段是零个或多个字节,数据字段格式由代码字段确定 。
请求和应答
描述
请求报文由认证方发向对端 。每一个请求报文都有一个类型字段用来表示请求方在请求什么信息 。认证方必须向对端发送一个EAP报文并把其中的代码(CODE)字段设为1(REQUEST) 。认证方必须在收到一个有效的应答报文或者在一个可选的计数器计满后再发送其他的请求报文 。重传的请求报文中的标识(ID)字段必须保持不变,以便区分重传的请求报文和新的请求报文 。数据字段的内容取决于类型字段的值 。对端每收到一个请求报文后必须回应一个报文 。只有在收到请求报文的情况下才发送应答报文,请求报文没有超时重传的情况 。应答报文中标识(ID)字段必须和请求报文中的标识字(ID)段相匹配 。
1实现注重事项:由于在认证过程经常涉及到用户输入,必须采取合适的重传策略和超时时间 。建议缺省情况下采用6秒的超时计数器,最大重传次数设为10 。在某些情况下可以延长超时时间(如涉及到令牌卡的情况) 。另外,对端在等待用户输入的时候必须静静地丢弃收到的重复的请求报文 。
推荐阅读
- BGP-4多协议扩展
- 对多宿主的多提供者连接的可扩展性支持
- IP多点广播的主机扩展
- POP3扩展机制
- 支持IPv6地址聚合和重编号的DNS扩展
- GRE的Key和Sequence Number扩展
- SMTP 针对命令流水线的服务扩展
- 主机扩展用于IP多点传送
- IMAP4 ID 扩展名
- PPP 链路质量监控
