802.1X认证基础
802.1X认证简介
定义
802.1X协议是一种基于端口的网络接入控制协议(Port based networkaccess control protocol)。“基于端口的网络接入控制”是指在局域网接入设备的端口这一级验证用户身份并控制其访问权限。
优点802.1X协议为二层协议,不需要到达三层,对接入设备的整体性能要求不高,可以有效降低建网成本。
认证报文和数据报文通过逻辑接口分离,提高安全性。
802.1X认证系统
如图1-1所示,802.1X系统为典型的Client/Server结构,包括三个实体:客户端、接入设备和认证服务器。
图1-1 802.1X认证系统
客户端一般为一个用户终端设备,用户可以通过启动客户端软件发起802.1X认证。客户端必须支持局域网上的可扩展认证协议EAPoL(Extensible Authentication Protocol over LANs)。
接入设备通常为支持802.1X协议的网络设备,它为客户端提供接入局域网的端口,充当客户端和认证服务器之间的中介,从客户端请求身份信息,并与认证服务器验证该信息。根据客户端的身份验证状态控制其对网络的访问权限。
认证服务器用于实现对用户进行认证、授权和计费,通常为RADIUS服务器。
802.1X认证协议
简介
802.1X认证系统使用可扩展认证协议EAP(Extensible Authentication Protocol)来实现客户端、设备端和认证服务器之间的信息交互。EAP协议可以运行在各种底层,包括数据链路层和上层协议(如UDP、TCP等),而不需要IP地址。因此使用EAP协议的802.1X认证具有良好的灵活性。
在客户端与设备端之间,EAP协议报文使用EAPoL(EAP over LANs)封装格式,直接承载于LAN环境中。
在设备端与认证服务器之间,用户可以根据客户端支持情况和网络安全要求来决定采用的认证方式。EAP终结方式中,EAP报文在设备端终结并重新封装到RADIUS报文中,利用标准RADIUS协议完成认证、授权和计费。
EAP中继方式中,EAP报文被直接封装到RADIUS报文中(EAP over RADIUS,简称为EAPoR),以便穿越复杂的网络到达认证服务器。
EAP报文
图1-2 EAP报文
表1-1 EAP报文字段解释字段
字节数
含义
Code
1
表示EAP数据包的类型,共有以下几种
1(Request):请求。
2(Response):响应。
3(Success):成功。
4(Failure):失败。
ID
1
用于匹配Request和Response。
Length
2
表示EAP数据包的长度,包括Code、ID、Length以及Data各字段。超出Length域范围的字节应该视为数据链路层填充,在接收时应该被忽略掉。
Data
0或多个字节
Data字段的格式由Code的值来决定。
当Code取值为1或者2时,EAP为Request和Response报文,Data包含Type、Type Data两个字段,如上图所示。其中,Type为一个字节,表示Request或Response的类型。Type Data为多个字节,内容由Type字段的值决定。
当Code取值为3或者4时,EAP为Success和Failure报文,没有Data字段。
表1-2 Type常用取值Type字段值
类型
含义
1
Identity
要求客户端发送用户输入的用户名信息。
2
Notification
非必须的通知消息,传送一些警告消息,例如密码已过期、账号被锁等。
3
NAK
仅用于Response帧,表示否定确认。例如设备用了客户端不支持的认证方法发起请求,客户端可利用Response/NAK消息以告知设备其支持的认证方法。
4
MD5-Challenge
认证方法为MD5质询法。
5
OTP(One-Time Password)
认证方法为一次性密码,例如网银付费时系统会通过短信发送一个一次性密码。
6
GTC(Generic Token Card)
认证方法为通用令牌卡。跟OTP类似,只不过GTC往往对应一个实际的设备,例如许多国内银行都会给申请网银的用户一个动态口令牌,这个令牌就是GTC。
13
EAP-TLS
认证方法为EAP-TLS。
21
EAP-TTLS
认证方法为EAP-TTLS。
25
EAP-PEAP
认证方法为EAP-PEAP。
254
Expanded Types
扩展类型,支持厂商自定义的类型。
255
Experimental use
实验新的类型时做测试用的类型。
EAPoL
EAPoL是802.1X协议定义的一种报文封装格式,主要用于在客户端和设