1.本发明涉及一种基于轻量级算法的安全认证系统及其工作方法,属于物联网安全认证技术领域。
背景技术:2.物联网技术的发展大大方便了人们的生活,然而物联网不断发展的同时也带来了安全问题。在物联网中,客户端设备的数量飞速增长,庞大的终端数量对无线网络提出了严峻的考验,既要保证大量的客户端设备的安全接入,又要保障服务端安全有保障。
3.用户通过客户端向服务端发送请求,来获得服务端的各种服务。在获得服务前,需要对用户的身边认证信息进行安全认证。目前认证技术采用sm2算法认证比较广泛,但是采用sm2算法认证需要数字证书的参与,还需要建立证书库、密钥库和数字证书等,步骤复杂且消耗资源较多。
4.对于窄带物联网中客户端资源和传输带宽有限而言,并不十分适合采用sm2算法认证。因此,如何给窄带物联网提供一种轻量级算法的,便于大量客户端设备接入的安全认证方法便是需要解决的问题。
技术实现要素:5.目的:为了克服现有技术中存在的不足,本发明提供一种基于轻量级算法的安全认证系统及其工作方法,消耗资源更少,便于管理和适合大量终端接入的安全认证方法。
6.技术方案:为解决上述技术问题,本发明采用的技术方案为:第一方面,一种基于轻量级算法的安全认证系统,包括:服务端,所述服务端包括:客户端信息库、访问控制模型和验证模块。
7.所述客户端信息库,用于存储多个客户端的用户信息。
8.所述访问控制模型包括:客户端模块、属性模块和权限模块。
9.所述客户端模块,用于接收客户端传送的身份认证信息,并与客户端信息库中客户端的用户信息做比对,信息保持一致的,将身份认证信息发送给属性模块。
10.所述属性模块,用于接收客户端模块发送的身份认证信息,并根据客户端的身份认证信息给客户端分配属性角色。
11.所述权限模块,用于根据不同的属性角色,给客户端分配不同的系统资源访问的权限等级。根据不同的权限等级,设置客户端与服务端之间是单向安全认证,还是双向安全认证。
12.所述验证模块,用于根据客户端的身份认证信息生成客户端的公钥,利用客户端的公钥,采用加密算法对数字签名进行验签。向客户端发送身份认证请求,向kgc发送数据信息。
13.作为优选方案,还包括:包括多个客户端、密钥生成中心。
14.所述密钥生成中心,用于根据客户端的身边认证信息,生成客户端的私钥,利用客
户端的私钥,采用加密算法对客户端发送的数据信息进行签名操作,生成数字签名,并将数字签名发送给服务端。根据服务端发送的身份认证请求,生成服务端的公钥,利用服务端的公钥,采用加密算法对服务端发送的数据信息进行签名操作,生成数字签名,并将数字签名发送给客户端。
15.所述客户端,用于根据服务端的身份认证请求生成服务端的公钥,利用服务端的公钥,采用加密算法对数字签名进行验签。
16.作为优选方案,所述属性角色是客户端在网络中所处的位置决定的。
17.作为优选方案,客户端的属性角色划分成关键支点、汇聚节点和终端节点。
18.作为优选方案,终端节点设定为低级权限、汇聚节点设定为中级权限、关键支点设定为高级权限。
19.作为优选方案,权限等级划分成低、中和高。高级权限可访问的资源最多,低级权限可访问的资源最少。如果是低级权限或中级权限,便采用单向安全认证的方法;如果是高级权限,便采用双向安全认证的方法。
20.作为优选方案,加密算法采用sm9。
21.第二方面,一种基于轻量级算法的安全认证系统的工作方法,包括如下步骤:服务器根据客户端的属性角色获取客户端的权限等级。
22.服务器根据客户端的权限等级,获取客户端访问服务器的认证方式。
23.当认证方式为单向认证时,客户端与服务器通过单向安全认证方法建立通信链路。
24.当认证方式为双向认证时,客户端与服务器通过双向安全认证方法建立通信链路。
25.作为优选方案,所述服务器根据客户端的属性角色获取客户端的权限等级,包括如下步骤:1.1、客户端信息库导入到服务端中,获取客户端信息库中的客户端的用户信息。
26.1.2、接收客户端发送的身份认证信息,与用户信息相对比,并判断是否为有效客户端。
27.1.3、如果身份认证信息与用户信息保持一致的,则设定客户端对应类别的属性角色。
28.1.4、根据客户端的属性角色设定客户端的权限等级。
29.作为优选方案,客户端的属性角色划分成关键支点、汇聚节点和终端节点。
30.作为优选方案,终端节点设定为低级权限、汇聚节点设定为中级权限、关键支点设定为高级权限。
31.作为优选方案,所述服务器根据客户端的权限等级,获取客户端访问服务器的认证方式,包括:当客户端的权限等级是低级权限或中级权限,客户端访问服务器采用单向认证方式。
32.当客户端的权限等级是高级权限,客户端访问服务器采用双向认证方式。
33.作为优选方案,所述当认证方式为单向认证时,客户端与服务器通过单向安全认证方法建立通信链路,包括:
客户端发送一段数据m和身边认证信息发送到密钥生成中心kgc。kgc根据身边认证信息生成客户端的私钥。利用加密算法,对数据信息m进行签名操作,生成数字签名m*。kgc将m*传输到服务端。
34.服务端利用客户端的身份认证信息生成客户端的公钥,根据加密算法对加密数据m*进行验签,如果验签通过,建立通信链路。
35.作为优选方案,所述当认证方式为双向认证时,客户端与服务器通过双向安全认证方法建立通信链路,包括:客户端发送一段数据m和身边认证信息发送到密钥生成中心kgc。kgc根据身边认证信息生成客户端的私钥,利用加密算法,对数据信息m进行签名操作,生成数字签名m*。kgc将m*传输到服务端。
36.服务端利用客户端的身份认证信息生成客户端的公钥,根据加密算法对加密数据m*进行验签,如果验签通过,进入下一步。
37.服务端向客户端发送身份认证请求,然后向密钥生成中心kgc发送数据信息n。kgc根据身份认证请求生成服务端的私钥,利用加密算法,对数据信息n进行签名操作,生成数字签名n*。kgc将n*传输到客户端。
38.客户端利用服务端的身份认证请求idb生成服务端的公钥,根据加密算法对加密数据n*进行验签,如果验签通过,建立通信链路。
39.作为优选方案,加密算法采用sm9。
40.有益效果:本发明提供的一种基于轻量级算法的安全认证系统及其工作方法,其优点如下:1.本发明提供的认证方法适用于物联网环境。在服务端建立访问控制模型,采用轻量级的sm9算法和按需转换认证的方式,无需复杂证书管理,适合大量的客户端设备接入物联网。
41.2.本发明通过客户端和密钥生成中心共同完成认证过程,并采用按需转换认证方式的方法,既发挥了高效率同时又对关键资源提供了安全性保证。
42.3.本发明认证方法可以确保只有合法的物联网终端设备接入网络,维护网络的安全,避免因非法设备接入带来服务端关键资源信息泄露等网络安全问题,防止非法设备接入网络从而对网络造成危害。
附图说明
43.图1是一种基于轻量级算法的安全认证系统结构示意图。
44.图2是访问控制模型工作流程图。
45.图3是一种基于轻量级算法的安全认证系统工作方法示意图。
46.图4是单向认证方法流程图。
47.图5是双向认证方法流程图。
具体实施方式
48.下面结合具体实施例对本发明作更进一步的说明。
49.如图1所示,第一种实施例一种基于轻量级算法的安全认证系统,包括多个客户
端、服务端、密钥生成中心(kgc)。
50.所述服务端包括:客户端信息库、访问控制模型和验证模块。
51.所述客户端信息库,用于存储多个客户端的用户信息。
52.所述访问控制模型包括:客户端模块、属性模块和权限模块。
53.所述客户端模块,用于接收客户端传送的身份认证信息,并与客户端信息库中客户端的用户信息做比对,信息保持一致的,将身份认证信息发送给属性模块。
54.所述属性模块,用于接收客户端模块发送的身份认证信息,并根据客户端的身份认证信息给客户端分配属性角色。所述属性角色是客户端在网络中所处的位置决定的,如:客户端的属性角色可以划分成关键支点、汇聚节点和终端节点。
55.所述权限模块,用于根据不同的属性角色,给客户端分配不同的系统资源访问的权限等级。如:权限等级可划分成低、中和高。高级权限可访问的资源最多,低级权限可访问的资源最少。根据不同的权限等级,设置客户端与服务端之间是单向安全认证,还是双向安全认证。如:如果是低级权限或中级权限,便采用单向安全认证的方法;如果是高级权限,便采用双向安全认证的方法。
56.所述验证模块,用于根据客户端的身份认证信息生成客户端的公钥,利用客户端的公钥,采用加密算法对数字签名进行验签。向客户端发送身份认证请求,向kgc发送数据信息。
57.所述kgc,用于根据客户端的身边认证信息,生成客户端的私钥,利用客户端的私钥,采用加密算法对客户端发送的数据信息进行签名操作,生成数字签名,并将数字签名发送给服务端。根据服务端发送的身份认证请求,生成服务端的公钥,利用服务端的公钥,采用加密算法对服务端发送的数据信息进行签名操作,生成数字签名,并将数字签名发送给客户端。
58.所述客户端,用于根据服务端的身份认证请求生成服务端的公钥,利用服务端的公钥,采用加密算法对数字签名进行验签。
59.如图2所示,一种基于轻量级算法的安全认证系统中在服务端设有访问控制模型,模型包括:客户端模块、属性模块和权限模块。该访问控制模型中的模块是对其功能的统称,并不局限在本说明的特定方式上。
60.根据客户端的全部用户信息建立了一个客户端信息库。并将客户端信息库导入到服务端中。
61.客户端模块:接收客户端传送的身份认证信息ida,将客户端发送的身份认证信息ida与信息库中的用户信息linfo相对比,对比一致,则设定客户端对应类别的属性角色。
62.属性模块:根据客户端模块发送的身份认证信息ida,让每个客户端获得相应的属性角色,并将属性角色的信息传送到权限模块。
63.属性模块对信息库中的所有客户端进行分类。属性角色是客户端设备在网络中所处的位置决定的,所以把客户端划分成关键支点、汇聚节点、终端节点。
64.权限模块:设置客户端对系统资源访问的许可。权限等级是对各属性角色的权限设定,可划分成低中高三级。高级权限可访问的资源最多,低级权限可访问的资源最少。
65.本发明设计的访问控制模型,有效管理了整个安全认证系统中海量的数据信息。访问控制模型根据权限的安全需求,对客户端采用按需转换认证方式的方法进行认证。根
据权限模块设定的权限等级结果,来判断接下来是进行单向认证还是双向认证。如果是低级权限或中级权限,便采用单向安全认证方法;如果是高级权限,便采用双向安全认证的方法,提高了效率,节省了资源。认证成功后就可访问系统受保护的资源内容。
66.如图3所示,一种基于轻量级算法的安全认证系统的工作方法,包括如下步骤:服务器根据客户端的属性角色获取客户端的权限等级。
67.服务器根据客户端的权限等级,获取客户端访问服务器的认证方式。
68.当认证方式为单向认证时,客户端与服务器通过单向安全认证方法建立通信链路。
69.当认证方式为双向认证时,客户端与服务器通过双向安全认证方法建立通信链路。
70.所述服务器根据客户端的属性角色获取客户端的权限等级,包括如下步骤:1.1、客户端信息库导入到服务端中,获取客户端信息库中的客户端的用户信息linfo。
71.1.2、接收客户端发送的身份认证信息ida,与用户信息linfo相对比,并判断是否为有效客户端。
72.1.3、如果ida与linfo保持一致的,则设定客户端对应类别的属性角色。
73.例如:客户端a的角色类别是关键节点,经对比,ida与linfo里关于客户端a的信息是一致的,则正式设定客户端a的属性角色为关键节点。信息不一致的反馈回客户端,要求核实后再次发送身份认证信息。
74.1.4、根据客户端的属性角色设定客户端的权限等级。
75.例如:终端节点设定为低级权限、汇聚节点设定为中级权限、关键支点设定为高级权限。随后根据结果开放系统资源。
76.终端节点只通信到上一级节点,负责上传采集的数据;汇聚节点是承上启下的作用,向上通信关键支点,向下访问终端节点;关键支点是网络的核心,可以访问最多的系统资源。
77.所述服务器根据客户端的权限等级,获取客户端访问服务器的认证方式,包括:当客户端的权限等级是低级权限或中级权限,客户端访问服务器采用单向认证方式。
78.当客户端的权限等级是高级权限,客户端访问服务器采用双向认证方式。
79.如图4所示,所述当认证方式为单向认证时,客户端与服务器通过单向安全认证方法建立通信链路,包括:客户端向服务端发送认证请求信息,包括版本、身边认证信息ida、客户端id、明文随机数。
80.服务端提取客户端信息,通过访问控制模型后,判断出是单向认证还是双向认证,无论是哪种,都要先执行服务端验证客户端的单向认证过程。
81.服务端将通过访问控制模型后的结果反馈给客户端。客户端发送一段数据m和身边认证信息ida发送到密钥生成中心kgc。kgc在系统下根据ida生成客户端的私钥。利用sm9签名生成算法,对数据信息m进行签名操作,生成数字签名m*。kgc将m*传输到服务端。
82.服务端之前利用最先得到的身份认证信息ida生成客户端的公钥。现服务端根据
sm9数字验签算法对加密数据m*进行验签,验证对签名的可靠性。如果验签通过,则完成了服务端对客户端正确性的验证。接下来双方通过此信任度进行密钥协商操作,建立出可靠的通信链路。
83.如图5所示,所述当认证方式为双向认证时,客户端与服务器通过双向安全认证方法建立通信链路,包括:既要服务端验证客户端的正确性和可靠性,也要通过服务端发送数据信息n,客户端验证服务端的有效性和可靠性。在实际情况中这样会利用部分客户端资源,一般在物联网中关键网络节点的客户端设备能力和资源较多一些,可以完成此双向认证中客户端验证服务端正确性的计算任务。
84.本发明的具体实施双向认证的方法中,也需要先进行如上述的服务端验证客户端的正确性和可靠性。
85.客户端向服务端发送认证请求信息,包括版本、身边认证信息ida、客户端id、明文随机数。
86.服务端将通过访问控制模型后的结果反馈给客户端。客户端发送一段数据m和身边认证信息ida发送到密钥生成中心kgc。kgc在系统下根据ida生成客户端的私钥,利用sm9签名生成算法,对数据信息m进行签名操作,生成数字签名m*。kgc将m*传输到服务端。
87.服务端之前利用最先得到的身份认证信息ida生成客户端的公钥。现服务端根据sm9数字验签算法对加密数据m*进行验签,验证对签名的可靠性。
88.接下来,服务端向客户端发送身份认证请求idb,然后向密钥生成中心kgc发送数据信息n。kgc在系统下根据idb生成服务端的私钥,利用sm9签名生成算法,对数据信息n进行签名操作,生成数字签名n*。kgc将n*传输到客户端。
89.客户端之前利用最先得到的身份认证请求idb生成服务端的公钥。现客户端根据sm9数字验签算法对加密数据n*进行验签,验证对签名的可靠性。如果验签通过,则完成了客户端对服务端正确性的验证。双方的双向认证已经完成,接下来双方通过此信任度进行密钥协商操作,建立出可靠的通信链路进行通信。认证成功后,将信息存储在系统服务端,并返回给客户端。客户端就即可用建立的通信链路访问系统中受保护的资源。
90.本发明在服务端建立访问控制模型,通过轻量级的sm9算法,采用按需转换认证方式,无需复杂证书管理,适和大量的客户端设备接入物联网,既发挥了高效率又同时对关键资源提供了安全性保证。
91.以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
技术特征:1.一种基于轻量级算法的安全认证系统,包括:服务端,其特征在于:所述服务端包括:客户端信息库、访问控制模型和验证模块;所述客户端信息库,用于存储多个客户端的用户信息;所述访问控制模型包括:客户端模块、属性模块和权限模块;所述客户端模块,用于接收客户端传送的身份认证信息,并与客户端信息库中客户端的用户信息做比对,信息保持一致的,将身份认证信息发送给属性模块;所述属性模块,用于接收客户端模块发送的身份认证信息,并根据客户端的身份认证信息给客户端分配属性角色;所述权限模块,用于根据不同的属性角色,给客户端分配不同的系统资源访问的权限等级;根据不同的权限等级,设置客户端与服务端之间是单向安全认证,还是双向安全认证;所述验证模块,用于根据客户端的身份认证信息生成客户端的公钥,利用客户端的公钥,采用加密算法对数字签名进行验签;向客户端发送身份认证请求,向kgc发送数据信息。2.根据权利要求1所述的一种基于轻量级算法的安全认证系统,其特征在于:还包括:包括多个客户端、密钥生成中心;所述密钥生成中心,用于根据客户端的身边认证信息,生成客户端的私钥,利用客户端的私钥,采用加密算法对客户端发送的数据信息进行签名操作,生成数字签名,并将数字签名发送给服务端;根据服务端发送的身份认证请求,生成服务端的公钥,利用服务端的公钥,采用加密算法对服务端发送的数据信息进行签名操作,生成数字签名,并将数字签名发送给客户端;所述客户端,用于根据服务端的身份认证请求生成服务端的公钥,利用服务端的公钥,采用加密算法对数字签名进行验签。3.根据权利要求1或2所述的一种基于轻量级算法的安全认证系统,其特征在于:客户端的属性角色划分成关键支点、汇聚节点和终端节点;终端节点设定为低级权限、汇聚节点设定为中级权限、关键支点设定为高级权限。4.根据权利要求1或2所述的一种基于轻量级算法的安全认证系统,其特征在于:权限等级划分成低、中和高;高级权限可访问的资源最多,低级权限可访问的资源最少;如果是低级权限或中级权限,便采用单向安全认证的方法;如果是高级权限,便采用双向安全认证的方法。5.根据权利要求1或2所述的一种基于轻量级算法的安全认证系统,其特征在于:所述加密算法采用sm9。6.一种基于轻量级算法的安全认证系统的工作方法,其特征在于:包括如下步骤:服务器根据客户端的属性角色获取客户端的权限等级;服务器根据客户端的权限等级,获取客户端访问服务器的认证方式;当认证方式为单向认证时,客户端与服务器通过单向安全认证方法建立通信链路;当认证方式为双向认证时,客户端与服务器通过双向安全认证方法建立通信链路。7.根据权利要求6所述的工作方法,其特征在于:所述服务器根据客户端的属性角色获取客户端的权限等级,包括如下步骤:1.1、客户端信息库导入到服务端中,获取客户端信息库中的客户端的用户信息;
1.2、接收客户端发送的身份认证信息,与用户信息相对比,并判断是否为有效客户端;1.3、如果身份认证信息与用户信息保持一致的,则设定客户端对应类别的属性角色;1.4、根据客户端的属性角色设定客户端的权限等级。8.根据权利要求6所述的工作方法,其特征在于:客户端的属性角色划分成关键支点、汇聚节点和终端节点;终端节点设定为低级权限、汇聚节点设定为中级权限、关键支点设定为高级权限。9.根据权利要求6所述的工作方法,其特征在于:所述服务器根据客户端的权限等级,获取客户端访问服务器的认证方式,包括:当客户端的权限等级是低级权限或中级权限,客户端访问服务器采用单向认证方式;当客户端的权限等级是高级权限,客户端访问服务器采用双向认证方式。10.根据权利要求6所述的工作方法,其特征在于:所述当认证方式为单向认证时,客户端与服务器通过单向安全认证方法建立通信链路,包括:客户端发送一段数据m和身边认证信息发送到密钥生成中心kgc;kgc根据身边认证信息生成客户端的私钥;利用加密算法,对数据信息m进行签名操作,生成数字签名m*;kgc将m*传输到服务端;服务端利用客户端的身份认证信息生成客户端的公钥,根据加密算法对加密数据m*进行验签,如果验签通过,建立通信链路。11.根据权利要求6所述的工作方法,其特征在于:所述当认证方式为双向认证时,客户端与服务器通过双向安全认证方法建立通信链路,包括:客户端发送一段数据m和身边认证信息发送到密钥生成中心kgc;kgc根据身边认证信息生成客户端的私钥,利用加密算法,对数据信息m进行签名操作,生成数字签名m*;kgc将m*传输到服务端;服务端利用客户端的身份认证信息生成客户端的公钥,根据加密算法对加密数据m*进行验签,如果验签通过,进入下一步;服务端向客户端发送身份认证请求,然后向密钥生成中心kgc发送数据信息n;kgc根据身份认证请求生成服务端的私钥,利用加密算法,对数据信息n进行签名操作,生成数字签名n*;kgc将n*传输到客户端;客户端利用服务端的身份认证请求idb生成服务端的公钥,根据加密算法对加密数据n*进行验签,如果验签通过,建立通信链路。12.根据权利要求10或11所述的工作方法,其特征在于:所述加密算法采用sm9。
技术总结本发明公开了一种基于轻量级算法的安全认证系统及其工作方法,包括多个客户端、服务端、密钥生成中心。所述服务端包括:客户端信息库、访问控制模型和验证模块。所述访问控制模型包括:客户端模块、属性模块和权限模块。本发明无需复杂证书管理,适合大量的客户端设备接入物联网。既发挥了高效率同时又对关键资源提供了安全性保证。避免因非法设备接入带来服务端关键资源信息泄露等网络安全问题,防止非法设备接入网络从而对网络造成危害。设备接入网络从而对网络造成危害。设备接入网络从而对网络造成危害。
技术研发人员:曹光耀 王元强 马涛 何迎利 卢岸 范镇淇 张翔 杨晓林 蔡国龙 聂云杰 李宇航
受保护的技术使用者:南京南瑞信息通信科技有限公司
技术研发日:2022.06.24
技术公布日:2022/11/1