认证方法及装置与流程

文档序号:13674497阅读:163来源:国知局
技术领域本发明涉及通信领域,具体而言,涉及一种认证方法及装置。

背景技术:
IEEE802LAN/WAN委员会为解决无线局域网网络安全问题,提出了802.1X协议。后来,802.1X协议作为局域网端口的一个普通接入控制机制在以太网中被广泛应用,主要解决以太网内认证和安全方面的问题。连接在端口上的用户设备如果能通过认证,就可以访问局域网中的资源;如果不能通过认证,则无法访问局域网中的资源。802.1X协议的体系结构一般包括三个重要的部分:客户端(SupplicantSystem)、认证系统(AuthenticatorSystem)和认证服务器(AuthenticationServerSystem)。客户端系统一般为一个用户终端系统,该终端系统通常要安装一个客户端软件,用户通过启动这个客户端软件发起802.1X协议的认证过程。为支持基于端口的接入控制,客户端系统需支持扩展认证协议(ExtensibleAuthenticationProtocolOverLAN,简称为EAPOL)。认证系统通常为支持802.1X协议的网络设备,如交换机。认证服务器可以存储有关用户的信息,比如用户的优先级、用户的访问控制列表等等。当用户通过认证后,认证服务器会把用户的相关信息传递给认证系统,由认证系统构建动态的访问控制列表,用户的后续流量就将接受上述参数的监管。常用的802.1X认证方式有如下两种:方式一是远程认证,认证过程在认证系统和远端的服务器之间完成,支持远程认证拨号用户服务(RemoteAuthenticationDial-InUserService,简称为RADIUS)、终端访问控制器控制系统协议(TerminalAccessControllerAccessControlSystem,简称为TACACS)等协议,常用的RADIUS认证如图1所示,图1是相关技术中的远程认证的流程图,认证服务器为RADIUS服务器,客户端和认证系统之间使用EAPOL格式封装EAP协议传送认证信息,认证系统与认证服务器之间通过RADIUS协议传送认证信息。认证系统一般默认采用EAP-MD5认证加密算法。该远程认证流程包括以下步骤:步骤S102,当用户有访问网络需求时,打开802.1X客户端程序,输入已经申请、登记过的用户名和密码,向认证系统发送一个EAPoL-Start报文,开始802.1X认证接入。步骤S104,认证系统向客户端发送EAP-Request/Identity报文,要求客户端将用户名送上来。步骤S106,客户端回应一个EAP-Response/Identity给认证系统,其中包括用户名。步骤S108,认证系统将EAP-Response/Identity报文封装到RADIUSAccess-Request报文中,发送给认证服务器。步骤S110,认证服务器收到认证系统转发的用户名信息后,将该信息与数据库中的用户名表对比,找到该用户名对应的密码信息,用随机生成的一个Challenge(加密字)对它进行加密处理,同时也将此Challenge通过RADIUSAccess-Challenge报文发送给认证系统。步骤S112,认证系统将Challenge通过EAP-Request/MD5-Challenge报文转发给客户端程序。步骤S114,客户端收到EAP-Request/MD5-Challenge报文后,将密码和Challenge做MD5算法后的加密密码,封装在EAP-Response/MD5-Challenge回应给认证系统。步骤S116,认证系统将Challenge,加密密码和用户名一起通过RADIUSAccess-Request报文送到认证服务器,由认证服务器进行认证。步骤S118,认证服务器将收到的用户的加密密码和本地计算出的加密密码进行对比,如果相同,则认为该用户为合法用户,认证成功,否则认为该用户为非法用户,认证失败。然后将认证结果封装在RADIUSAccess-Accept报文中发送给认证系统。步骤S120,认证系统如果收到认证成功报文,则向客户端发送EAP-Success报文,并将端口改为授权状态,允许用户通过端口访问网络。否则,向客户端发送EAP-Failure报文,并禁止用户通过端口访问网络。方式二是本地认证,认证过程在认证系统上完成,用户信息(包括用户名、密码和各种属性)配置在认证系统上,图2是相关技术中的本地认证的流程图,如图2所示,客户端和认证系统之间使用EAPOL格式封装EAP协议传送认证信息。该认证流程包括以下步骤:步骤S202,当用户有访问网络需求时,打开802.1X客户端程序,输入已经申请、登记过的用户名和密码,向认证系统发送一个EAPoL-Start报文,开始802.1X认证接入。步骤S204,认证系统向客户端发送EAP-Request/Identity报文,要求客户端将用户名送上来。步骤S206,客户端回应一个EAP-Response/Identity报文给认证系统,其中包括用户名。步骤S208,认证系统收到客户端发送的用户名信息后,认证系统随机生成的一个Challenge(加密字),同时也将此Challenge通过EAP-Request/Challenge报文发送给客户端。步骤S210,客户端收到EAP-Request/Challenge报文后,将密码和Challenge做MD5算法后的加密密码,封装在EAP-Response/MD5-Challenge中回应给认证系统。步骤S212,认证系统将收到的用户的加密密码和本地计算出的加密密码进行对比,如果相同,则认为该用户为合法用户,认证成功,向客户端发送EAP-Success报文,并将端口改为授权状态,允许用户通过端口访问网络。否则认为该用户为非法用户,认证失败,向客户端发送EAP-Failure报文,并禁止用户通过端口访问网络。远程认证,例如RADIUS认证,其优点是用户信息集中在服务器上统一管理,可实现大容量、高可靠性、支持多设备的集中式统一认证;缺点是涉及客户端、认证系统、远程认证服务器三者间的报文交互,网络开销大,认证速度慢。本地认证的优点是只需要涉及客户端和认证系统间交互,速度快,可以降低运营成本;缺点是存储信息量受认证系统硬件条件限制,无法为更多的用户提供认证。可见,802.1X的两种常见认证方式,远程认证和本地认证各有优缺点,用户体验不理想。尤其是随着各种IP技术的发展,网络用户数量快速增长,为不同的用户提供有区别的服务越来越重要,而现有认证方式并不能满足该市场运作需求。针对相关技术中存在的无法为用户提供区别认证服务,用户体验低的问题,目前尚未提出有效的解决方案。

技术实现要素:
本发明提供了一种认证方法及装置,以至少解决相关技术中存在的无法为用户提供区别认证服务,用户体验低的问题。根据本发明的一个方面,提供了一种认证方法,包括:接收用户终端发送的包含用户名的报文;根据接收的所述用户名判断是否为所述用户终端执行本地认证;在判断结果为否的情况下,对所述用户终端执行远程认证处理。进一步地,在根据接收的所述用户名判断是否为所述用户终端执行本地认证之后,还包括:在判断结果为是的情况下,对所述用户终端执行本地认证处理。进一步地,在根据接收的所述用户名判断是否为所述用户终端执行本地认证之前,还包括:在用于对所述用户终端执行本地认证的数据库的用户名表中记录满足预定条件的用户的用户名。进一步地,根据接收的所述用户名判断是否为所述用户终端执行本地认证包括:判断所述用户名与所述数据库的用户名表中的信息是否匹配;在判断结果为否的情况下,确定放弃为所述用户终端执行本地认证。进一步地,对所述用户终端执行远程认证处理包括:判断对所述用户终端进行认证的认证方式是否为组合认证方式,其中,所述组合认证方式为利用本地认证和远程认证对所述用户终端进行认证;在判断结果为是的情况下,对所述用户终端执行远程认证处理。根据本发明的另一方面,提供了一种认证装置,包括:接收模块,用于接收用户终端发送的包含用户名的报文;判断模块,用于根据接收的所述用户名判断是否为所述用户终端执行本地认证;第一处理模块,用于在所述判断模块的判断结果为否的情况下,对所述用户终端执行远程认证处理。进一步地,所述认证装置还包括:第二处理模块,用于在所述判断模块的判断结果为是的情况下,对所述用户终端执行本地认证处理。进一步地,所述认证装置还包括:记录模块,用于在用于对所述用户终端执行本地认证的数据库的用户名表中记录满足预定条件的用户的用户名。进一步地,所述判断模块包括:第一判断单元,用于判断所述用户名与所述数据库的用户名表中的信息是否匹配;确定单元,用于在所述第一判断单元的判断结果为否的情况下,确定放弃为所述用户终端执行本地认证。进一步地,所述第一处理模块包括:第二判断单元,用于判断对所述用户终端进行认证的认证方式是否为组合认证方式,其中,所述组合认证方式为利用本地认证和远程认证对所述用户终端进行认证;处理单元,用于在判断结果为是的情况下,对所述用户终端执行远程认证处理。通过本发明,采用接收用户终端发送的包含用户名的报文;根据接收的所述用户名判断是否为所述用户终端执行本地认证;在判断结果为否的情况下,对所述用户终端执行远程认证处理,解决了相关技术中存在的无法为用户提供区别认证服务,用户体验低的问题,进而达到了实现为不同的用户提供不同的认证服务,提高用户体验的效果。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是相关技术中的远程认证的流程图;图2是相关技术中的本地认证的流程图;图3是根据本发明实施例的认证方法的流程图;图4是根据本发明实施例的认证装置的结构框图;图5是根据本发明实施例的认证装置的一种优选结构框图;图6是根据本发明实施例的认证装置的另一种优选结构框图;图7是根据本发明实施例的认证装置中判断模块44的结构框图;图8是根据本发明实施例的认证装置中第一处理模块46的结构框图;图9是根据本发明实施例的实现为用户提供差异化服务的认证方法的流程示意图;图10是根据本发明实施例的本地密码处理的流程图;图11是根据本发明实施例的远程密码处理的流程图;图12是根据本发明实施例的网络设备的结构示意图;图13是根据本发明实施例的报文处理模块1212的结构图。具体实施方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。在本实施例中提供了一种认证方法,图3是根据本发明实施例的认证方法的流程图,如图3所示,该流程包括如下步骤:步骤S302,接收用户终端发送的包含用户名的报文;步骤S304,根据接收的用户名判断是否为该用户终端执行本地认证;步骤S306,在判断结果为否的情况下,对该用户终端执行远程认证处理。通过上述步骤,采用为预定的用户执行本地认证,而为其它的用户执行远程认证,实现了对用户终端执行区别认证的目的,使得高级用户可以快速的完成认证过程,保障高级用户的利益,从而解决了相关技术中存在的无法为用户提供区别认证服务,用户体验低的问题,进而达到了实现为不同的用户提供不同的认证服务,提高用户体验的效果。在一个可选的实施例中,在根据接收的用户名判断需要为该用户终端执行本地认证之后,对该用户终端执行本地认证处理,其中,该用户为享受区别服务的高级用户,从而实现了为不同等级的用户提供差异化服务的目的。在根据接收的用户名判断是否为用户终端执行本地认证之前,还可以进行配置用户信息的操作,在一个可选的实施例中,在对用户执行认证处理之前,可以在用于对该用户终端执行本地认证的数据库的用户名表中记录满足预定条件的用户的用户名,即可以只将高级用户的用户信息写入本地认证的数据库中,这样在进行用户认证判断时,可以对本地认证数据库中的高级用户执行本地认证,节省认证时间。在判断是否为用户执行本地认证时,可以通过多种方法进行判断,在一个可选的实施例中,根据接收的用户名判断是否为该用户终端执行本地认证包括:判断用户名与上述数据库的用户名表中的信息是否匹配;在判断结果为否的情况下,确定放弃为该用户终端执行本地认证。在确定了不对用户执行本地认证后,还可以首先判断对该用户终端进行认证的认证方式是否为组合认证方式,其中,该组合认证方式为利用本地认证和远程认证对用户终端进行认证的方式;并且在判断结果为是的情况下,对该用户终端执行远程认证处理。从而实现了为普通用户提供认证服务的目的。既节省本地认证数据库的存储资源,又可以实现为所有用户提供认证的目的,同时也为高级用户的成功认证提供了二次保障,极大的提高了用户体验。在本实施例中还提供了一种认证装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图4是根据本发明实施例的认证装置的结构框图,如图4所示,该装置包括接收模块42、判断模块44和第一处理模块46,下面对该装置进行说明。接收模块42,用于接收用户终端发送的包含用户名的报文;判断模块44,连接至上述接收模块42,用于根据接收的用户名判断是否为该用户终端执行本地认证;第一处理模块46,连接至上述判断模块44,用于在判断模块44的判断结果为否的情况下,对该用户终端执行远程认证处理。图5是根据本发明实施例的认证装置的一种优选结构框图,如图5所示,该装置除包括图4所示的所有模块外,还包括第二处理模块52,下面对其进行说明。第二处理模块52,连接至上述判断模块44,用于在判断模块44的判断结果为是的情况下,对上述用户终端执行本地认证处理。图6是根据本发明实施例的认证装置的另一种优选结构框图,如图6所示,该装置除包括图4所示的所有模块外,还包括记录模块62,下面对其进行说明。记录模块62,连接至上述判断模块44,用于在用于对上述用户终端执行本地认证的数据库的用户名表中记录满足预定条件的用户的用户名。图7是根据本发明实施例的认证装置中判断模块44的结构框图,如图7所示,该判断模块44包括第一判断单元72和确定单元74,下面对该判断模块44进行说明。第一判断单元72,用于判断用户名与数据库的用户名表中的信息是否匹配;确定单元74,连接至上述第一判断单元72,用于在第一判断单元72的判断结果为否的情况下,确定放弃为上述用户终端执行本地认证。图8是根据本发明实施例的认证装置中第一处理模块46的结构框图,如图8所示,该判第一处理模块46包括第二判断单元82和处理单元84,下面对该第一处理模块46进行说明。第二判断单元82,用于判断对上述用户终端进行认证的认证方式是否为组合认证方式,其中,该组合认证方式为利用本地认证和远程认证对上述用户终端进行认证;处理单元84,连接至上述第二判断单元82,用于在第二判断单元82的判断结果为是的情况下,对上述用户终端执行远程认证处理。为了解决相关技术中存在的无法为用户提供有区别的服务,从而无法满足市场运作的需求的问题,在本发明实施例中还提供了一种为用户提供差异化服务的认证方法和装置,通过本地认证和远程认证(该远程认证以RADIUS认证为例进行说明)组合的认证方式,可为网络用户提供差异化的接入认证服务。组合认证方式,即先进行类似本地认证的流程,如果用户不在认证系统的数据库的用户名表中,再转入类似RADIUS认证的流程,该方式综合了本地认证和RADIUS认证的优势,互补了二者的缺陷。特别的,采用组合认证方式,并在认证系统上配置高端VIP用户(即高级用户)的信息,在RADIUS认证服务器上配置所有合法用户的信息,即高端VIP用户和普通合法用户的信息,即可为网络用户提供差异化的接入认证服务。对于高端VIP用户,优先提供快速高效的本地认证服务,如果该用户因某些异常原因,例如数据库表项丢失等,未在认证系统的本地数据库用户名表中,则为用户提供RADIUS认证,从而确保异常情况下该用户仍可认证成功;对于普通用户,提供RADIUS认证服务。该方法在存储容量较小的认证系统上仅配置高端VIP用户的信息,有效节省认证系统存储资源,在大容量的RADIUS认证服务器上配置所有合法用户的信息,充分利用了RADIUS认证服务器大存储容量的优势,既为高端VIP用户的成功认证提供了二次保障,又为普通用户提供了认证服务,还整体实现了为不同的用户提供有区别的服务,用户体验较好。根据本发明实施例的为用户提供差异化服务的认证方法,可以包括以下步骤:在认证系统上配置802.1X认证方式为组合认证方式,并记录下该配置的方式类型;在认证系统上配置高端VIP用户的信息,并在数据库的用户名表中记录下该配置的用户信息;在认证服务器上配置所有合法用户的信息;认证系统收到来自客户端的EAPoL-Start报文;认证系统向客户端发送EAP-Request/Identity报文,要求客户端将用户名送上来;认证系统收到来自客户端的EAP-Response/Identity报文,报文中包含用户名;认证系统读取802.1X认证方式配置,如果为组合认证方式,则在数据库中的用户名表中查找收到的用户名,如果找到,则对该用户执行本地密码处理,否则如果没有找到,则对该用户执行远程密码处理;如果为本地认证,则对该用户执行本地密码处理;如果为RADIUS认证,则对该用户执行远程密码处理;其中,本地密码处理,包括以下步骤:认证系统为该用户随机生成的一个Challenge,并将此Challenge通过EAP-Request/Challenge报文发送给客户端;认证系统收到来自客户端的EAP-Response/MD5-Challenge报文,报文中包含客户端将收到的Challenge和客户端使用的密码做MD5算法后的加密密码;认证系统在数据库中的用户名表中查找该用户的用户名,从匹配到的条目中提取配置的该用户的密码,以及上述的生成的Challenge,用密码和Challenge做MD5算法,产生加密密码,并与从客户端收到的加密密码比较,如果相同,则认为该用户为合法用户,认证成功,向客户端发送EAP-Success报文,并将端口改为授权状态,允许用户通过端口访问网络。否则认为该用户为非法用户,认证失败,向客户端发送EAP-Failure报文,并禁止用户通过端口访问网络。远程密码处理,包括以下步骤:认证系统将收到的来自客户端的EAP-Response/Identity报文封装到RADIUSAccess-Request报文中,发送给认证服务器;认证系统收到来自认证服务器的RADIUSAccess-Challenge报文,报文中包含认证服务器随机生成的Challenge;认证系统将收到的来自认证服务器的RADIUSAccess-Challenge报文封装在EAP-Request/MD5-Challenge报文中,发送给客户端;认证系统收到来自客户端的EAP-Response/MD5-Challenge报文,报文中包含客户端将收到的Challenge和客户端使用的密码做MD5算法后的加密密码;认证系统将从客户端收到的Challenge,加密密码和用户名一起通过RADIUSAccess-Request报文送到认证服务器,由认证服务器进行认证;认证系统收到来自认证服务器的RADIUSAccess-Accept报文。如果为认证成功报文,则向客户发送EAP-Success报文,并将端口改为授权状态,允许用户通过端口访问网络。否则,向客户端发送EAP-Failure报文,并禁止用户通过端口访问网络。在本发明实施例中,还提供了一种为用户提供差异化服务的认证装置,包括:802.1X认证方式配置模块,用于在认证系统上设置802.1X的认证方式,并记录下该配置的方式类型;本地用户配置模块(同上述的记录模块62),用于在认证系统上设置本地认证或组合认证方式的合法用户的用户信息,并在数据库的用户名表中记录下该配置的用户信息;报文收发模块,用于认证系统的物理端口上接收或者发送来自客户端的EAPOL报文或认证服务器的RADIUS报文;认证方式控制模块,用于认证系统根据802.1X认证方式配置模块配置的802.1X认证方式类型,控制模块报文处理模块进行相应的协议交互流程;组合认证控制模块(同上述的判断模块44),用于认证系统判断收到的用户名是否在本地用户配置模块数据库的用户名表中,并根据判断结果控制报文处理模块进行相应的协议交互流程;报文处理模块,用于认证系统对报文收发模块接收到的EAPOL报文和RADIUS报文进行处理。该模块又包括三个子模块,即,用户名处理子模块,用于认证系统对来自客户端的EAPoL-Start报文和EAP-Response/Identity报文进行处理;本地密码处理子模块(同上述的第二处理模块52),用于认证系统在本地对用户的密码进行处理,完成认证;远程密码处理子模块(同上述的第一处理模块46),用于认证系统作为中转,使得在远程的RADIUS服务器上对用户的密码进行处理,完成认证。本发明实施例通过在认证系统上配置高端VIP用户的信息,在RADIUS认证服务器上配置所有合法用户的信息,用户发起认证时,认证系统先进行用户名处理的流程,如果用户在认证系统的数据库的用户名表中,则转入本地密码处理的流程,否则如果用户不在认证系统的数据库的用户名表中,则转入远程密码处理的流程。该方法有效节省了认证系统存储资源,并充分利用了RADIUS认证服务器大存储容量的优势,而且既为高端VIP用户的成功认证提供了双重保障,又为普通用户提供了认证服务,整体实现了为不同的用户提供有区别的服务,用户体验较好。图9是根据本发明实施例的实现为用户提供差异化服务的认证方法的流程示意图,如图9所示,该方法包括以下步骤:步骤S902,在认证系统上配置802.1X认证方式为组合认证方式,并记录下该配置的方式类型。其中,可以设置的802.1X认证方式包括本地认证、RADIUS认证以及本发明实施例中的组合认证方式。步骤S904,在认证系统上配置高端VIP用户的信息,并在数据库的用户名表中记录下该配置的用户信息。其中,可以设置合法用户的用户名、密码、用户上线的端口、用户上线的虚拟局域网(VirtualLocalAreaNetwork,简称为VLAN)、用户使用的媒体接入控制(MediaAccessControl,简称为MAC)地址等用户信息。步骤S906,在认证服务器上配置所有合法用户的信息。其中,所有合法用户的信息,可以包括高端VIP用户和普通合法用户的信息。步骤S908,认证系统收到来自客户端的EAPoL-Start报文。步骤S910,认证系统向客户端发送EAP-Request/Identity报文,要求客户端将用户名送上来。步骤S912,认证系统收到来自客户端的EAP-Response/Identity报文,报文中包含用户名。步骤S914,认证系统读取802.1X认证方式配置。步骤S916,如果802.1X认证方式配置为组合认证方式,则认证系统执行步骤S918;否则如果为本地认证,则认证系统执行步骤S922;否则如果为RADIUS认证,则认证系统执行步骤S924。步骤S918,认证系统在数据库中的用户名表中查找收到的用户名。步骤S920,认证系统如果找到,则执行步骤S922,否则执行步骤S924。步骤S922,认证系统对该用户执行本地密码处理。步骤S924,认证系统对该用户执行远程密码处理。图10是根据本发明实施例的本地密码处理的流程图,图10是对图9中的步骤S922中本地密码处理的详细方法流程图,该流程包括:步骤S1002,认证系统为该用户随机生成的一个Challenge,并将此Challenge通过EAP-Request/Challenge报文发送给客户端。步骤S1004,认证系统收到来自客户端的EAP-Response/MD5-Challenge报文,报文中包含客户端将收到的Challenge和客户端使用的密码做MD5算法后的加密密码。步骤S1006,认证系统在数据库中的用户名表中查找该用户的用户名,从匹配到的条目中提取配置的该用户的密码,以及步骤S1002生成的Challenge,用密码和Challenge做MD5算法,产生加密密码。步骤S1008,认证系统用计算产生的加密密码,与从客户端收到的加密密码比较,判断比较结果。步骤S1010,如果比较为相同,则认证系统认为该用户为合法用户,认证成功,向客户端发送EAP-Success报文,并将端口改为授权状态,允许用户通过端口访问网络。步骤S1012,如果比较为不相同,则认证系统认为该用户为非法用户,认证失败,向客户端发送EAP-Failure报文,并禁止用户通过端口访问网络。图11是根据本发明实施例的远程密码处理的流程图,图11是对图9中的步骤S924中远程密码处理的详细方法流程图,该流程包括:步骤S1102,认证系统将收到的来自客户端的EAP-Response/Identity报文封装到RADIUSAccess-Request报文中,发送给认证服务器。步骤S1104,认证系统收到来自认证服务器的RADIUSAccess-Challenge报文,报文中包含认证服务器随机生成的Challenge。步骤S1106,认证系统将收到的来自认证服务器的RADIUSAccess-Challenge报文封装在EAP-Request/MD5-Challenge报文中,发送给客户端。步骤S1108,认证系统收到来自客户端的EAP-Response/MD5-Challenge报文,报文中包含客户端将收到的Challenge和客户端使用的密码做MD5算法后的加密密码。步骤S1110,认证系统将从客户端收到的Challenge,加密密码和用户名一起通过RADIUSAccess-Request报文送到认证服务器,由认证服务器进行认证。步骤S1112,认证系统收到来自认证服务器的RADIUSAccess-Accept报文。步骤S1114,认证系统判断RADIUSAccess-Accept报文类型。步骤S1116,如果RADIUSAccess-Accept报文为认证成功报文,则认证系统向客户端发送EAP-Success报文,并将端口改为授权状态,允许用户通过端口访问网络。步骤S1118,如果RADIUSAccess-Accept报文为认证失败报文,则认证系统向客户端发送EAP-Failure报文,并禁止用户通过端口访问网络。为实现上述方法,本发明实施例中还提供一种网络设备,图12是根据本发明实施例的网络设备的结构示意图,如图12所示,该设备包括如下模块:802.1X认证方式配置模块1202,用于在认证系统上设置802.1X的认证方式,并记录下该配置的方式类型。其中,可以设置的802.1X认证方式包括本地认证、RADIUS认证以及本发明实施例中的组合认证方式。本地用户配置模块1204,用于在认证系统上设置本地认证或组合认证方式的合法用户的用户信息,并在数据库的用户名表中记录下该配置的用户信息。其中,可以设置合法用户的用户名、密码、用户上线的端口、用户上线的VLAN、用户使用的MAC地址等用户信息。报文收发模块1206,用于认证系统的物理端口上接收或者发送来自客户端的EAPOL报文或认证服务器的RADIUS报文。认证方式控制模块1208,用于认证系统根据802.1X认证方式配置模块1202配置的802.1X认证方式类型,控制报文处理模块1212进行相应的协议交互流程。其中,认证系统收到来自客户端的包含有用户的用户名的EAP-Response/Identity报文后,认证方式控制模块1208从802.1X认证方式配置模块1202中读取出记录下的802.1X认证方式类型,如果认证方式为本地认证,则触发报文处理模块1212的子模块本地密码处理子模块1304工作;如果认证方式为RADIUS认证,则触发报文处理模块1212的子模块远程密码处理子模块1306工作;如果认证方式为组合认证方式,则触发组合认证控制模块1210工作。组合认证控制模块1210,用于认证系统判断收到的用户名是否在本地用户配置模块1204的数据库的用户名表中,并根据判断结果控制报文处理模块1212进行相应的协议交互流程。其中,认证系统从收到的来自客户端的EAP-Response/Identity报文中,提取出用户的用户名,并以此为关键字,在本地用户配置模块1204的数据库的用户名表中,查找该用户名,如果用户名存在,则触发报文处理模块1212的子模块本地密码处理子模块1304工作;否则如果用户名不存在,则触发报文处理模块1212的子模块远程密码处理子模块1306工作。报文处理模块1212,用于认证系统对报文收发模块1206接收到的EAPOL报文和RADIUS报文进行处理。其中,该报文处理模块1212包含3个子模块,如图13所示,图13是根据本发明实施例的报文处理模块1212的结构图,包括:用户名处理子模块1302,用于认证系统对来自客户端的EAPoL-Start报文和EAP-Response/Identity报文进行处理。如果认证系统收到来自客户端的EAPoL-Start报文,则向客户端发送EAP-Request/Identity报文,要求客户端将用户名送上来。如果认证系统收到来自客户端的EAP-Response/Identity报文,报文中包含用户名,则触发认证方式控制模块1208工作。本地密码处理子模块1304,用于认证系统在本地对用户的密码进行处理,完成认证。如果认证方式控制模块1208、或组合认证控制模块1210触发报文处理模块1212进行本地密码处理子模块1304处理,则认证系统为当前用户随机生成的一个Challenge,并将此Challenge通过EAP-Request/Challenge报文发送给客户端。如果认证系统收到来自客户端的EAP-Response/MD5-Challenge报文,报文中包含客户端将收到的Challenge和客户端使用的密码做MD5算法后的加密密码,则认证系统在本地数据库中的用户名表中查找该用户的用户名,从匹配到的条目中提取配置的该用户的密码,以及认证系统生成的Challenge,用密码和Challenge做MD5算法,产生加密密码,并与从客户端收到的加密密码比较。如果相同,则认为该用户为合法用户,认证成功,向客户端发送EAP-Success报文,并将端口改为授权状态,允许用户通过端口访问网络。否则认为该用户为非法用户,认证失败,向客户端发送EAP-Failure报文,并禁止用户通过端口访问网络。远程密码处理子模块1306,用于认证系统作为中转,使得在远程的RADIUS服务器上对用户的密码进行处理,完成认证。其中,如果认证方式控制模块1208、或组合认证控制模块1210触发报文处理模块1212进行远程密码处理子模块1306处理,则认证系统将收到的来自客户端的EAP-Response/Identity报文封装到RADIUSAccess-Request报文中,发送给远程的认证服务器。如果认证系统收到来自认证服务器的RADIUSAccess-Challenge报文,报文中包含认证服务器随机生成的Challenge,则认证系统将收到的来自认证服务器的RADIUSAccess-Challenge报文封装在EAP-Request/MD5-Challenge报文中,发送给客户端。如果认证系统收到来自客户端的EAP-Response/MD5-Challenge报文,报文中包含客户端将收到的Challenge和客户端使用的密码做MD5算法后的加密密码,则认证系统将从客户端收到的Challenge,加密密码和用户名一起通过RADIUSAccess-Request报文送到认证服务器,由认证服务器进行认证。如果认证系统收到来自认证服务器的RADIUSAccess-Accept报文,且如果为认证成功报文,则向客户端发送EAP-Success报文,并将端口改为授权状态,允许用户通过端口访问网络。否则,向客户端发送EAP-Failure报文,并禁止用户通过端口访问网络。在本发明的上述各实施例中,通过本地认证和RADIUS认证组合的认证方式,可为网络用户提供差异化的接入认证服务。即在认证系统上配置高端VIP用户的信息,在RADIUS认证服务器上配置所有合法用户的信息,用户发起认证时,认证系统先进行用户名处理的流程,如果用户在认证系统的数据库的用户名表中,则转入本地密码处理的流程,否则,则转入远程密码处理的流程。该方法有效节省了认证系统存储资源,并充分利用了RADIUS认证服务器大存储容量的优势,而且既为高端VIP用户的成功认证提供了双重保障,又为普通用户提供了认证服务,整体实现了为不同的用户提供有区别的服务,从而极大的提高用户体验。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1