EAP(Extensible Authentication Protocol)为可扩展身份验证协议,是一系列验证方式的集合,设计理念是满足任何链路层的身份验证需求,支持多种链路层认证方式。EAP协议是IEEE 802.1x认证机制的核心,它将实现细节交由附属的EAP Method协议完成,如何选取EAP method由认证系统特征决定。这样实现了EAP的扩展性及灵活性,如图所示,EAP可以提供不同的方法分别支持PPP,以太网、无线局域网的链路验证。
EAP可分为四层:EAP底层,EAP层,EAP对等和认证层(EAP peer and authentication layer)和EAP方法层。
EAP协议示意图
EAP底层负责转发和接收被认证端(peer)和认证端之间的EAP frames;EAP层接收和转发通过底层的EAP包;EAP对等和认证层在EAP对等层和EAP认证层之间对到来的EAP包进行多路分离;EAP方法层实现认证算法接收和转发EAP信息。基于EAP衍生了许多认证协议,如EAP-TLS[RFC5216]和EAP-pwd [RFC5931]等。其中EAP-SIM,EAP-smartcard和LEAP可以较好地适用于资源受限的设备。EAP身份验证方法
使用可扩展的身份验证协议(EAP),任意身份验证机制都可以对远程访问连接进行身份验证。通过远程VPN客户端和验证程序(ISA服务器或RADIUS服务器)协商要使用的确切身份验证方案。ISA服务器包括默认情况下支持Message Digest 5 Challenge (MD5-Challenge)和EAP-Transport Level Security (EAP-TLS)。
EAP允许远程VPN客户端和验证程序之间进行开端对话。对话由对身份验证信息的验证程序请求和远程VPN客户端的响应组成。例如,当EAP与安全标记卡一起使用时,验证程序可以单独查询远程访问客户端的名称、PIN和卡标记值。经过提问和回答一轮查询之后,远程访问客户端将通过身份验证的另一个级别。正确回答所有问题之后,将对远程访问客户端进行身份验证。
特定的EAP身份验证方案称为EAP类型。远程访问客户端和验证程序必须支持相同的EAP类型才能成功进行身份验证。
有关配置身份验证方法的说明,请参阅配置VPN身份验证方法。
EAP是一组以插件模块的形式为任何EAP类型提供结构支持的内部组件。为了成功进行身份验证,远程访问客户端和验证程序必须安装相同的EAP身份验证模块。ISA服务器支持两种EAP类型:MD5-Challenge和EAP-TLS。
MD5-Challenge
Message Digest 5 Challenge(MD5-Challenge)是一种必需的EAP类型,其使用与基于PPP的CHAP相同的质询/握手协议,但是质询和响应是作为EAP消息发送的。MD5-Challenge的典型用法是通过使用用户名和密码安全系统对远程VPN客户端的凭据进行身份验证。您还可以使用MD5-Challenge来测试EAP的互操作性。
EAP-TLS
EAP-Transport Level Security(EAP-TLS)是在基于证书的安全环境中使用的EAP类型。如果您将智能卡用于远程访问身份验证,则必须使用EAP-TLS身份验证方法。EAP-TLS的消息交换可以提供远程VPN客户端和验证程序之间的相互身份验证、加密方法的协商和加密密钥的确定。EAP-TLS提供了最强大的身份验证和密钥确定方法。
EAP-RADIUS
EAP-RADIUS并不是一种EAP类型,但是可以通过验证程序将任何EAP类型的EAP消息传递到RADIUS服务器,以便进行身份验证。例如,将ISA服务器配置为用于RADIUS身份验证时,将封装在远程VPN客户端和ISA服务器之间发送的EAP消息,并在远程访问服务器和RADIUS服务器之间将格式设置为RADIUS消息。
EAP-RADIUS用在将RADIUS作为身份验证提供程序的环境中。使用EAP-RADIUS的优势在于不需要在每个远程访问服务器上安装EAP类型,只需要在RADIUS服务器上安装即可。在Internet验证服务(IAS)中,只需要在ISA服务器上安装EAP类型。
EAP协议帧结构
802.1x协议在实现整个认证的过程中,其三个关键部分(客户端、认证系统、认证服务器)之间是通过不同的通信协议进行交互的,其中认证系统和认证服务器之间是EAP报文。
EAP帧结构如下表所示:
字段 | 字节 |
Code | 1 |
Identifier | 2 |
Length | 3-4 |
Data | 5-N |
EAP帧格式中各字段含义如下:
字段 | 占用字节数 | 描述 |
Code | 1个字节 | 表示EAP帧四种类型:1.Request;2.Response 3.Success;4.Failure |
Identifier | 1个字节 | 用于匹配Request和Response。Identifier的值和系统端口一起单独标识一个认证过程 |
Length | 2个字节 | 表示EAP帧的总长度 |
Data | 0或更多字节 | 表示EAP数据 |
其中Code的取值如下:
1:Request
2:Response
3:Success
4:Failure
参考:EAPoL协议
802.1x协议定义了一种报文封装格式,这种报文称为EAPoL(EAP over LANs局域网上的扩展认证协议)报文,主要用于在客户端和认证系统之间传送EAP协议报文,以允许EAP协议报文在LAN上传送。
标准EAPoL帧结构如下表所示:
字段 | 字节 |
PAE Ethernet Type | 1-2 |
Protocol Version | 3 |
Packet Type | 4 |
Packet Body Length | 5-6 |
Packet Body | 7-N |
EAPoL帧格式中各字段含义如下:
字段 | 占用字节 | 描述 |
PAE Ethernet Type | 2个字节 | 表示协议类型,802.1x分配的协议类型为888E |
Protocol Version | 1个字节 | 表示EAPOL帧的发送方所支持的协议版本号。本规范使用值为0000 0001 |
Packet Type | 1个字节 | 表示传送的帧类型,如下几种帧类型: a)EAP-Packet.值为0000 0000 b)EAPOL-Start.值为0000 0001 b)EAPOL-Logoff.值为0000 0010 |
Packet Body Length | 2个字节 | 表示Packet Body的长度 |
Packet Body | 0/多字节 | 如果Packet Type为EAP-Packet,取相应值。对于其他帧类型,该值为空。 |
EAPOL帧在二层传送时,必须要有目标MAC地址,当客户端和认证系统彼此之间不知道发送的目标时,其目标MAC地址使用由802.1x协议分配的组播地址01-80-c2-00-00-03。
1、本网站为开放性注册平台,以上所有展示信息均由会员自行提供,内容的真实性、准确性和合法性均由发布会员负责,本网站对此不承担任何法律责任。
2、网站信息如涉嫌违反相关法律规定或侵权,请发邮件至599385753@qq.com删除。