一种802.1X认证的实现方法 【技术领域】
本发明涉及802.1X协议的认证技术,特别是涉及通过802.1X设备端向802.1X客户端发送认证失败或下线原因的方法。
背景技术
802.1X协议是基于端口的网络接入控制协议,基于端口的网络接入控制是指在网络设备的物理接入级对接入客户端进行认证和控制,此处的物理接入级是以太网交换或宽带接入设备的端口。连接在该类端口上的客户端设备如果能通过认证,就可以访问网络内的资源;如果不能通过认证,则无法访问网络内的资源。
图1为802.1X的体系结构示意图,如图所示:802.1X系统共有三个实体:客户端(Supplicant System)、设备端(Authenticator System)和认证服务器(Authentication Server System)。其中,设备端和认证服务器之间采用扩展认证协议(EAP,Expanded Authentication Protocol)交换认证信息。客户端和设备端之间也采用EAP交换认证信息,但为了以示区别称客户端和设备端间采用的EAP为EAPOL(EAP Over LAN)。设备端内部有受控端口(Controlled Port)和非受控端口(Uncontrolled Port)。非受控端口用来传递EAPOL协议帧,始终处于双向连通状态,保证随时接收和发送EAPOL协议帧。受控端口用来传递网络资源和数据,默认状态为未连通状态,只有在EAPOL认证通过的状态下才变为连通状态传递网络资源和数据。
图2是目前802.1X设备端用户认证失败的消息流程图,如图2所示,包括如下详细的步骤:
步骤201:802.1X客户端收到用户登录的消息后,向802.1X设备端发出认证开始(EAPOL-Start)报文,触发认证过程;
步骤202:802.1X设备端向802.1X客户端发出身份请求(EAPOL-Request[Identity])报文,要求获取用户名;
步骤203:802.1X客户端将用户名通过身份回应(EAPOL-Response[Identity])报文发给802.1X设备端;
步骤204~205:802.1X设备端向802.1X客户端发出口令请求(EAPOL-Request[MD5 Challenge])报文,向802.1X客户端进行密码咨询;之后,802.1X客户端将密码通过口令响应(EAPOL-Response[MD5])报文发给802.1X设备端;
步骤206~207:802.1X设备端通过远端认证服务器或本地设备对用户名和口令进行认证,若认证失败,则发送失败信息(EAPOL-Failure)报文;若认证成功,802.1X设备端将成功信息(EAPOL-Success)报文发送给802.1X客户端,连通受控端口,允许客户端访问网络内资源,此认证流程结束。
由此流程看出,802.1X设备端和802.1X客户端在用户认证失败或者下线时,目前都没有向用户提供认证失败或者下线的原因。这导致用户无法简便直观的得知认证失败或下线的原因,不利于802.1X客户端的易用性;另一方面也会造成运营商和用户之间对于认证失败或者下线原因的一些误解。
【发明内容】
有鉴于此,本发明的主要目的在于提供了一种802.1X认证地实现方法,使得认证失败或下线的原因可以直观的显示给用户,为用户操作带来方便。
为达到上述目的,本发明技术方案的实现需要以下步骤:
用户认证失败或下线时,802.1X设备端先确定当前失败或下线原因,然后将原因代码放置于失败信息报文中,并将该失败信息报文发送给802.1X客户端,通知802.1X客户端用户认证失败或下线原因。
其中该方法进一步包括:802.1X客户端接收所述的失败信息报文,从中提取出原因代码并进行解析,将失败或下线原因以用户终端可识别的方式通知用户终端。
其中该方法进一步包括:预先设置原因代码对应的类型值,同时分别设置每种原因的对应值。
其中该方法进一步包括:802.1X设备端将预先设定的原因代码类型值放入扩展认证协议(EAP)报文数据域包括的类型部分,同时将相应的原因值放入EAP报文数据域中数据部分包括的值部分。
由上述方法可以看出,本发明利用了现有的EAP报文,对EAP报文的格式进行扩展,即在EAP报文中定义了反映认证失败或用户下线原因的原因代码(CauseCode)域,并通过该域不同的取值对应不同的原因,使得在用户认证失败或者下线时,802.1X设备端和802.1X客户端可以提供相应的认证失败或用户下线原因,从而保证用户对认证失败或者下线的原因清晰明白,同时运营商也能针对认证失败或下线原因给用户一个明确的答复,甚至提供解决方案。不仅解决了802.1X客户端用户易用性的问题,也解决了有可能引起的运营商和用户之间对于认证失败或者下线产生误解的问题。
【附图说明】
图1为802.1X的体系结构示意图。
图2为现有技术中802.1X设备端向客户端发送认证失败的消息流程图。
图3为本发明所采用的EAP报文格式示意图。
图4为在用户认证失败情况下802.1X设备端向客户端发送认证失败原因的实施例消息流程图。
【具体实施方式】
本发明是通过对现有的EAP失败信息(EAPOL-Failure)报文进行扩展,将认证失败或下线的原因通过对该报文中的数据域设置新的类型值及填充相应的数据内容传送给802.1X客户端。图3所示为本发明所采用的EAP报文格式构成,包括类别(Code)31、标识(Identifier)32、长度(Length)33和数据(Data)34四个域。
其中,Code域31用于标识EAP报文的类型。该域定义了四种类型值:1表示请求(Request);2表示回应(Response);3表示成功(Success);4表示失败(Failure)。
Identifier域32用于标识认证进程。设备端的端口状态实体(PAE,PortAuthentication Entity)决定一个EAP-Request/Identity报文的Identifier值,客户端PAE在相应的EAP-Response报文中使用相同的Identifier值,通过相同的Identifier值来标识一个认证进程。
Length域33用于标识EAP报文的长度。
Data域34用来存放数据。Data域34又进一步由类型(Type)部分341和此类型对应的数据(Type-Data)部分342组成。Type部分341主要定义了各种认证机制,Type-Data部分342还包括存放数据所占的字节容量(Vlue-Size)部分3421、值(Vlue)部分3422、名称(Name)部分3423组成。其中Type部分341定义了六种类型值:1表示身份(Identity);2表示通告(Notification);3表示否定应答(Nak);4表示信息摘要算法质询(MD5-Challenge);5表示单次口令(One-Time Password);6表示普通令牌卡(Generic Token Card)。其中,类型值1~2、4~6适用于Requset和Respone报文,类型值3适用于Response报文。在本发明中增加了类型值8,8表示原因代码(CauseCode),适用于Failure报文。
CauseCode在EAPOL-Failure报文里为客户端提供认证失败或下线的原因。失败原因由Value部分3422给出,Value部分3422定义了五种类型值:1表示用户名和密码不对(Name-Pwd-Failure);2表示闲置切断下线(IdleCut);3表示时间限制切断(TimeCut);4表示流量限制切断(FlowCut);5表示其它失败原因(Other-Failure)。该Value部分的值不限定只为以上五种内容,可根据技术的发展和实际需要,进行相应的增加或改变。
本发明在用户认证失败或者下线时,802.1X设备端向802.1X客户端发送含CauseCode的EAPOL-Failure报文;然后802.1X客户端对802.1X设备端发来的EAPOL-Failure报文进行解析,以用户能理解的字符串显示,实现了认证失败或下线原因向用户的提示。
以用户认证失败为例,参见图4所示,具体的认证处理过程如下:
步骤401到406:与现有技术中的步骤201到206完全相同,首先由802.1X客户端将用户名和密码提交给802.1X设备端,802.1X设备端通过远端认证服务器或本地设备进行认证。若认证成功,802.1X设备端将EAPOL-Success报文发送给802.1X客户端;若认证失败,则执行步骤407。
步骤407:802.1X设备端向802.1X客户端发送EAPOL-Failure报文,认证失败原因在EAPOL-Failure报文中通过CauseCode带给802.1X客户端,比如:用户名和密码不对时,EAP报文数据域中类型部分342的值为8,相应的CauseCode的Value部分3422的值为1。
步骤408:802.1X客户端将EAPOL-Failure报文中对应的原因值解析成用户能理解的字符串,显示给用户。比如:如果Value部分的值为1,则解析为Name-Pwd-Failure,进一步可翻译成“用户名和密码不对”显示给用户,然后本流程结束。
又例如,若在正常连接状态下由于某种原因,802.1X设备端要求客户端下线,则执行上述实施例的步骤407、408:802.1X设备端发送EAPOL-Failure报文给802.1X客户端,下线原因在EAPOL-Failure报文中通过数据域中CauseCode对应的Value部分带给802.1X客户端;然后802.1X客户端根据EAPOL-Failure报文中的原因值,解析出用户能理解的字符串,显示给用户。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。