第四章网络安全访问控制网络访问控制—EAPEAP协议介绍EAP相关概念EAP报文的封装格式EAP报文格式EAP认证过程EAP协议介绍可扩展认证协议(ExtensibleAuthenticationProtocol,EAP)是在RFC3784中定义。它提供了一种支持多种认证方法的认证框架,主要用在无线、有线网络接入的认证中。其一般工作在数据链路层上,也就是可以直接运行于PPP或者IEEE802之上,不用依赖于IP。EAP认证方法目前大约有40种,IETF的RFC中定义的方法包括:EAP-MD5、EAP-OTP、EAP-GTC、EAP-TLS、EAP-SIM和EAP-AKA,还包括一些厂商提供的方法和新的建议。EAP协议介绍虽然EAP支持多种认证方法,但是却不要求认证方支持所有的认证方法,因为EAP架构允许使用一个后端的认证服务器(也就是AAA服务器),此时认证方起到的作用就是在客户端和认证服务器之间传递消息。如图所示在Authenticator(认证方)和Supplicant(客户端)交互足够多的信息之后,才会决定选择一种具体的认证方法,即允许协商所希望的认证方法。EAP协议介绍该协议也支持重传机制,但这需要依赖于底层保证报文的有序传输,EAP不支持乱序报文的接收。协议本身不支持分片与重组,当一些EAP认证方法生成大于MTU(MaximumTransmissionUnit,最大传输单元)的数据时,需要认证方法自身支持分片与重组。EAP相关概念Authenticator(验证者):简单点说,Authenticator就是响应认证请求的实体(Entity)。对无线网络来说,Authenticator往往是AP。Supplicant(验证申请者①):发起验证请求的实体。对于无线网络来说,Supplicant就是智能手机。BAS(BackendAuthenticationServer,后端认证服务器):某些情况下(例如企业级应用)Authenticator并不真正处理身份验证,它仅仅将验证请求发给后台认证服务器去处理。正是这种架构设计拓展了EAP的适用范围。AAA(Authentication、ounting,认证、授权和计费):另外一种基于EAP的协议。实现它的实体属于BAS的一种具体形式,AAA包括常用的RADIUS服务器等。在RFC3748中,AAA和BAS的概念可互相替代。EAPServer:表示真正处理身份验证的实体。如果没有BAS,则EAPServer功能就在Authenticator中,否则该功能由BAS实现。EAP报文的封装格式ERP报文封装格式根据数据链路层上的网络类型决定。当数据链路层采用的是PPP链路时,PPP帧的协议字段是0xC227的时候,表示PPP帧的信息字段里封装了一个完整的EAP报文,其数据包的格式如图所示。Type:一个字节,取值为3Length:一个字节,取值为4AuthenticationProtocol:两个字节,C227(Hex)forExtensibleAuthenticationProtocol(EAP)EAP报文格式当数据链路层采用的是IEEE802(以太网)时,采用的是EAPOL数据的封装格式,报文格式如图。Code:一个字节,指明EAP包的类型,共有4种,域值定义如下:1--------Request2--------Response3--------ess4--------Failure由于该字段值只定义了1到4,如果EAP报文的该字段为其他值,则应被Authenticator和Supplicant丢弃。Identifier:一个字节,用于应答报文和请求报文之间进行匹配。Length:两个字节,EAP包的长度,包含Code、Identifier、Length和Data域,单位为字节。Data:零个或多个字节,EAP包的内容,由Code类型决定EAP报文格式上面提到的Code,ess和Failure类型的包没有Data域,相应的Length域的值为4。但是某些软件的实现中,为了说明认证失败的原因,在Length域后面增加了字段用于说明下线的原因,故Length域的值可能为其他值。如果是Request和Response,则Data域格式如图所示。Type:一个字节,标识EAP的认证类型。TypeData:该字段的内容由Type字段的值决定。EAP报文格式Type字段目前定义的值及其简要说明如下:Type=1----Identifier(用来询问对端的身份)Type=2----Notification(非必须的一个消息,传送一些警告消息,比如提示密码将要超期、OTP的顺序号码接近零以及认证失败的警告等)。Type=3----Nak(ResponseOnly)(Request报文中的认证类型
可扩展的认证协议 来自淘豆网m.daumloan.com转载请标明出处.