一种基于cpk标识认证的802.1x网络接入方法

xiaoxiao2020-10-23  20

一种基于cpk标识认证的802.1x网络接入方法
【技术领域】
[0001]本发明涉及网络通信技术领域,尤其涉及一种基于CPK标识认证的802.1X网络接入方法。
【背景技术】
[0002]IEEE 802.1x (Port-Based Network Access Control)是一个基于端口的网络访问控制协议,所谓的基于端口的网络接入控制是指在局域网接入设备的端口这一级对所接入的用户进行认证,其中所接入的用户通过认证后,即可访问局域网中的资源,否则无法访问局域网中的资源。
[0003]由于在现有市场上推出的基于802.1X的认证方式都是基于端口的认证方式,在该认证方式下,接入设备的一个端口可接入多个用户,如果该端口被认证通过,则该端口下的所有用户无需再进行认证即可访问局域网中的资源;并且对用户的认证一般都采用用户名和用户口令单一的识别认证方式(用户名和用户口令的安全性较低,几个人都可公用一组用户名和用户口令或可能被他人冒充),不能做到分别对各个用户进行身份识别和认证控制,这样无疑使得该端口下不合法的用户也可访问局域网中的资源;且网络中出现违法行为,无法定位和追溯网络具体的用户。

【发明内容】

[0004]针对现有技术中存在的上述问题,本发明提供一种基于CPK标识认证的802.1X网络接入方法,采用支持CPK标识认证技术的客户端和认证服务器,为每一个网络接入用户提供一个用户身份识别的CPK Key设备,可实现对网络中各个用户的身份识别和认证控制,可拒绝不合法用户、定位与追溯网络用户的网络行为。
[0005]为达到上述目的,本发明的实施例采用的如下技术方案:
[0006]一种基于CPK标识认证的802.1X网络接入方法,其特征在于包括以下步骤:
[0007]I)当用户需要接入网络时打开客户端,并且插入用户的CPK key设备,输入用户的CPKpin码、已经申请、登记过的用户名和用户口令,发起登录认证请求;客户端将向接入设备发出认证请求帧,开始启动一次认证过程;
[0008]2)接入设备收到认证请求帧后,发出一个请求帧要求客户端发送输入的用户名;
[0009]3)客户端响应接入设备的请求,将用户名信息发送给接入设备。接入设备将客户端送上来的响应帧经过封包处理后送给认证服务器进行处理;
[0010]4)认证服务器收到接入设备转发的用户名信息后,将该信息与数据库中的用户名列表对比,找到该用户名对应的用户口令信息,用随机生成的一个随机挑战码对用户口令进行加密处理,同时将该随机挑战码发送给接入设备,由接入设备传给客户端;
[0011]5)客户端收到由接入设备传来的随机挑战码后,用该随机挑战码对用户输入的用户口令进行加密处理,并且使用用户的CPK key设备对用户的用户名进行签名生成CPK签名信息,并用服务器的CPK标识公钥对此CPK签名信息进行加密,将加密后的用户口令信息和加密后的CPK签名信息通过接入设备传给认证服务器;
[0012]6)认证服务器解析得到加密后的用户口令信息和加密后的CPK签名信息,先用服务器的CPK标识私钥解密得到CPK签名信息,再验证CPK签名信息是否合法。若签名验证通过,认证服务器将收到的加密的用户口令信息和本地加密的用户口令信息进行对比,若相同,则认为该用户为合法用户,返回认证通过的消息。
[0013]所述认证服务器为支持CPK标识认证技术的、能进行CPK标识白名单管理的认证服务器,认证服务器中保存有用于认证鉴权的多组信息,每一条所述的多组信息包括用户私有标识、基于用户私有标识产生的用户的CPK标识公私钥对中的CPK标识公钥、基于服务器私有标识产生的服务器的CPK标识公私钥对中的CPK标识私钥、用户名、用户口令及附加鉴权信息;用户私有标识包括但不限于:身份证号码、电话号码、姓名和用户名等。
[0014]所述用户的CPK key设备在使用前需要用户设置CPK Key的pin码来激活CPK Key设备(CPK Key的pin码是不同于用户的用户口令),在每次认证中都需要用户输入已设置的CPK Key的pin码做本地验证;用户的CPK Key的Pin码在一次认证中错误输入到达一定次数,用户的CPK Key设备会锁死,用户则需要去CPK Key设备的发证中心去解锁。
[0015]所述客户端为支持CPK标识认证技术的802.1X协议的客户端,在用户发起登录认证请求后,客户端先检测是否有CPK key设备插入,若检测到有CPK key设备插入,再对用户输入的CPK pin码做本地验证;CPK pin码验证通过后,再发送认证请求报文到接入设备,否则若没有检测到用户的CPK Key设备或有CPK Key设备但输入的用户的CPK pin码错误,其显示相应的错误信息给用户。
[0016]在认证通过后,客户端会定时检测被认证设备的CPK key是否在线,如果用户的CPK key设备被拔出后,客户端可通知认证服务器用户下线。
[0017]在所述的认证服务器中,分配给每个用户的CPK key设备,用户名都具有唯一性;用户的CPK key设备、用户名和用户口令都是一一对应绑定的。
[0018]所述的认证服务器解析得到加密后的用户口令信息和加密后的CPK签名信息,先用服务器的CPK标识私钥解密得到CPK签名信息,再用认证服务器白名单中的用户的CPK标识公钥验证CPK签名信息的合法性,若签名验证失败,则返回签名认证失败信息;若签名验证通过,再将认证服务器收到的加密的用户口令信息和本地加密的用户口令信息进行对比,若相同,则认为该用户为合法用户,返回认证通过的消息,若不同,则返回认证失败信息;其中CPK签名信息包括但不限于:用用户的CPK key设备对用户的用户名(或用户口令、随机挑战码等)进行签名生成CPK签名信息等。
[0019]所述认证服务器与客户端都采用预设的加密算法,此种加密算法是不可逆的。加密算法包括但不限于:MD5算法等。
[0020]所述此种方法可适用于有线网络和无线网络的用户接入认证。
【附图说明】
[0021]图1为本发明基于CPK标识认证的802.1X网络接入方法的流程图
【具体实施方式】
[0022]为使本发明的目的、技术方案和优点更加清楚明白,下面将结合实施例中的附图,对本发明进一步详细说明。
[0023]参照图1所示,本发明提出的一种基于CPK标识认证的802.1X协议的用户网络接入认证方法,至少包括以下步骤:
[0024]步骤101:当用户需要接入网络时打开客户端程序,并且插入用户的CPK key设备,输入的用户的CPK pin码、已经申请、登记过的用户名和用户口令,发起登录认证请求;客户端先对用户输入的CPK pin码做本地验证,用户的CPK pin码验证通过后,客户端将向接入设备发出认证请求帧(EAPOL-Start),开始启动一次认证过程。客户端若没有检测到用户的CPK Key设备或有CPK Key设备但输入的用户的CPK pin码错误,其显示相应的错误信息给用户;
[0025]步骤102:接入设备收到认证请求帧后,发出一个请求帧(EAP-Request/Identity)要求客户端发送输入的用户名;
[0026]步骤103:客户端响应接入设备发出的请求,将用户名信息通过响应帧(EAP-Response/Identity)发送给接入设备;
[0027]步骤104:接入设备将客户端发送的响应帧中的EAP报文封装在RADIUS报文(RADIUS Access-Request)中发送给认证服务器进行处理;
[0028]步骤105:认证服务器收到接入设备转发的用户名信息后,将该信息与数据库中的用户名列表中对比,验证用户名的合法性,若合法,找到该用户名对应的用户口令信息,用随机生成的一个随机挑战码对用户口令进行加密处理,同时将该随机挑战码(RADIUSAccess-Challenge)发送给接入设备;
[0029]步骤106:接入设备将认证服务器发送的随机挑战码(EAP-Request/ChalIenge)转发给客户端;
[0030]步骤107:客户端收到由接入设备传来的随机挑战码后,用该随机挑战码对用户输入的用户口令进行加密处理,并且使用用户的CPK key设备对用户的用户名进行签名,生成CPK签名信息,再用服务器的CPK标识公钥对此CPK签名信息进行加密处理,并将加密后的用户口令信息和加密后的CPK签名信息(EAP-Response/Challenge&CPK signature)发送给接入设备;
[0031]步骤108:接入设备将客户端传来的数据报文封装在RADIUS报文中(RADIUSAccess-Request)发送给认证服务器;
[0032]步骤109:认证服务器解析出接入设备传来的数据报文得到加密后的用户口令信息和加密后的CPK签名信息,先用服务器的CPK标识私钥解密得到CPK签名信息,再用认证服务器白名单中的用户的CPK标识公钥验证CPK签名信息的合法性,若签名验证失败,则返回签名认证失败信息;若签名验证通过,再将认证服务器收到的加密的用户口令信息和本地加密的用户口令信息进行对比,若相同,则认为该用户为合法用户,并向接入设备发送认证通过信息(RADIUS Access-Accept),若不同,贝Ij返回认证失败信息。
[0033]步骤110:若接入设备收到认证通过信息向客户端发送认证成功信息(EAP-Success),并将端口改为授权状态,允许用户通过端口访问网络。若接入设备收到认证失败信息,则返回失败信息给客户端。[0034]在上述的步骤107中,其中CPK签名信息是用用户的CPK key设备对用户的用户名进行签名生成CPK签名信息,但CPK的签名信息包括但不限于此,也可用用户的CPK key设备对用户口令、随机挑战码等进行签名生成签名信息。
[0035]在本发明实施例中的认证服务器为支持CPK标识认证技术的、能进行CPK标识白名单管理的RADIUS认证服务器,认证服务器中保存有用于用户认证鉴权的多组信息,每一条所述的多组信息包括用户私有标识、基于用户私有标识产生的用户的CPK标识公私钥对中的CPK标识公钥、基于服务器私有标识产生的服务器的CPK标识公私钥对中的CPK标识私钥、用户名、用户口令及附加鉴权信息;用户私有标识包括但不限于:身份证号码、电话号码、姓名和用户名等。认证服务器为需要接入网络的每个用户分发登记过的用户名、用户口令及用户的CPK Key设备等,其中用户的CPK Key设备就相当于接入网络的身份证。认证服务器中用户的CPK key设备、用户名和用户口令等都是一一对应绑定的,其中用户的CPKkey设备和用户名也都是唯一的。用户的CPK key设备在使用前需要用户自己设置CPK Key的pin码来激活CPK Key设备(CPK Key的pin码是不同于用户的用户口令),在每次认证中都需要用户输入已设置的CPK Key的pin码做本地验证;用户的CPK Key的Pin码在一次认证中错误输入到达一定次数,用户的CPK Key设备会锁死,用户则需要去CPK Key设备的发证中心去解锁。
[0036]本发明中的接入设备可为常见的交换机设备,该交换机设备支持802.1X认证协议。交换机设备主要用于客户端和认证服务器之间数据信息交互。
[0037]本发明中客户端为支持CPK标识认证技术的802.1X协议的客户端。客户端先检测是否有CPK key设备插入,如果检测到有CPK key设备插入,接收用户输入的CPK pin码、用户输入的用户名、用户口令,先对用户的CPK pin码做本地验证,验证通过后才发送认证请求报文到接入设备。在用户通过认证后,客户端定时检测被认证设备用户的CPK key是否还在线,客户端若检测到用户的CPK Key设备被拔出后,及时发送下线报文到接入设备,报告被认证设备下线。
[0038]需要说明的是,本发明实施例中,其客户端可以主动发送下线报文至接入设备,要求下线,此时接入设备只需要把与该客户端连接的端口由授权状态改为未授权状态,并向客户端发送下线应答报文即可。
[0039]在本发明中认证服务器和客户端都采用预设的加密算法,用随机生成的随机挑战码对用户的用户口令信息进行加密,此种加密算法是不可逆的。预设的加密算法可为第五版?目息摘要算法(MD5算法)等。
[0040]本发明提出的此种方法可适用于有线局域网网络和无线局域网网络的用户接入认证,可方便的用于企业内部的网络管理,可拒绝不合法用户访问网络资源、可定位与追溯网络用户的网络行为。
[0041]由于本发明技术的应用和实施十分广泛,只要是需要对网络接入进行用户认证网络系统都能够采用此方法实现用户身份识别和认证控制。以上所述,仅为本发明的优选实施例,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。
【主权项】
1.一种基于CPK标识认证的802.1X网络接入方法,其特征在于包括以下步骤: 1)当用户需要接入网络时打开客户端,并且插入用户的CPKkey设备,输入用户的CPKpin码、已经申请、登记过的用户名和用户口令,发起登录认证请求;客户端将向接入设备发出认证请求帧,开始启动一次认证过程; 2)接入设备收到认证请求帧后,发出一个请求帧要求客户端发送输入的用户名; 3)客户端响应接入设备的请求,将用户名信息发送给接入设备。接入设备将客户端送上来的响应帧经过封包处理后送给认证服务器进行处理; 4)认证服务器收到接入设备转发的用户名信息后,将该信息与数据库中的用户名列表对比,找到该用户名对应的用户口令信息,用随机生成的一个随机挑战码对用户口令进行加密处理,同时将该随机挑战码发送给接入设备,由接入设备传给客户端; 5)客户端收到由接入设备传来的随机挑战码后,用该随机挑战码对用户输入的用户口令进行加密处理,并且使用用户的CPK key设备对用户的用户名进行签名生成CPK签名信息,并用服务器的CPK标识公钥对此CPK签名信息进行加密,将加密后的用户口令信息和加密后的CPK签名信息通过接入设备传给认证服务器; 6)认证服务器解析得到加密后的用户口令信息和加密后的CPK签名信息,先用服务器的CPK标识私钥解密得到CPK签名信息,再验证CPK签名信息是否合法。若签名验证通过,认证服务器将收到的加密的用户口令信息和本地加密的用户口令信息进行对比,若相同,则认为该用户为合法用户,返回认证通过的消息。2.如权利要求1所述的一种基于CPK标识认证的802.1X网络接入方法,其特征在于:上述中的CPK,就是组合公钥体制(Combined Public Key Cryptosystem,简称CPK),是在椭圆曲线密码(ECC算法)上,由组合矩阵和分割密钥序列构成,是一种先进的标识认证体制。3.如权利要求1所述的一种基于CPK标识认证的802.1X网络接入方法,其特征在于:所述认证服务器为支持CPK标识认证技术的、能进行CPK标识白名单管理的认证服务器,认证服务器中保存有用于认证鉴权的多组信息,每一条所述的多组信息包括用户私有标识、基于用户私有标识产生的用户的CPK标识公私钥对中的CPK标识公钥、基于服务器私有标识产生的服务器的CPK标识公私钥对中的CPK标识私钥、用户名、用户口令及附加鉴权信息;用户私有标识包括但不限于:身份证号码、电话号码、姓名和用户名等。4.如权利要求1所述的一种基于CPK标识认证的802.1X网络接入方法,其特征在于:所述用户的CPK key设备在使用前需要用户设置CPK Key的pin码来激活CPK Key设备(CPK Key的P in码是不同于用户的用户口令),在每次认证中都需要用户输入已设置的CPKKey的pin码做本地验证;用户的CPK Key的Pin码在一次认证中错误输入到达一定次数,用户的CPK Key设备会锁死,用户则需要去CPK Key设备的发证中心去解锁。5.如权利要求1所述的一种基于CPK标识认证的802.1X网络接入方法,其特征在于:所述客户端为支持CPK标识认证技术的802.1X协议的客户端,在用户发起登录认证请求后,客户端先检测是否有CPK key设备插入,若检测到有CPK key设备插入,再对用户输入的CPK pin码做本地验证;CPK pin码验证通过后,再发送认证请求报文到接入设备,否则若没有检测到用户的CPK Key设备或有CPK Key设备但输入的用户的CPK pin码错误,其显示相应的错误信息给用户。6.如权利要求1所述的一种基于CPK标识认证的802.1X网络接入方法,其特征在于:在认证通过后,客户端会定时检测被认证设备的CPK key是否在线,如果用户的CPK key设备被拔出后,客户端可通知认证服务器用户下线。7.如权利要求1所述的一种基于CPK标识认证的802.1X网络接入方法,其特征在于:在所述的认证服务器中,分配给每个用户的CPK key设备,用户名都具有唯一性;用户的CPK key设备、用户名和用户口令都是一一对应绑定的。8.如权利要求1所述的一种基于CPK标识认证的802.1X网络接入方法,其特征在于:所述的认证服务器解析得到加密后的用户口令信息和加密后的CPK签名信息,先用服务器的CPK标识私钥解密得到CPK签名信息,再用认证服务器白名单中的用户的CPK标识公钥验证CPK签名信息的合法性,若签名验证失败,则返回签名认证失败信息;若签名验证通过,再将认证服务器收到的加密的用户口令信息和本地加密的用户口令信息进行对比,若相同,则认为该用户为合法用户,返回认证通过的消息,若不同,则返回认证失败信息;其中CPK签名信息包括但不限于:用用户的CPK key设备对用户的用户名(或用户口令、随机挑战码等)进行签名生成CPK签名信息等。9.先如权利要求1所述的一种基于CPK标识认证的802.1X网络接入方法,其特征在于:所述认证服务器与客户端都采用预设的加密算法,此种加密算法是不可逆的。加密算法包括但不限于:MD5算法等。10.如权利要求1所述的一种基于CPK标识认证的802.1X网络接入方法,其特征在于:所述此种方法可适用于有线网络和无线网络的用户接入认证。
【专利摘要】本发明提供一种基于CPK标识认证的802.1X网络接入方法。该方法包括:客户端检测到插入的用户的CPK Key设备,先对用户输入的CPK Key的pin码做本地验证,验证通过后,再将用户输入的用户名、用户口令以及用CPK Key设备生成的CPK签名信息通过接入设备发送至认证服务器进行认证。认证服务器验证CPK签名是否合法,若合法,再验证用户口令信息,当认证通过后,允许用户访问局域网中的资源,否则,拒绝用户访问局域网中的资源;本发明中的客户端和认证服务器都支持CPK标识认证技术,采用本发明的方法,可拒绝不合法用户访问网络资源、可定位与追溯网络用户的网络行为。
【IPC分类】H04W12/06, H04W12/08, H04L29/06, H04L9/32
【公开号】CN104901940
【申请号】CN201510014481
【发明人】陈谦, 孟俊, 邱银娟, 刘杨, 杨剑波
【申请人】易兴旺, 陈谦, 胡浩, 孟俊
【公开日】2015年9月9日
【申请日】2015年1月13日

最新回复(0)