H04L9/40
1.一种安全认证方法,其特征在于,所述方法包括:
代理者设备向认证服务器发送认证报文;
其中,认证服务器与代理者连接的网络端口处于关闭或禁止状态,且当认证服务器根据认证报文的协议类型和目的媒体访问控制MAC地址确定接收到的认证报文为EAP认证开始报文时,响应于EAP认证开始报文通知代理者设备发送代理者设备的身份信息;
代理者设备根据认证服务器发送的通知,向认证服务器发送EAP认证响应报文,EAP认证响应报文中携带代理者设备的身份信息,身份信息包括用户名;
其中,所述认证服务器根据所述EAP认证响应报文对所述代理者设备进行认证,并当认证服务器在预先保存的用户名和密码中查到EAP认证响应报文中携带的用户名对应的密码时,用随机生成的一个加密字对所述密码进行加密处理,同时将加密字发送给代理者设备;
代理者设备使用接收的加密字对代理者设备的密码进行加密并将所述加密字、用户名以及加密密码封装在报文中发送给认证服务器;
其中,当认证服务器确定所述报文中携带的加密密码与预先保存的所述用户名对应的加密密码相同时,对代理者设备认证通过,并将自身与所述代理者设备连接的网络端口改为授权状态;
代理者设备通过所述网络端口实现认证服务器对申请者设备的认证,其中,认证服务器与代理者设备使用Radius协议通信,代理者设备与申请者设备使用EAP协议通信。
2.根据权利要求1所述的方法,其特征在于,代理者设备向认证服务器发送认证报文,包括:
代理者设备通过在802.1X客户端程序中,输入已经申请且登记过的用户名和密码,向认证服务器发送EAP认证开始报文。
3.根据权利要求1所述的方法,其特征在于,代理者设备通过所述网络端口实现认证服务器对申请者设备的认证,包括:
代理者设备根据认证服务器对所述代理者设备认证通过后发送的认证成功报文,通过所述网络端口实现认证服务器对申请者设备的认证。
4.根据权利要求1或3所述的方法,其特征在于,代理者设备通过所述网络端口实现认证服务器对申请者设备的认证,包括:
代理者设备接收申请者设备发送的EAP认证开始报文;
代理者设备响应于EAP认证开始报文向申请者设备发送Identity类型的EAP请求报文,要求对申请者设备进行身份验证;
其中,申请者设备在接收到Identity类型的EAP请求报文后,向代理者设备发送Identity类型的EAP响应报文,Identity类型的EAP响应报文中携带申请者设备的用户名;
代理者设备将Identity类型的EAP响应报文封装到Radius认证请求报文,发送给认证服务器;
其中,当认证服务器在预先保存的用户名和密码中查到Radius认证请求报文中携带的用户名对应的密码时,用随机生成的一个加密字对所述密码进行加密处理,同时将加密字通过Radius加密字接入报文发送给代理者设备;
代理者设备将Radius加密字接入报文转换携带所述加密字的EAP认证请求报文发送至申请者设备;
其中,所述申请者设备根据接收的EAP加密字请求报文中的加密字对申请者设备的密码进行加密,并将加密字、用户名以及加密密码封装在EAP认证请求报文中发送至代理者设备;
代理者设备将EAP加密字请求报文中的加密字、用户名以及加密密码封装在Radius接入请求报文中发送到认证服务器;
其中,认证服务器在确定所述Radius接入请求报文中携带的加密密码与预先保存的所述用户名对应的加密密码相同时,对申请者设备认证通过。
5.根据权利要求4所述的方法,其特征在于,代理者设备在将EAP加密字请求报文中的加密字、用户名以及加密密码封装在Radius接入请求报文中发送到认证服务器之后,还包括:
代理者设备根据认证服务器对所述申请者设备认证通过后发送的认证成功报文,将自身与申请者设备连接的网络端口改为授权状态。
6.根据权利要求1所述的方法,其特征在于,所述认证服务器根据所述EAP认证响应报文对所述代理者设备进行认证,包括:
所述认证服务器将所述EAP认证响应报文转换为Radius接入请求报文;
所述认证服务器根据所述Radius接入请求报文对所述代理者设备进行认证。
7.根据权利要求1所述的方法,其特征在于,所述认证服务器基于所述代理者设备的身份信息对所述代理者设备进行认证,包括:
所述认证服务器直接根据所述EAP认证响应报文对所述代理者设备进行认证。
8.根据权利要求1所述的方法,其特征在于,所述代理者设备为终端或者交换机。
9.一种代理者设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至8任一权利要求所述的方法。
10.一种计算机可读存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令用于执行如权利要求1至8任一权利要求所述的方法。
本发明实施例涉及网络通信技术领域,尤其涉及一种安全认证方法、装置、认证服务器及存储介质。
EAP(Extensible Authentication Protocol,可扩展认证协议)是一种提供网络接入认证的可扩展框架,可以支持不同的认证方法。EAP一般承载在互联网二层协议之上,用户只有在完成EAP规定的认证之后才能进行合法的网络通信,不能正确认证的用户则不能进行数据通信。许多网络都使用EAP作为接入认证的标准协议,如802.11、WIMAX(Worldwide Interoperability for Microwave Access,微波存取全球互通)等。
图1为现有IEEE802.1x认证体系的组成结构示意图。如图1所示,基于IEEE802.1x协议的认证体系包括以下三个组成部分:申请者设备、代理者设备和认证服务器。1)、申请者设备:申请者设备需要安装一个客户端软件,用户通过启动这个客户端软件发起IEEE802.1x认证。为了支持基于端口的接入控制,申请者需要支持EAPoL协议(EAP OVERLAN基于局域网的扩展认证协议)。2)、代理者设备:代理者设备在申请者设备和认证服务器之间起到代理作用,能够将来自申请者设备的EAPoL认证请求报文转为Radius报文发到认证服务器、将认证服务器返回的Radius报文转为EAPoL报文发送给申请者设备。代理者设备根据认证服务器对申请者设备的认证结果,来决定是否在自身上打开与申请者设备连接的接入物理端口。3)、认证服务器:认证服务器是指能够具备处理入网身份认证和访问权限检查能力的专用服务器,通常为Radius(Remote Authentication Dial In User Service,远程用户拨号认证系统)服务器,认证服务器能够检查申请者和认证系统的身份、类型和网络访问权限,并且通过认证系统向申请者返回身份认证应答结果。认证系统和认证服务器之间通过承载于Radius协议之上的EAP(Extensible Authentication Protocol,扩展认证协议)协议进行通信。具体地,其原理如下:代理者设备向客户端发起一个认证标识符请求(EAP Request/ID),客户端返回自己的认证标识符(EAP Response/ID),代理者设备把客户端的认证标识转发给认证服务器,认证服务器通过本地配置判断此客户端应该进行何种具体的认证方法(如EAP-MD5,EAP-TLS等),然后开始发起具体的认证过程。在认证过程中,代理者设备对EAP的认证消息在客户端和AAA服务器之间进行透传,由于不执行具体的认证计算,代理者设备作为接入点不需要实现具体的认证方法;客户端和认证服务器进行认证相关的安全计算,因此保持了网络的可扩展性。
在实现本发明的过程中,发明人发现现有技术中至少存在如下问题:
在现有的安全认证方法中,认证服务器并不会对代理者设备进行认证,这种情况下,认证服务器的网络接口是不受控制的,任何连接到该网络接口的网络设备均可以访问认证服务器,故存在一定的安全隐患。
本发明提供一种安全认证方法、装置、认证服务器及存储介质,只有当认证服务器对代理者设备认证通过时,认证服务器才会通过代理者设备对申请者设备进行认证,从而可以提高认证服务器的安全性。
为达到上述目的,本发明的技术方案是这样实现的:
第一方面,本发明实施例提供了一种安全认证方法,所述方法包括:
认证服务器接收代理者设备发送的认证报文;
当所述认证服务器确定接收到的所述认证报文为EAP认证开始报文时,所述认证服务器响应于所述EAP认证开始报文对所述代理者设备进行认证;
当所述认证服务器对所述代理者设备认证通过时,所述认证服务器通过所述代理者设备对申请者设备进行认证。
在上述实施例中,所述认证服务器响应于所述EAP认证开始报文对所述代理者设备进行认证,包括:
所述认证服务器响应于所述EAP认证开始报文通知所述代理者设备发送所述代理者设备的身份信息;
所述认证服务器接收所述代理者设备发送的EAP认证响应报文;其中,所述EAP认证响应报文中携带所述代理者设备的身份信息;
所述认证服务器将所述EAP认证响应报文转换为Radius接入请求报文;
所述认证服务器根据所述Radius接入请求报文对所述代理者设备进行认证。
在上述实施例中,所述认证服务器响应于所述EAP认证开始报文对所述代理者设备进行认证,包括:
所述认证服务器响应于所述EAP认证开始报文通知所述代理者设备发送所述代理者设备的身份信息;
所述认证服务器接收所述代理者设备发送的EAP认证响应报文;其中,所述EAP认证响应报文中携带所述代理者设备的身份信息;
所述认证服务器根据所述EAP认证响应报文对所述代理者设备进行认证。
在上述实施例中,所述认证服务器确定接收到的所述认证报文为EAP认证开始报文,包括:
所述认证服务器获取所述认证报文的协议类型和目的媒体访问控制MAC地址;
当所述协议类型为预设协议类型且所述目的MAC地址为预设MAC地址时,所述认证服务器确定接收到的所述认证报文为所述EAP认证开始报文。
第二方面,本发明实施例还提供了一种设置于认证服务器上的安全认证装置,所述装置包括:网卡驱动模块和认证模块;其中,
所述网卡驱动模块,用于接收代理者设备发送的认证报文;
所述认证模块,当确定接收到的所述认证报文为EAP认证开始报文时,响应于所述EAP认证开始报文对所述代理者设备进行认证;当对所述代理者设备认证通过时,通过所述代理者设备对申请者设备进行认证。
在上述实施例中,所述认证模块包括:EAPoL处理子模块和Radius处理子模块;其中,
所述EAPoL处理子模块,用于响应于所述EAP认证开始报文通知所述代理者设备发送所述代理者设备的身份信息;
所述网卡驱动子模块,用于接收所述代理者设备发送的EAP认证响应报文;其中,所述EAP认证响应报文中携带所述代理者设备的身份信息;
所述EAPoL处理子模块,还用于将所述EAP认证响应报文转换为Radius接入请求报文;
所述Radius处理子模块,用于根据所述Radius接入请求报文对所述代理者设备进行认证。
在上述实施例中,所述EAPoL处理子模块,还用于从所述网卡驱动模块接收的报文中过滤出EAPoL报文,如果是EAPoL认证开始报文,则响应于所述EAP认证开始报文通知所述代理者设备发送所述代理者设备的身份信息,并将通知信息通过网卡驱动模块发送;如果是EAPoL认证响应报文,则将所述EAP认证响应报文转换为Radius接入请求报文,并通过本地回环网络接口发送给Radius处理子模块;
所述Radius处理子模块,还用于根据所述Radius接入请求报文对所述代理者设备进行认证,将Radius认证结果报文通过本地回环网络接口发送给所述EAPoL处理子模块;
所述EAPoL处理子模块,还用于将所述Radius认证结果报文转换为EAP认证结果报文,并通过所述网卡驱动模块发送给所述代理者设备。
在上述实施例中,所述认证模块包括:具体用于响应于所述EAP认证开始报文通知所述代理者设备发送所述代理者设备的身份信息;接收所述代理者设备发送的EAP认证响应报文;其中,所述EAP认证响应报文中携带所述代理者设备的身份信息;根据所述EAP认证响应报文对所述代理者设备进行认证。
在上述实施例中,所述认证模块,具体用于获取所述认证报文的协议类型和目的MAC地址;当所述协议类型为预设协议类型且所述目的MAC地址为预设MAC地址时,确定接收到的所述认证报文为所述EAP认证响应报文。
第三方面,本发明实施例还提供了一种认证服务器,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述第一方面任一所述的方法。
第四方面,本发明实施例还提供了一种存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行如上述第一方面任一所述的方法。
本发明实施例提出了一种安全认证方法、装置、认证服务器及存储介质,认证服务器可以先接收代理者设备发送的认证报文;当认证服务器确定接收到的认证报文为EAP认证开始报文时,认证服务器响应于EAP认证开始报文对代理者设备进行认证;当认证服务器对代理者设备认证通过时,认证服务器通过代理者设备对申请者设备进行认证。也就是说,在本发明实施例提出的技术方案中,认证服务器先对代理者设备进行认证,只有认证服务器对代理者设备认证通过时,认证服务器才会打开与代理者设备连接的网络接口,进而可以接收到代理者发送的对申请者设备进行认证的Radius认证请求报文,从而通过代理者设备对申请者设备进行认证。而在现有的安全认证方法中,认证服务器并不会对代理者设备进行认证,任何连接到认证服务器的网络接口的代理者设备均可以访问认证服务器。因此,和现有技术相比,本发明实施例提出的安全认证方法、装置、认证服务器及存储介质,只有当认证服务器对代理者设备认证通过时,认证服务器才会通过代理者设备对申请者设备进行认证,从而可以提高认证服务器的安全性;并且,本发明实施例的技术方案实现简单方便、便于普及,适用范围更广。
图1为现有IEEE802.1x认证体系的组成结构示意图;
图2为本发明实施例中安全认证方法的实现流程示意图;
图3(a)为本发明实施例中终端与认证服务器的连接结构示意图;
图3(b)为本发明实施例中交换机与认证服务器的连接结构示意图;
图4为本发明实施例中认证服务器对代理者设备进行认证的第一实现方法流程图;
图5为本发明实施例中认证服务器的框架示意图;
图6为本发明实施例中认证服务器对代理者设备进行认证的第二实现方法流程图;
图7为本发明实施例中交换网络的拓扑结构示意图;
图8为本发明实施例中安全认证装置的组成结构示意图。
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
本发明实施例提出了一种安全认证方法,可以适配等多种认证机制,至少可以支持EAP-MD5(Message Digest 5)、EAP-TLS(Transport Layer Security,传输层安全协议)、EAP-TTLS(Tunnelled Transport Layer Security,基于隧道的传输层安全协议)这三种应用最广泛的认证方式。下面详细介绍本发明实施例提出的安全认证方法的实现流程。
图2为本发明实施例中安全认证方法的实现流程示意图。如图2所示,安全认证方法可以包括以下步骤:
步骤201、认证服务器接收代理者设备发送的认证报文。
在本发明的具体实施例中,认证服务器可以通过网络端口接收代理者发送的EAP认证报文。代理者设备没有通过认证服务器的认证之前,认证服务器上与代理者设备连接的网络端口处于关闭或禁止状态,代理者设备只能通过该网络端口向认证服务器发送EAP认证开始报文(EAPoL-Start报文),而不能通过该网络端口访问认证服务器,也不能向认证服务器发送Radius认证请求报文。当用户有访问网络需求时,可以在代理设备中打开802.1X客户端程序,输入已经申请、登记过的用户名和密码,向认证服务器发送一个EAP认证开始报文(EAPoL-Start报文),开始802.1X认证接入。
步骤202、当认证服务器确定接收到的认证报文为EAP认证开始报文时,认证服务器响应于EAP认证开始报文对代理者设备进行认证。
当认证服务器对代理者设备认证通过时,将自身上与代理者设备连接的网络端口改为授权状态,认证服务器通过代理者设备对申请者设备进行认证。
认证服务器实现对代理者设备认证时,一种方式是可以先将EAPoL认证响应报文转换为Radius接入请求报文,再对Radius接入请求报文进行认证。另一种方式是,认证服务器直接对EAPoL认证响应报文进行认证。
从认证服务器内部实现的角度,在将EAPoL认证响应报文转换为Radius接入请求报文的情况下,步骤202具体可以包括以下步骤:
EAPoL处理子模块从接收的报文中过滤出EAPoL报文,如果是EAPoL认证开始报文,则响应于所述EAP认证开始报文通知所述代理者设备发送所述代理者设备的身份信息;如果是EAPoL认证响应报文,则将所述EAP认证响应报文转换为Radius接入请求报文,并通过本地回环网络接口发送给Radius处理子模块;
Radius处理子模块根据所述Radius接入请求报文对代理者设备进行认证,将Radius认证结果报文通过本地回环网络接口发送给EAPoL处理子模块;
EAPoL处理子模块将Radius认证结果报文转换为EAPs认证结果报文,并发送给代理者设备。例如,认证通过时,EAPs认证结果报文为认证成功报文(EAP-Success报文),认证没有通过时,EAPs认证结果报文为认证失败报文(EAP-Failure报文)。
从认证服务器的认证方法角度来讲,步骤202可以以下内容实现:
在本发明的具体实施例中,当认证服务器确定接收到的认证报文为EAP认证开始报文(EAPoL-Start报文)时,认证服务器响应于EAP认证开始报文对代理者设备进行认证。具体地,认证服务器可以响应于EAP认证开始报文通知代理者设备发送代理者设备的身份信息,例如,认证服务器可以响应于EAP认证开始报文通知代理者设备发送代理者设备的用户名和密码;然后认证服务器接收代理者设备发送的EAP认证响应报文(EAP-Response/MD5-Challenge报文);其中,EAP认证响应报文中可以携带代理者设备的身份信息,例如,EAP认证响应报文中可以携带代理者设备的用户名和密码;然后认证服务器可以根据EAP认证响应报文中携带的身份信息和预先保存的身份信息对代理者设备进行认证,例如,认证服务器可以根据EAP认证响应报文中携带的用户名和密码以及预先保存的用户名和密码对代理者设备进行认证。具体地,认证服务器可以在预先保存的用户名和密码中查EAP认证响应报文中携带的用户名对应的密码;当认证服务器在预先保存的用户名和密码中查到EAP认证响应报文中携带的用户名对应的密码时,认证服务器判断EAP认证响应报文中携带的密码与预先保存的所述用户名对应的密码是否相同;当EAP认证响应报文中携带的密码与预先保存的所述用户名对应的密码相同时,认证服务器对代理者设备认证通过;反之,当EAP认证响应报文中携带的密码与预先保存的所述用户名对应的密码不相同时,则认证服务器对代理者设备认证不通过。
具体地,在本发明的具体实施例中,认证服务器在接收到代理者设备发送的EAP认证开始报文(EAPoL-Start报文)后,认证服务器响应于EAPoL-Start报文可以向代理者设备发送EAP-Request/Identity报文,通知代理者设备发送代理者设备的用户名;然后代理者设备可以向认证服务器发送EAP-Response/Identity报文,其中,EAP-Response/Identity报文中可以携带代理者设备的用户名。认证服务器获取到代理者设备的用户名后,在预先保存的用户名和密码中查到EAP-Response/Identity报文中携带的用户名对应的密码,当认证服务器在预先保存的用户名和密码中查到EAP-Response/Identity报文中携带的用户名对应的密码时,用随机生成的一个加密字Challenge对它进行加密处理,同时将Challenge通过EAP-Request/MD5-Challenge报文发送给代理者设备;代理者设备接收到EAP-Request/MD5-Challenge报文后,使用Challenge对代理者设备的密码进行加密,代理者设备将Challenge、用户名以及加密密码封装在EAP-Response/MD5-Challenge发送给认证服务器;认证服务器接收到EAP-Response/MD5-Challenge报文后,先在预先保存的用户名和加密密码中查EAP-Response/MD5-Challenge报文中携带的用户名对应的加密密码;当认证服务器在预先保存的用户名和加密密码中查到EAP-Response/MD5-Challenge报文中携带的用户名对应的加密密码时,认证服务器再判断EAP-Response/MD5-Challenge报文中携带的加密密码与预先保存的所述用户名对应的加密密码是否相同;当EAP-Response/MD5-Challenge报文中携带的加密密码与预先保存的所述用户名对应的加密密码相同时,认证服务器对代理者设备认证通过;反之,当EAP-Response/MD5-Challenge报文中携带的加密密码与预先保存的所述用户名对应的加密密码不相同时,则认证服务器对代理者设备认证不通过。
当认证服务器对代理者设备认证通过时,认证服务器可以向代理者设备发送认证成功报文(EAP-Success报文),并将自身上与代理者设备连接的网络端口改为授权状态,允许代理者设备通过该网络端口访问认证服务器。反之,当认证服务器对代理者设备认证不通过时,认证服务器可以向代理者设备发送认证失败报文(EAP-Failure报文),并将该网络端口改为非授权状态,禁止代理者设备通过该网络端口访问认证服务器。
步骤203、当认证服务器对代理者设备认证通过时,认证服务器通过代理者设备对申请者设备进行认证。
当认证服务器对代理者设备认证通过时,将自身上与代理者设备连接的网络端口改为授权状态,代理者可以通过该网络端口访问认证服务器,将申请者设备发送的EAP-Response/Identity报文转换成Radius认证请求报文后通过该网络端口发送给认证服务器。
具体地,申请者设备可以向代理者设备发送EAP认证开始报文(EAPoL-Start报文);代理者设备响应于EAP认证开始报文向申请者设备发送一个Identity(标识)类型的EAP请求报文(EAP-Request/Identity报文),要求对申请者进行身份验证;申请者设备在接收到EAP-Request/Identity报文后,向代理者设备发送EAP-Response/Identity报文;其中,EAP-Response/Identity报文可以携带申请者设备的用户名;代理者设备将EAP-Response/Identity报文封装到Radius Access-Request报文中,发送给认证服务器;认证服务器接收申请者设备通过代理者设备发送的Radius认证请求报文(Radius Access-Request报文);认证服务器在接收到申请者设备通过代理者设备发送的Radius认证请求报文(Radius Access-Request报文)后,认证服务器在Radius认证请求报文(Radius Access-Request报文)中获取申请者设备的用户名,然后在预先保存的用户名和密码中查RadiusAccess-Request报文中携带的用户名对应的密码,当认证服务器在预先保存的用户名和密码中查到Radius Access-Request报文中携带的用户名对应的密码时,用随机生成的一个加密字Challenge对它进行加密处理,同时将Challenge通过Radius Access-Challenge报文发送给代理者设备;代理者设备将Radius Access-Challenge报文转换为EAP-Request/MD5-Challenge报文;其中,所述EAP-Request/MD5-Challenge报文可以携带加密字Challenge;申请者设备接收到EAP-Request/MD5-Challenge报文后,使用Challenge对申请设备的密码进行加密,申请者设备将Challenge、用户名以及加密密码封装在EAP-Response/MD5-Challenge报文中发送给代理者设备;代理者设备将Challenge、用户名以及加密密码封装在Radius Access-Request报文中送到认证服务器;认证服务器接收到Radius Access-Request报文后,先在预先保存的用户名和加密密码中查RadiusAccess-Request报文中携带的用户名对应的加密密码;当认证服务器在预先保存的用户名和加密密码中查到Radius Access-Request报文中携带的用户名对应的加密密码时,认证服务器再判断RADIUS Access-Request报文中携带的加密密码与预先保存的所述用户名对应的加密密码是否相同;当Radius Access-Request报文中携带的加密密码与预先保存的所述用户名对应的加密密码相同时,认证服务器对申请者设备认证通过;反之,当RadiusAccess-Request报文中携带的加密密码与预先保存的所述用户名对应的加密密码不相同时,则认证服务器对申请者设备认证不通过。
当认证服务器对申请者设备认证通过时,认证服务器可以通过代理者设备向申请者设备发送认证成功报文(EAP-Success报文),代理者设备将自身与申请者设备连接的网络端口打开即改为授权状态,允许用户通过端口访问网络。也就是说,当认证服务器对代理者设备认证通过时,认证服务器打开本地上与代理者设备相连的网络端口,则认证服务器才会接收到代理者设备通过网络端口发送的Radius认证请求报文。
当认证服务器对申请者设备认证不通过时,认证服务器可以通过代理者设备向申请者设备发送认证失败报文(EAP-Failure报文),并将与代理者设备相连的网络端口改为非授权状态,禁止用户通过该网络端口访问网络。
在本发明的具体实施例中,代理者设备可以是终端,也可以是交换机。图3(a)为本发明实施例中终端与认证服务器的连接结构示意图;图3(b)为本发明实施例中交换机与认证服务器的连接结构示意图。本发明实施例提出的SERadius继承了现有FreeRadius的基本框架和全部功能,同时兼具现有代理者设备和认证服务器的功能于一身。本发明实施例中认证服务器的网络接口可以开启802.1x认证功能,代理者设备(包括终端或者交换机)想要和认证服务器不受限制地进行通信,必须经过认证服务器的认证授权方可。认证服务器接收来自代理者设备(终端或者交换机)发送来的EAPoL报文,通过在认证服务器中新增的EAPoL处理模块将EAPoL报文转换为认证服务器可以识别的Radius报文;并将认证服务器发送出的标准Radius报文转化为EAPoL报文发送给代理者设备(终端或者交换机),完成认证服务器对代理者设备的认证过程。
图4为本发明实施例中认证服务器对代理者设备进行认证的第一实现方法流程图。如图4所示,认证服务器根据EAP认证响应报文中携带的身份信息以及预先保存的身份信息对代理者设备进行认证的方法可以包括以下步骤:
步骤401、认证服务器将EAP认证响应报文转换为Radius接入请求报文。
认证服务器获取所述认证报文的协议类型和目的MAC地址;当所述协议类型为预设协议类型且所述目的MAC地址为预设MAC地址时,确定接收到的所述认证报文为所述EAP认证开始报文。
在本发明的具体实施例中,认证服务器在接收到代理者设备发送的EAP认证响应报文(EAP-Response/MD5-Challenge报文)后,认证服务器可以将EAP认证响应报文(EAP-Response/MD5-Challenge报文)转换为Radius接入请求报文(Radius Access-Request报文);其中,所述Radius接入请求报文中可以携带代理者设备的身份信息,例如,所述Radius接入请求报文中可以携带代理者设备的用户名和密码。
具体地,在本发明的具体实施例中,认证服务器可以根据预先确定的EAP报文格式在EAP报文中提取出EAP控制数据和EAP用户数据,然后认证服务器可以根据预先确定的Radius报文格式将EAP用户数据封装到Radius报文的数据字段中;认证服务器还可以根据预先确定的Radius报文格式将EAP控制数据封装到Radius报文的控制字段中。
在现有技术中,EAP协议是一种提供网络接入认证的可扩展框架,可以支持不同的认证方法。EAP一般承载在互联网二层协议之上,用户只有在完成EAP规定的认证之后才能进行合法的网络通信,不能正确认证的用户则不能进行数据通信。具体地,EAP帧结构如下述表1所示:
表1
在上述表1中,字段“Code”占用1个字节,表示EAP帧的四种类型:1、答复(Request);2、响应(Response);3、成功(Success);4、失败(Failure);字段“Identifier”占用1个字节,表示EAP帧的编号(ID),用于匹配Request和Response;字段“Length”占用2个字节,表示EAP帧的总长度;字段“Data”表示EAP帧中具体的数据。
EAP在LAN的报文(简称EAPoL)封装格式在IEEE802.1x协议中定义,EAPoL帧结构如下述表2所示:
表2
在上述表2中,字段“PAE Ethernet Type”占用1个字节,表示协议类型,IEEE802.1x分配的协议类型为0x888E;字段“Version”占用1个字节,表示EAPoL帧的发送方所支持的协议版本号;字段“Type”占用1个字节,表示传送的帧类型,如下几种帧类型:a)、EAP-Packet,交换机认证信息帧,值为100;b)、EAP-Start,交换机认证发起帧,值为101;c)、EAP-Logoff,交换机退出请求帧,值为102;字段“Length”占用2个字节,表示Packet Body的长度;字段“Packet Body”,占用0/多个字节,如果字段“Type”为“EAP-Packet”和“EAP-Start”,取相应值;如果字段“Type”为“EAP-Logoff”,该值为空。
步骤402、认证服务器在Radius接入请求报文中提取代理者设备的身份信息。
在本发明的具体实施例中,认证服务器在将EAP认证响应报文转换为Radius接入请求报文后,认证服务器可以在Radius接入请求报文中提取代理者设备的身份信息,例如,认证服务器可以在Radius接入请求报文中提取代理者设备的用户名和密码。具体地,认证服务器可以将EAP-Response/MD5-Challenge报文转换为RADIUS Access-Request报文;然后认证服务器可以在RADIUS Access-Request报文中提取代理者设备的用户名和密码。
步骤403、认证服务器根据在Radius接入请求报文中提取出的身份信息和预先保存的身份信息对代理者设备进行认证。
在本发明的具体实施例中,认证服务器在Radius接入请求报文中提取出代理者设备的身份信息后,认证服务器可以根据在Radius接入请求报文中提取出的身份信息和预先保存的身份信息对代理者设备进行认证。例如,认证服务器在Radius接入请求报文中提取出代理者设备的用户名和密码后,认证服务器可以根据在Radius接入请求报文中提取出的用户名和密码以及预先保存的用户名和密码对代理者设备进行认证。具体地,认证服务器先在预先保存的用户名和加密密码中查Radius接入请求报文中携带的用户名对应的加密密码;当认证服务器在预先保存的用户名和加密密码中查到Radius接入请求报文中携带的用户名对应的加密密码时,认证服务器再判断Radius接入请求报文中携带的加密密码与预先保存的所述用户名对应的加密密码是否相同;当Radius接入请求报文中携带的加密密码与预先保存的所述用户名对应的加密密码相同时,认证服务器对代理者设备认证通过;反之,当Radius接入请求报文中携带报文中携带的加密密码与预先保存的所述用户名对应的加密密码不相同时,则认证服务器对代理者设备认证不通过。
图5为本发明实施例中认证服务器的框架示意图。如图5所示,认证服务器可以包括:网卡驱动模块和认证模块;其中,认证模块可以包括:EAPoL处理子模块和Radius处理子模块。本发明实施例的实现是在Linux系统下完成,该方法在其他系统下也可以正常运行。其中,Radius处理子模块和网卡驱动模块均采用现有技术实现,这里就不做过多描述。Radius处理子模块用来处理Radius报文,并基于Radius报文对代理者设备完成认证过程;网卡驱动模块用来完成对EAPoL报文的接收和发送,只要网卡支持802.1x协议即可;EAPoL处理子模块是本发明实施例为实现对代理者设备认证在认证服务器上新增加的模块。
EAPoL处理子模块,用于从网卡驱动模块接收的报文中过滤出EAPoL报文,如果是EAPoL认证开始报文,则响应于所述EAP认证开始报文通知所述代理者设备发送所述代理者设备的身份信息,并将通知信息通过网卡驱动模块发送;如果是EAPoL认证响应报文,则将所述EAP认证响应报文转换为Radius接入请求报文,并通过本地回环网络接口发送给Radius处理子模块;
所述Radius处理子模块,用于根据所述Radius接入请求报文对所述代理者设备进行认证,将Radius认证结果报文通过本地回环网络接口发送给所述EAPoL处理子模块;
所述EAPoL处理子模块,还用于将所述Radius认证结果报文转换为EAP认证结果报文,并通过所述网卡驱动模块发送给所述代理者设备。
实现时,EAPoL处理子模块可以包括以下三个单元,分别为:EAPoL状态机单元、EAPSocket单元和EAP Radius Socket单元;Radius处理子模块可以包括以下两个单元,分别为:Radius状态机单元和Radius Socket单元;其中,EAP Socket单元可以在网卡驱动模块中获取EAPoL报文,并将获取到的EAPoL报文发送至EAPoL状态机单元;EAPoL状态机单元将EAPoL报文转换为Radius报文,并将Radius报文发送至EAP Radius Socket单元;EAPRadius Socket单元将Radius报文通过本地回环网络接口发送至Radius处理子模块。此外,EAP Radius Socket单元还可以通过本地回环网络接口接收Radius处理子模块发送的Radius报文,并将接收到的Radius报文发送至EAPoL状态机单元;EAPoL状态机单元将Radius报文转换为EAPoL报文,并将EAPoL报文发送至EAP Socket单元;EAP Socket单元将EAPoL报文发送至网卡驱动模块,从而通过网络发送至代理者设备。
具体地,EAP Socket单元可以利用Linux系统下的套接字可以直接监听二层报文,然后根据EAPoL报文的协议类型为0x888E,目的MAC为01:80:C2:00:00:03的特点,将EAPoL报文过滤出来,交给EAPoL状态机单元,由EAPoL状态机单元完成EAPoL报文的转换。当EAPoL状态机单元完成EAPoL报文的转换后,将转换得到的Radius报文发送给EAP Radius Socket单元;EAP Radius Socket单元将Radius报文发送至Radius处理子模块。此外,EAP RadiusSocket单元还可以接收Radius处理子模块发送的Radius报文,并将接收到的Radius报文发送至EAPoL状态机单元;EAPoL状态机单元将Radius报文转换为EAPoL报文,并将EAPoL报文发送至EAP Socket单元;EAP Socket单元将EAPoL报文发送至网卡驱动模块,通过网卡驱动模块发送出去。EAPoL状态机单元是处理EAPoL报文的单元,符合IEEE802.1X标准,支持MD5、TLS和TTLS认证方法。EAPoL状态机单元将接收到的EAPoL报文处理之后封装为Radius报文,将Radius报文发送至EAP Radius Socket单元,然后EAP Radius Socket单元将Radius报文发给本地回环网络接口,该接口的特点就是报文的目的地址是认证服务器自己,然后Radius处理单元接收到这个Radius报文,对与Radius处理子模块来说,这个Radius报文和直接通过外部网络接口获得的Radius报文没有任何区别。本发明实施例利用“EAP Radiussocket<=>本地回环网络接口<=>Radius socket”模仿了现有的代理者设备和认证服务器之间的通信过程。EAP Radius socket单元可以将EAPoL状态机单元产生的Radius报文发送给Radius处理子模块,由于Radius处理子模块在认证服务器中,所以Radius报文的目的地址为127.0.0.1,为了区别与Radius socket的1812端口号,该模块使用端口号2012。
根据上述的描述可知,通过上述的步骤401~403,认证服务器先将EAP认证响应报文转换为Radius接入请求报文;然后在Radius接入请求报文中提取代理者设备的身份信息;根据在Radius接入请求报文中提取出的身份信息和预先保存的身份信息对代理者设备进行认证。只有当认证服务器对代理者设备认证通过时,认证服务器才会通过代理者设备对申请者设备进行认证,从而可以提高认证服务器的安全性。
图6为本发明实施例中认证服务器对代理者设备进行认证的第二实现方法流程图。本实施例中认证服务器可以识别EAP报文,不需要对EAP报文转换成Radius报文。如图6所示,认证服务器根据EAP认证响应报文中携带的身份信息和预先保存的身份信息对代理者设备进行认证的方法可以包括以下步骤:
步骤601、认证服务器在EAP认证响应报文中提取代理者设备的身份信息。
当认证服务器确定接收到的认证报文为EAP认证开始报文(EAPoL-Start报文)时,认证服务器响应于EAP认证开始报文对代理者设备进行认证。具体地,认证服务器可以响应于EAP认证开始报文通知代理者设备发送代理者设备的身份信息,例如,认证服务器可以响应于EAP认证开始报文通知代理者设备发送代理者设备的用户名和密码;然后认证服务器接收代理者设备发送的EAP认证响应报文(EAP-Response/MD5-Challenge报文);其中,EAP认证响应报文中可以携带代理者设备的身份信息,例如,EAP认证响应报文中可以携带代理者设备的用户名和密码。
在本发明的具体实施例中,认证服务器在接收到代理者设备发送的EAP认证响应报文后,认证服务器可以不需要将EAP认证响应报文转换为Radius接入请求报文,而是可以直接在EAP认证响应报文中提取出代理者设备的身份信息,例如,认证服务器可以直接在EAP认证响应报文中提取出代理者设备的用户名和密码。具体地,如上述表2所示,字段“Packet Body”,占用0/多个字节,如果字段“Type”为“EAP-Packet”和“EAP-Start”,取相应值;如果字段“Type”为“EAP-Logoff”,该值为空。也就是说,如果字段“Type”为“EAP-Packet”,字段“Packet Body”可以携带代理者设备的用户名和密码,因此,认证服务器可以根据预先确定的EAP报文格式直接在EAP认证响应报文中提取出代理者设备的用户名和密码。
步骤602、认证服务器根据在EAP认证响应报文中提取出的身份信息和预先保存的身份信息对代理者设备进行认证。
在本发明的具体实施例中,认证服务器在EAP认证响应报文中提取出代理者设备的身份信息后,认证服务器可以根据在EAP认证响应报文中提取出的身份信息和预先保存的身份信息对代理者设备进行认证。例如,认证服务器在EAP认证响应报文中提取出代理者设备的用户名和密码后,认证服务器可以根据在EAP认证响应报文中提取出的用户名和密码以及预先保存的用户名和密码对代理者设备进行认证。具体地,认证服务器可以先在预先保存的用户名和加密密码中查EAP认证响应报文中携带的用户名对应的加密密码;当认证服务器在预先保存的用户名和加密密码中查到EAP认证响应报文中携带的用户名对应的加密密码时,认证服务器再判断EAP认证响应报文中携带的加密密码与预先保存的所述用户名对应的加密密码是否相同;当EAP认证响应报文中携带的加密密码与预先保存的所述用户名对应的加密密码相同时,认证服务器对代理者设备认证通过;反之,当EAP认证响应报文中携带报文中携带的加密密码与预先保存的所述用户名对应的加密密码不相同时,则认证服务器对代理者设备认证不通过。
根据上述的描述可知,通过上述的步骤601~602,认证服务器可以直接在EAP认证响应报文中提取出代理者设备的身份信息;根据在EAP认证响应报文中提取出的身份信息和预先保存的身份信息对代理者设备进行认证。只有当认证服务器对代理者设备认证通过时,认证服务器才会通过代理者设备对申请者设备进行认证,从而可以提高认证服务器的安全性。
图7为本发明实施例中交换网络的拓扑结构示意图。如图7所示,本发明实施例可以使用四个认证服务器,分别为:认证服务器0-0、认证服务器1-0、认证服务器2-0和认证服务器3-0。为了保证网络的安全性,各个认证服务器都开启端口认证功能,与各个认证服务器0-0相连的终端0-0、终端1-0、终端2-0终端3-0、终端3-1均需要分别向各个认证服务器发起认证来开启各个认证服务器的端口,认证失败会导致与其相连的任意一个终端都无法接入网络。只有当认证服务器对终端认证通过,服务器才会开启网络端口,标准的“申请者设备”-“代理者设备”-“认证服务器”架构才能建立起来,此时认证服务器只需要拥有标准的Radius功能即可。
本发明实施例提出的安全认证方法,认证服务器可以先接收代理者设备发送的认证报文;当认证服务器确定接收到的认证报文为EAP认证开始报文时,认证服务器响应于EAP认证开始报文对代理者设备进行认证;当认证服务器对代理者设备认证通过时,认证服务器通过代理者设备对申请者设备进行认证。也就是说,在本发明实施例提出的技术方案中,认证服务器先对代理者设备进行认证,只有认证服务器对代理者设备认证通过时,认证服务器才会打开与代理者设备连接的网络接口,进而可以接收到代理者发送的对申请者设备进行认证的Radius认证请求报文,从而通过代理者设备对申请者设备进行认证。而在现有的安全认证方法中,认证服务器并不会对代理者设备进行认证,任何连接到认证服务器的网络接口的代理者设备均可以访问认证服务器。因此,和现有技术相比,本发明实施例提出的安全认证方法,只有当认证服务器对代理者设备认证通过时,认证服务器才会通过代理者设备对申请者设备进行认证,从而可以提高认证服务器的安全性;并且,本发明实施例的技术方案实现简单方便、便于普及,适用范围更广。
图8为本发明实施例中安全认证装置的组成结构示意图。如图8所示,所述装置包括:网卡驱动模块801和认证模块802;其中,
所述网卡驱动模块801,用于接收代理者设备发送的认证报文;
所述认证模块802,当确定接收到的所述认证报文为EAP认证开始报文时,响应于所述EAP认证开始报文对所述代理者设备进行认证;当对所述代理者设备认证通过时,通过所述代理者设备对申请者设备进行认证。
进一步的,将所述EAP认证响应报文转换为Radius接入请求报文情况下:
所述认证模块802包括:EAPoL处理子模块8021和Radius处理子模块8022;其中,
所述EAPoL处理子模块8021,用于响应于所述EAP认证开始报文通知所述代理者设备发送所述代理者设备的身份信息;所述网卡驱动模块801,用于接收所述代理者设备发送的EAP认证响应报文;其中,所述EAP认证响应报文中携带所述代理者设备的身份信息;
所述EAPoL处理子模块8021,还用于将所述EAP认证响应报文转换为Radius接入请求报文;
所述Radius处理子模块8022,用于根据所述Radius接入请求报文对所述代理者设备进行认证。
基于上述实施例进一步的,所述EAPoL处理子模块,还用于从所述网卡驱动模块接收的报文中过滤出EAPoL报文,如果是EAPoL认证开始报文,则响应于所述EAP认证开始报文通知所述代理者设备发送所述代理者设备的身份信息,并将通知信息通过网卡驱动模块发送;如果是EAPoL认证响应报文,则将所述EAP认证响应报文转换为Radius接入请求报文,并通过本地回环网络接口发送给Radius处理子模块;所述Radius处理子模块,还用于根据所述Radius接入请求报文对所述代理者设备进行认证,将Radius认证结果报文通过本地回环网络接口发送给所述EAPoL处理子模块;所述EAPoL处理子模块,还用于将所述Radius认证结果报文转换为EAP认证结果报文,并通过所述网卡驱动模块发送给所述代理者设备。
EAPoL处理子模块,还用于获取所述认证报文的协议类型和目的MAC地址;当所述协议类型为预设协议类型且所述目的MAC地址为预设MAC地址时,确定接收到的所述认证报文为所述EAP认证开始报文。
进一步的,将所述EAP认证响应报文转换为Radius接入请求报文情况下:所述认证模块802,具体用于响应于所述EAP认证开始报文通知所述代理者设备发送所述代理者设备的身份信息;接收所述代理者设备发送的EAP认证响应报文;其中,所述EAP认证响应报文中携带所述代理者设备的身份信息;根据所述EAP认证响应报文对所述代理者设备进行认证。
进一步的,所述认证模块802,具体用于获取所述认证报文的协议类型和目的MAC地址;当所述协议类型为预设协议类型且所述目的MAC地址为预设MAC地址时,确定接收到的所述认证报文为所述EAP认证开始报文。
本发明实施例提出的安全认证装置,认证服务器可以先接收代理者设备发送的认证报文;当认证服务器确定接收到的认证报文为EAP认证开始报文时,认证服务器响应于EAP认证开始报文对代理者设备进行认证;当认证服务器对代理者设备认证通过时,认证服务器通过代理者设备对申请者设备进行认证。也就是说,在本发明实施例提出的技术方案中,认证服务器先对代理者设备进行认证,只有认证服务器对代理者设备认证通过时,认证服务器才会打开与代理者设备连接的网络接口,进而可以接收到代理者发送的对申请者设备进行认证的Radius认证请求报文,从而通过代理者设备对申请者设备进行认证。而在现有的安全认证方法中,认证服务器并不会对代理者设备进行认证,任何连接到认证服务器的网络接口的代理者设备均可以访问认证服务器。因此,和现有技术相比,本发明实施例提出的安全认证装置,只有当认证服务器对代理者设备认证通过时,认证服务器才会通过代理者设备对申请者设备进行认证,从而可以提高认证服务器的安全性;并且,本发明实施例的技术方案实现简单方便、便于普及,适用范围更广。
本发明实施例还提供一种存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令用于执行上述任一实施例所述的方法。
本发明实施例还提供了一种认证服务器,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述任一实施例所述的方法。
当然,本发明实施例所提供的包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的安全认证方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述搜索装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
本申请是申请号为“201711391342.0”,申请日为“2017年12月21日”,题目为“一种安全认证方法、装置、认证服务器及存储介质”的中国专利申请的分案申请。
本文发布于:2023-04-14 15:22:20,感谢您对本站的认可!
本文链接:https://patent.en369.cn/patent/1/87245.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |