1.本发明涉及物联网技术领域,尤其涉及一种物联网设备身份认证方法、装置、系统及计算机可读存储介质。
背景技术:
2.物联网是指通过具有感知和通信能力的物联网设备,按照约定的协议将物、人、系统和信息资源连接起来,以实现对物理和虚拟世界的信息进行处理并做出反应的智能服务系统。现如今物联网与各个行业深度融合,催生了智能家居、智能城市等等新兴应用场景。随着物联网的快速发展,大量的物联网设备托管在移动互联网的服务器上进行管理,物联网设备面临的安全和隐私挑战也越来越大。其中,对设备的身份认证是整个物联网安全的第一步,身份认证机制是指在进行数据交互前,对接入物联网系统的设备身份进行识别鉴定的一种安全机制。
3.目前,物联网系统中常用的身份认证方式主要有4种,分别为智能卡认证、用户名/密码方式认证、动态口令认证和基于数字证书的身份认证。智能卡认证是基于智能卡的身份认证属于通过物理设备进行身份认证的机制,其认证数据是静态的;用户名/密码方式认证是用户名/密码是最简单也是最常用的身份认证方法,是基于“whatyouknow”的验证手段,其中的密码是静态的数据;动态口令认证是动态口令的基本认证原理是认证双方使用同一个共享密钥对时间进行密码算法计算,然后比较计算值是否一致,从而进行认证;基于数字证书的身份认证是数字证书身份认证,基于pki(publickey infrastructure,公钥基础设施)构架的数字证书认证方式。
4.由于物联网设备的计算能力和储存资源都有限,不能在物联网中运算过于复杂的算法。若使用复杂的算法会导致物联网设备耗能和储存资源加速消耗,或者解密时间过长;若不设置或设置简单的身份认证加密算法,会使物联网设备很容易被攻击者破解成功,从而得到用户隐私数据。而移动互联网的开放性给被托管的物联网设备带来诸多安全威胁,例如攻击者用一些设备对服务器进行暴力破解、穷举攻击等。此外,物联网设备运算能力有限,导致物联网设备无法加载复杂的安全措施。而大量的物联网设备用于用户敏感场景,其数据包括大量用户隐私,一旦泄露后果很严重。
5.综上,在身份认证过程中,常用的身份认证方式有些采用静态信息或增加智能卡,有些认证过程繁琐,导致资源消耗过大,均不能满足物联网系统的安全性的需求。
技术实现要素:
6.本发明实施例提供了一种物联网设备身份认证方法、装置、系统及计算机可读存储介质,以实现交互双方的双向认证,减少物联网设备的资源消耗,提高物联网系统的安全性。
7.第一方面,为了解决上述技术问题,本发明实施例提供了一种物联网设备身份认证方法,由客户端设备执行,包括:
8.发送身份认证请求信息至服务端设备,以使所述服务端设备接收所述身份认证请求信息,根据预设的第一加密算法生成第一验证码,并将所述第一验证码发送至所述客户端设备;
9.接收所述第一验证码,并根据所述第一加密算法生成第二验证码,将所述第二验证码与所述第一验证码进行对比;
10.当判定所述第二验证码与所述第一验证码一致时,确定所述服务端设备身份正确;
11.在确定所述服务端设备身份正确后,根据预设的第二加密算法对所述第一验证码进行加密,生成第三验证码;
12.将所述第三验证码和预先配置的加密数据包发送至所述服务端设备,以使所述服务端设备反向运行所述第二加密算法,对接收到的所述第三验证码解密以生成第四验证码,将所述第四验证码与所述第一验证码进行对比,当判定所述第四验证码与所述第一验证码一致时,对接收到的所述加密数据包进行解密得到设备验证信息,当判定所述设备验证信息与所述客户端设备的设备专属信息一致时,确定所述客户端设备身份正确。
13.优选地,所述方法还包括:
14.接收图像验证码,反向运行预设的图像生成算法对所述图像验证码解密,得到所述第一验证码;其中,所述图像验证码由所述服务端设备根据所述图像生成算法和所述第一验证码生成,并发送至所述客户端设备。
15.优选地,所述反向运行预设的图像生成算法对所述图像验证码解密,得到所述第一验证码,包括;
16.对所述图像验证码进行信息读取,并删除预设的干扰信息,得到十进制数值;
17.将所述十进制数值转换为二进制数值,并对所述二进制数值进行反向按位循环运算,得到初始二进制数值;
18.将所述初始二进制数值进行十进制转换,得到所述第一验证码。
19.优选地,所述根据所述第一加密算法生成第二验证码,包括:
20.根据预设的动态时间间隔和获取到的客户端设备当前时间,生成时间段编号;
21.对所述客户端设备当前时间、所述时间段编号和所述动态时间间隔进行计算,得到初始第二验证码;
22.根据预设的验证码位数对所述初始第二验证码进行处理,得到所述第二验证码。
23.优选地,所述方法还包括:
24.当首次判定所述第二验证码与所述第一验证码不一致时,将所述时间段编号更新为前一个时间的时间段编号,并返回所述对所述客户端设备当前时间、所述时间段编号和所述动态时间间隔进行计算,得到初始第二验证码的步骤,以得到更新后的第二验证码;
25.将更新后的第二验证码与所述第一验证码进行对比。
26.优选地,所述根据预设的第二加密算法对所述第一验证码进行加密,生成第三验证码,包括:
27.将预设的加密数增加至所述第一验证码中,生成第三验证码。
28.第二方面,本发明提供了一种物联网设备身份认证装置,所述装置设于客户端设备中,包括:
29.请求发送模块,用于发送身份认证请求信息至服务端设备,以使所述服务端设备接收所述身份认证请求信息,根据预设的第一加密算法生成第一验证码,并将所述第一验证码发送至所述客户端设备;
30.第一对比模块,用于接收所述第一验证码,并根据所述第一加密算法生成第二验证码,将所述第二验证码与所述第一验证码进行对比;
31.第一判定模块,用于当判定所述第二验证码与所述第一验证码一致时,确定所述服务端设备身份正确;
32.第一加密模块,用于在确定所述服务端设备身份正确后,根据预设的第二加密算法对所述第一验证码进行加密,生成第三验证码;
33.第一发送模块,用于将所述第三验证码和预先配置的加密数据包发送至所述服务端设备,以使所述服务端设备反向运行所述第二加密算法,对接收到的所述第三验证码解密以生成第四验证码,将所述第四验证码与所述第一验证码进行对比,当判定所述第四验证码与所述第一验证码一致时,对接收到的所述加密数据包进行解密得到设备验证信息,当判定所述设备验证信息与所述客户端设备的设备专属信息一致时,确定所述客户端设备身份正确。
34.第三方面,本发明还提供了一种物联网设备身份认证方法,由服务端设备执行,包括:
35.接收身份认证请求信息,根据预设的第一加密算法生成第一验证码;其中,所述身份认证请求信息由客户端设备生成并发送至服务端设备;
36.将所述第一验证码发送至所述客户端设备,以使所述客户端设备根据所述第一加密算法生成第二验证码,将所述第二验证码与接收到的所述第一验证码进行对比,当判定所述第二验证码与所述第一验证码一致时,确定所述服务端设备身份正确,在确定所述服务端设备身份正确后,根据预设的第二加密算法对所述第一验证码进行加密生成第三验证码,并将所述第三验证码和预先配置的加密数据包发送至所述服务端设备;
37.接收所述加密数据包和所述第三验证码;
38.反向运行所述第二加密算法,对所述第三验证码解密生成第四验证码,将所述第四验证码与所述第一验证码进行对比;
39.当判定所述第四验证码与所述第一验证码一致时,对所述加密数据包进行解密得到设备验证信息;
40.当判定所述设备验证信息与所述客户端设备的设备专属信息一致时,确定所述客户端设备身份正确。
41.优选地,所述根据预设的第一加密算法生成第一验证码,包括:
42.根据预设的动态时间间隔和获取到的服务端设备当前时间,生成时间段编号;
43.对所述服务端设备当前时间、所述时间段编号和所述动态时间间隔进行计算,得到初始第一验证码;
44.根据预设的验证码位数对所述初始第一验证码进行处理,得到所述第一验证码。
45.优选地,所述方法还包括:
46.根据预设的图像生成算法和所述第一验证码生成图像验证码,并将所述图像验证码发送至所述客户端设备,以使所述客户端设备反向运行所述图像生成算法,对接收到的
所述图像验证码进行解密,得到所述第一验证码。
47.优选地,所述根据预设的图像生成算法和所述第一验证码生成图像验证码,包括:
48.将所述第一验证码转换为初始二进制数值;
49.对所述初始二进制数值进行按位循环运算,得到二进制数值;
50.将所述二进制数值写入服务端设备预先配置的图像数据中,生成初始图像验证码;
51.将预设的干扰信息增加至所述初始图像验证码中,生成图像验证码。
52.优选地,所述反向运行所述第二加密算法,对所述第三验证码解密生成第四验证码,包括:
53.将预设的加密数从所述第三验证码中删除,生成第四验证码。
54.第四方面,本发明还提供了一种物联网设备身份认证装置,所述装置设于服务端设备中,包括:
55.第二加密模块,用于接收身份认证请求信息,根据预设的第一加密算法生成第一验证码;其中,所述身份认证请求信息由客户端设备生成并发送至服务端设备;
56.第二发送模块,用于将所述第一验证码发送至所述客户端设备,以使所述客户端设备根据所述第一加密算法生成第二验证码,将所述第二验证码与接收到的所述第一验证码进行对比,当判定所述第二验证码与所述第一验证码一致时,确定所述服务端设备身份正确,在确定所述服务端设备身份正确后,根据预设的第二加密算法对所述第一验证码进行加密生成第三验证码,并将所述第三验证码和预先配置的加密数据包发送至所述服务端设备;
57.第一接收模块,用于接收所述加密数据包和所述第三验证码;
58.第二对比模块,用于反向运行所述第二加密算法,对所述第三验证码解密生成第四验证码,将所述第四验证码与所述第一验证码进行对比;
59.第一解密模块,用于当判定所述第四验证码与所述第一验证码一致时,对所述加密数据包进行解密得到设备验证信息;
60.第二判定模块,用于当判定所述设备验证信息与所述客户端设备的设备专属信息一致时,确定所述客户端设备身份正确。
61.第五方面,本发明还提供了一种物联网设备身份认证系统,包括客户端设备和服务端设备,所述客户端设备与所述服务端设备通信连接,所述客户端设备用于执行如第一方面中任意一项所述的物联网设备身份认证方法,所述服务端设备用于执行如第三方面中任意一项所述的物联网设备身份认证方法。
62.第六方面,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如第一方面中任意一项所述的物联网设备身份认证方法或如第三方面中任意一项所述的物联网设备身份认证方法。
63.相比于现有技术,本发明实施例具有如下有益效果:
64.在本发明实施例中,客户端设备会对服务端设备进行身份认证,确定服务端设备身份正确后,再发送处理过的第三验证码和加密数据包至服务端设备,服务端设备再对客户端设备进行身份认证,从而实现交互双方的双向认证。同时,在本发明实施例中,不用循
环解密多次、也不涉及多次递归迭代以及公私钥等,具有占用资源少、认证速度快的优点,适用于计算机技术能力和储存资源低的设备。
附图说明
65.图1是本发明提供的一种物联网设备身份认证方法的一个优选实施例的流程示意图;
66.图2是本发明提供的一种物联网设备身份认证方法的一个优选实施例的结构示意图;
67.图3是本发明提供的一种物联网设备身份认证方法的另一个优选实施例的流程示意图;
68.图4是本发明提供的一种物联网设备身份认证方法的另一个优选实施例的结构示意图。
具体实施方式
69.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
70.参照图1,本发明第一实施例提供了一种物联网设备身份认证方法,包括以下步骤s11-s15:
71.s11,发送身份认证请求信息至服务端设备,以使所述服务端设备接收所述身份认证请求信息,根据预设的第一加密算法生成第一验证码,并将所述第一验证码发送至所述客户端设备;
72.s12,接收所述第一验证码,并根据所述第一加密算法生成第二验证码,将所述第二验证码与所述第一验证码进行对比;
73.s13,当判定所述第二验证码与所述第一验证码一致时,确定所述服务端设备身份正确;
74.s14,在确定所述服务端设备身份正确后,根据预设的第二加密算法对所述第一验证码进行加密,生成第三验证码;
75.s15,将所述第三验证码和预先配置的加密数据包发送至所述服务端设备,以使所述服务端设备反向运行所述第二加密算法,对接收到的所述第三验证码解密以生成第四验证码,将所述第四验证码与所述第一验证码进行对比,当判定所述第四验证码与所述第一验证码一致时,对接收到的所述加密数据包进行解密得到设备验证信息,当判定所述设备验证信息与所述客户端设备的设备专属信息一致时,确定所述客户端设备身份正确。
76.需要说明的是,在开始验证之前,需要对物联网设备中的客户端设备进行注册。在注册流程中,涉及到系统管理员、服务端设备和用户三个方面。首先,用户向服务端设备申请注册,并且提交自己的手机号码和密码信息,系统管理员则验证该用户是不是自己的用户,如果是则通过用户的申请注册,并且给该用户设置一定的操作权限,例如增加删除设备、修改设备信息、修改设备账户密码的权限等。
77.进一步地,在用户注册成功后,在服务端设备中进行用户登录,登录成功后发起客户端设备注册申请。服务端设备根据接收到的客户端设备注册申请信息,返回一个设备专属信息提交界面,用户在此界面输入客户端设备的设备专属信息,并将设备专属信息发送至服务端设备。其中,设备专属信息包括客户端设备的独立ip地址、机器码、账号、密码等信息。
78.服务端设备根据接收到的设备专属信息生成对应客户端设备的专属数据包,采用预设的专属加密算法对专属数据包进行加密以生成加密数据包,并将加密数据包发送至客户端设备,客户端设备将加密数据包预先配置并存储至指定位置。其中,专属加密算法由双方提前约定并配置,例如,可以采用数据加密算法(data encryption algorithm,dea),本发明对此不做限定。
79.进一步地,服务端设备还可以基于设备专属信息生成设备专用的程序,并将程序发送至客户端设备。与现有技术中的数字证书身份认证对比,本发明在客户端设备申请注册的时候,基于客户端设备的专属信息生成设备专用的程序,可以抵抗伪造攻击、伪造身份攻击、中间人攻击等等,提高了物联网设备身份认证系统的安全性。
80.在本实施例中,用户还可以根据加密数据包,将服务端设备发送过来的设备专用程序安装到客户端设备中,设备安装程序成功后开始运行程序,并且储存加密数据包中的账号信息和密码信息。在程序安装成功和账号和密码信息储存成功后,客户端设备还可以发送程序安装成功和账号密码信息储存成功信息至服务端设备,服务端设备接收到信息后,确定设备注册成功。客户端设备在程序安装成功和账号密码信息储存成功之后,再执行步骤s11,发送身份认证请求信息至所述服务端设备。
81.在步骤s11中,客户端设备发送身份认证请求信息至服务端设备。服务端设备接收所述身份认证请求信息,根据预设的第一加密算法生成第一验证码,并将所述第一验证码发送至所述客户端设备。
82.需要说明的是,第一加密算法的输入数据是动态的,根据时间进行变化。例如,使用基于时间同步验证的专用加密方法,来生成基于服务端设备当前时间的第一验证码。
83.在步骤s12中,客户端设备接收所述第一验证码,并根据所述第一加密算法生成第二验证码,将所述第二验证码与所述第一验证码进行对比。其中,第一加密算法的输入数据是动态的,根据时间进行变化。例如,使用基于时间同步验证的专用加密方法,来生成基于客户端设备当前时间的第二验证码。
84.在步骤s13和s14中,当客户端设备判定所述第二验证码与所述第一验证码一致时,确定所述服务端设备身份正确。在确定所述服务端设备身份正确后,根据预设的第二加密算法对所述第一验证码进行加密,生成第三验证码。在一种实施方式中,将预设的加密数增加至所述第一验证码中,生成第三验证码。具体地,预设的加密数可以是一个较大的数。
85.在步骤s15中,将所述第三验证码和预先配置的加密数据包发送至所述服务端设备。示例性地,可以将第三验证码组合上加密数据包生成字符串,发送至服务端设备进行对比认证。最后,将缓存在客户端设备上所有的验证码信息删除,防止被他人盗用。
86.进一步地,服务端设备反向运行所述第二加密算法,对接收到的所述第三验证码解密以生成第四验证码,将所述第四验证码与所述第一验证码进行对比。当判定所述第四验证码与所述第一验证码一致时,反向运行预设的专属加密算法对接收到的所述加密数据
包进行解密,得到设备验证信息。其中,设备验证信息与设备专属信息保持一致,可以由交互双方提前设定,包括客户端设备的独立ip地址、机器码、账号、密码等信息。当判定所述设备验证信息与所述设备专属信息一致时,确定所述客户端设备身份正确。
87.在一种实施方式中,服务端设备接收到客户端设备发送过来的字符串,将所述加密数从所述第三验证码中删除,生成第四验证码。服务端设备将解密出来的第四验证码与第一验证码进行对比,当判定所述第四验证码与所述第一验证码一致时,说明对比正确。再对字符串后面的加密数据包采用专属加密算法进行解密,从而读取设备验证信息,设备验证信息包括设备的账号和密码。需要说明的是,在判定第四验证码与第一验证码不一致的情况下,服务端设备不会去解密加密数据包,不会获得账号和密码信息。
88.进一步地,当判定所述设备验证信息与所述设备专属信息一致时,则确定客户端设备身份正确,发送认证通过信息至客户端设备。当判定所述设备验证信息与所述设备专属信息不一致时,说明账号和密码验证失败,则发送密码错误信息至客户端设备。
89.为了便于对本发明的理解,下面将对本发明的一些优选实施例做更进一步的描述。
90.在一种实现方式中,所述服务端设备根据预设的第一加密算法生成第一验证码,包括以下步骤s21-s23:
91.s21,根据预设的动态时间间隔和获取到的服务端设备当前时间,生成时间段编号;
92.s22,对所述服务端设备当前时间、所述时间段编号和所述动态时间间隔进行计算,得到初始第一验证码;
93.s23,根据预设的验证码位数对所述初始第一验证码进行处理,得到所述第一验证码。
94.在步骤s21中,需要根据预设的动态时间间隔和获取到的服务端设备当前时间,生成时间段编号。具体地,服务端设备首先获取当前时间,即年月日时分秒,然后对当前时间中的分钟数和秒数进行运算,公式如下:
[0095][0096]
其中,a表示服务端设备获取当前时间中的分钟数,b表示服务端设备获取当前时间中的秒数,t是动态时间间隔,j表示的是时间段编号“xx”,时间段编号只取整数,余数不要。动态时间间隔t是一个动态数字,由管理员在更新过程中设定动态时间间隔t的范围,服务端设备每天在此范围中进行随机选择一个数字,作为当天的动态时间间隔t。在本实施例中,经过上述公式(1)的运算后得时间段编号为:j=xx,j为一个二位数的数值。在其他实施例中,若是j的数值不到二位,进行前面补位处理。例如,经过上述公式(1)得到j=1,则进行补位处理,以0进行补位,得到最终的j为01。
[0097]
在步骤s22中,需要对所述服务端设备当前时间、所述时间段编号和所述动态时间间隔进行计算,得到初始第一验证码。具体地,服务端设备将获取到当前时间中的年月日时数值进行运算,公式如下:
[0098]
[0099]
其中,c表示获取到当前时间中的年日月时,即“yyyymmddhh”,d表示时间段编号与动态时间间隔的组合,即jt,例如j=01、t=90,则d=0190,f表示上述公式(2)运算的商,g表示上述公式(2)运算的余数。进一步地,对f、g、j进行组合后得到初始第一验证码,例如“519560212138”。
[0100]
在步骤s23中,根据预设的验证码位数对所述初始第一验证码进行处理,得到所述第一验证码。需要说明的是,在一种实施例中,经过步骤s22得到的初始第一验证码为“519560212138”。但在具体实施当中,若将初始第一验证码直接组合起来,会使得最终的验证码长度不一致,有的时候会长几位,有的时候会短几位。为了统一字符串的长度,在得到f、g和j三个数值后,要根据预设的验证码位数对f和g进行取若干位数,再进行fgj组合。其中,验证码位数可以根据用户的需求进行配置,本发明对此不做限制。
[0101]
示例性地,假设当前时间为2021年09月05日21时58分20秒,t=90。经过公式(1)的运算后得到j=38,此时c=2021090521,d=3890。在本实施例中,经过公式(2)运算得到f=519560、g=2121。以验证码位数为8位进行示例,此时取f和g的前三位数,取位后的f=519、g=212,最后进行fgj的组合,生成基于当前时间的第一验证码为51921238。在其他实施例中,若是g的数值不到三位的,进行前面补位处理。例如,经过上述公式(2)得到g=1,则进行补位处理,以0进行补位,得到最终的g为001。
[0102]
在本实施例中,第一加密算法为一种基于时间同步验证编码的生成方法,生成的验证信息是动态信息,而不是静态信息。与智能卡及用户名/密码方式的身份认证方法相对比,此方法可以有效防止窥探、字典攻击、穷举尝试、网络数据流窃听、重放攻击等。同时,设定一个可以修改的动态时间间隔t,每天或者隔一段时间后t的数值就变化。与现有技术动态口令中的totp协议对比,本发明的动态时间t可以修改,每天服务器在设定范围中选取一个数值作为当天的约定时间规则。而且,延时的策略不需要向前推好几个时间段进行解密,只需要向前推一个时间段进行解密,因此可以抵抗猜测攻击,节省物联网设备的功耗,提高身份认证过程的有效性、安全性。
[0103]
相应地,在步骤s12中,所述客户端设备根据所述第一加密算法生成第二验证码,包括以下步骤:
[0104]
根据预设的动态时间间隔和获取到的客户端设备当前时间,生成时间段编号;
[0105]
对所述客户端设备当前时间、所述时间段编号和所述动态时间间隔进行计算,得到初始第二验证码;
[0106]
根据预设的验证码位数对所述初始第二验证码进行处理,得到所述第二验证码。
[0107]
需要说明的是,上述步骤与步骤s21-s23的不同之处仅在于,上述步骤中获取到的是客户端设备当前时间,而步骤s21获取到的是服务端设备当前时间,其他过程在此不再赘述。
[0108]
在一种优选实施方式中,所述方法还包括:
[0109]
服务端设备根据预设的图像生成算法和所述第一验证码生成图像验证码,并将所述图像验证码发送至所述客户端设备,以使所述客户端设备反向运行所述图像生成算法,对接收到的所述图像验证码进行解密,得到所述第一验证码。
[0110]
具体地,所述服务端设备根据预设的图像生成算法和所述第一验证码生成图像验证码,包括以下步骤s31-s34:
[0111]
s31,将所述第一验证码转换为初始二进制数值;
[0112]
s32,对所述初始二进制数值进行按位循环运算,得到二进制数值;
[0113]
s33,将所述二进制数值写入服务端设备预先配置的图像数据中,生成初始图像验证码;
[0114]
s34,将预设的干扰信息增加至所述初始图像验证码中,生成图像验证码。
[0115]
在步骤s31中,需要将所述第一验证码转换为初始二进制数值。首先读取第一验证码中的信息,将第一验证码转换为初始二进制数值,用p个字节表示,一个字节有8位。
[0116]
在步骤s32中,对所述初始二进制数值进行按位循环运算,得到二进制数值。例如,对初始二进制数值的第一个字节进行循环左移两位,第二个字节进行循环右移四位等。
[0117]
示例性地,以第一验证码为“51921238”进行说明。51921238转化为二进制数后为11000110000100000101010110,一共有26位,将前面补全变为4个字节,即32位,为00000011000110000100000101010110。字节排序从右向左开始,对第一个字节01010110进行左移五位,第二个字节01000001右移为四位,第三个字节00011000右移两位,第四个00000011右移一位,移位后分别为11001010、00010100、00000110、10000001,得到最终二进制数值为10000001000001100001010011001010。
[0118]
在步骤s33中,将所述二进制数值写入服务端设备预先配置的图像数据中,生成初始图像验证码。需要说明的是,本实施例中预先在服务端设备中储存或随机生成若干数量的背景图片,这些图片的可以是黑白类图片、灰度化图片、彩色类图片等,图片里面的图形可以是符号、数字编号、物体等。
[0119]
进一步地,首先读取在服务端设备中储存或者随机生成的背景图片,然后用背景图片中的k个点的数值来表示所述二进制数值。其中,图片中的k个点的范围由服务端设备每天在图片范围中随机不重复抽取得到。最后,将步骤s22中得到的p个字节的二进制数值对应的写入到背景图片中去,生成初始图像验证码。
[0120]
在步骤s34中,将预设的干扰信息增加至所述初始图像验证码中,生成图像验证码。其中,干扰信息可以包括l个噪声。
[0121]
需要说明的是,不同的图片类型所需要的k值是不一样的,比如黑白图片中一个点只有0和1两个取值,因此需要k=p*8个点,rgb彩色图片中一个点的取值是0到255,转化为二进制数的话是8位二进制数,因此只需要k=4个点即可。
[0122]
在一种优选实施方式中,所述方法还包括:
[0123]
客户端设备接收图像验证码,反向运行预设的图像生成算法对所述图像验证码解密,得到所述第一验证码;其中,所述图像验证码由所述服务端设备根据所述图像生成算法和所述第一验证码生成,并发送至所述客户端设备。
[0124]
具体地,所述反向运行预设的图像生成算法对所述图像验证码解密,得到所述第一验证码,包括以下步骤s41-s43;
[0125]
s41,对所述图像验证码进行信息读取,并删除预设的干扰信息,得到十进制数值;
[0126]
s42,将所述十进制数值转换为二进制数值,并对所述二进制数值进行反向按位循环运算,得到初始二进制数值;
[0127]
s43,将所述初始二进制数值进行十进制转换,得到所述第一验证码。
[0128]
需要说明的是,上述步骤s41-s43是反向运行图像生成算法的过程,其运算规则与
步骤s31-s34相反。
[0129]
在本实施例中,对图片进行改造后的k个点的位置是随机抽取的,对二进制数值写入的顺序也是不一样的,顺序读取错误也会使解密出错。因此在客户端设备储存规则的模块中读取图片解密规则,需要对图像验证码中的某些点进行读取,并删除预设的干扰信息。当读取到数值为十进制数时,需要转化为二进制数,然后将二进制数值根据与步骤s32反向的左右循环移位操作,再对应的将k个字节进行组合,得到初始二进制数值。最后将初始二进制数值转化为十进制数,得到所述第一验证码。
[0130]
示例性地,以rgb彩色图片为例,一个点可以代表一个8位二进制数,即一个字节,假设设定的点为4个,即k=4。第一个点的位置为第15行第10列用k1=(15,10)表示,以此类推后面点位置为k2=(20,10)、k3=(45,1)、k4=(2,35)。k1为第一字节信息,k2为第二字节信息,k3为第三字节信息,k4为第四字节信息。rgb彩色图片读取到的是0-255的十进制数值,需要转化为二进制数,将k个字节进行反向左右循环移位操作,若步骤s32的第一个字节是左移五位,只需要反向移动对应的位数即可得到原字节信息,即对第一个字节进行右移五位即可,剩下的字节以此类推。最后将k个字节进行降序排列组合,即k4、k3、k2、k1从大到小排序。排序组合好的数是初始二进制数值,再转化为十进制数即可得到第一验证码。
[0131]
在本实施例中,针对随机生成的背景图片进行改造,交互双方约定好规则,客户端设备直接在图片上读取出认证信息。与动态口令身份认证方法相比,不用循环解密多次、涉及多次递归迭代以及公私钥等,可以达到占用资源少、认证速度快的优点,适用于计算机技术能力和储存资源低的设备。同时,由于是采用对背景图片进行改造写入编码信息的方法生成验证码图片,让人误以为验证码图片中的数字、物体、字符信息是身份认证信息,让攻击者无法利用猜测攻击。
[0132]
此外,采用对第一验证码转换成二进制数后,再进行左右循环移位的操作方法。与totp协议需要进行多次递归迭代以及公私钥相对比,这种移位操作更加方便快捷,不需要进行多次递归迭代以及公私钥相,加密和解密速度都比totp协议的快,并且左右循环移位的规则是可以设定。可以达到认证速度快、不用消耗过多的资源的优点。
[0133]
在一种优选实施方式中,所述方法还包括以下步骤s51-s52:
[0134]
s51,当首次判定所述第二验证码与所述第一验证码不一致时,将所述时间段编号更新为前一个时间的时间段编号,并返回所述对所述客户端设备当前时间、所述时间段编号和所述动态时间间隔进行计算,得到初始第二验证码的步骤,以得到更新后的第二验证码;
[0135]
s52,将更新后的第二验证码与所述第一验证码进行对比。
[0136]
需要说明的是,客户端设备在认证过程中出现失败,可能是刚好在动态时间间隔节点上,即处于这个时间段末尾,到下一个时间段的开始。此时获取到的时间是会变化,客户端设备接收到图片验证码的时候,时间跳到下一个时间段编号,最后使得解密出来的第二验证码是错误的。
[0137]
示例性地,假设循环时间段编号为0、1、2、3....39,动态时间间隔t=90秒,此时服务端设备获取到当前时间中的分钟数为2、秒数为58,通过公式(1)的计算得到j=01。由于时间是会变化的,服务端设备需要将获取到的第一验证码进行处理后得到图片验证码后,再发送到客户端设备中。若服务端设备发送图片验证码的时间中分钟数为3,秒数为0。此时
客户端设备需要基于自身设备的时间生成第二验证码,通过公式(1)计算得到的时间段编号为02,而对服务端设备发送过来的图片验证码进行解密得到第一验证码中的时间段编号为01,从而导致身份认证错误,使客户端设备误以为服务端设备是假冒身份,这种做法是不允许出现的,此时需要执行上述步骤s51-s52。
[0138]
在步骤s51中,当首次判定所述第二验证码与所述第一验证码不一致时,将所述时间段编号更新为前一个时间的时间段编号,并返回所述对所述客户端设备当前时间、所述时间段编号和所述动态时间间隔进行计算,得到初始第二验证码的步骤,以得到更新后的第二验证码。具体地,当出现第一次认证失败后,第二次客户端设备将当前时间段编号循环前移一个时间段编号,例如当前时间段编号为02验证对比失败时,则前移一个时间段编号,即为01,再进行验证对比,也即步骤s52的内容。若对比正确后,继续执行正确的身份认证流程;若是出现验证对比失败后,则判定此服务端设备为假冒服务端设备,后续不接收此服务端设备的信息。
[0139]
在具体实施当中,还可以对物联网中的设备进行更新。其中,管理员可以更新的内容如下:
[0140]
(1)更新服务端设备中约定时间间隔t的范围大小;
[0141]
(2)更新服务端设备中约定加密数的范围大小;
[0142]
(3)更新服务端设备中用户的权限,比如取消增加客户端设备权限,增加删除客户端设备权限、修改客户端设备的密码信息等;
[0143]
(4)更改客户端设备注册时候生成的随机密码;
[0144]
(5)增加或者删除用户和客户端设备。
[0145]
服务端设备更新的内容如下:
[0146]
(1)每天在设定约定时间间隔t的范围中随机抽取一个数值作为当天约定时间间隔,并且发送将此规则至客户端设备;
[0147]
(2)每天在设定约定加密数的范围中随机抽取一个数作为当天的约定加密数,并且发送此规则至客户端设备;
[0148]
(3)更新用户更改后的客户端设备密码信息,发送到客户端设备中进行更新;
[0149]
(4)每天在设定改造验证码图片的行数、列数范围随机不重复抽取p*8个点作为当天验证码图片改造点,并且将此规则发送到客户端设备;
[0150]
客户端设备更新的内容如下:
[0151]
(1)一起接受服务端设备每天更新后的规则;
[0152]
(2)接收由用户在服务端设备中更改客户端设备密码信息,并且将此信息储存起来;
[0153]
用户更新的内容如下:
[0154]
(1)用户可以在服务端设备中修改在注册时候填写的密码;
[0155]
(2)用户可以在服务端设备中修改客户端设备的密码信息,不可修改客户端设备的账户信息。修改后的信息,会由服务端设备发送到客户端设备。
[0156]
在现有技术中,物联网系统中常用的身份认证方式主要有4种,分别为智能卡认证、用户名/密码方式认证、动态口令认证和基于数字证书的身份认证,具体如下:
[0157]
(1)智能卡认证:基于智能卡的身份认证属于通过物理设备进行身份认证的机制。
每个用户持有一张智能卡,智能卡存储用户秘密信息,同时在验证服务器中也存放该秘密信息。在进行认证时,用户输入pin码(personal identification number,个人身份认证码),服务器认证pin码,成功后即可读出智能卡中的秘密信息,进而利用该秘密信息与主机之间进行认证。基于智能卡的认证方式是一种双因素认证方式(pin+智能卡),即使pin码或智能卡单独被窃取,合法用户的身份仍不会被冒充(即不能获得访问权)。
[0158]
(2)用户名/密码方式认证:用户名/密码是最简单也是最常用的身份认证方法,是基于“whatyouknow”的验证手段。每个用户的密码均是由用户自己设定的,只有用户自己知道。只要用户能够正确输入密码,计算机就认为操作者是合法用户。
[0159]
(3)动态口令认证:动态口令的基本认证原理是认证双方使用同一个共享密钥对时间进行密码算法计算,然后比较计算值是否一致,从而进行认证。比如totp算法(time-based one-time password algorithm,基于时间的一次性密码算法)。totp是基于散列的消息认证码(hash-based message authentication code,hmac)的示例,它使用加密哈希函数将密钥与当前时间戳组合在一起以生成一次性密码。由于网络延迟和不同步时钟可能导致密码接收者必须尝试一系列可能的时间来进行身份验证,因此时间戳通常以30秒的间隔增加。
[0160]
(4)基于数字证书的身份认证:数字证书身份认证是基于pki(publickey infrastructure,公钥基础设施)构架的数字证书认证方式。数字证书是由可信任的第三方认证机构颁发的一组包含用户身份信息(密钥)的数据结构,pki体系通过采用加密算法构建了一套完善的流程,身份认证时需要输入证书文件的保护口令。
[0161]
针对上述现有技术(1)-(4),存在以下问题:
[0162]
(1)智能卡认证:由于每次从智能卡中读取的数据均是静态的,通过内存扫描或网络监听等技术很容易截取用户的身份验证信息,并且在设备中需要增加一个智能卡。智能卡容易猜测,且易被攻击,例如采用窥探、字典攻击、穷举尝试、网络数据流窃听、重放攻击等。
[0163]
(2)用户名/密码方式认证:由于密码是静态的数据,在验证过程中需要在计算机内存和网络中传输,而每次验证使用的验证信息都是相同的,容易猜测,且易被攻击,采用窥探、字典攻击、穷举尝试、网络数据流窃听、重放攻击等。因此,从安全性上讲,用户名/密码方式以及智能卡都是极不安全的身份认证方式。
[0164]
(3)动态口令认证:客户端和服务器端的口令生成算法本身采用的是伪随机序列发生器技术,一旦算法被破解将会造成连续泄密。如果客户端与服务器端的时间或次数不能保持良好的同步,就可能发生合法用户无法登录的问题。例如,在同一个哈希有效期的时间长度内,动态密码生成的结果是一样的,但是由于网络的原因,客户端生成密码的时间和服务器接受密码的时间可能差距会很大,导致两个密码不在同一个哈希有效期的时间长度内,所以导致认证失败。这个时候就需要验证系统有一个延时的策略,可以允许验证前几个哈希有效期的时间长度的动态密码。若是允许前几个时间段的话,会使得物联网设备循环解密多次,并且totp协议涉及多次递归迭代以及公私钥,导致资源消耗过大,而物联网场景下计算资源和能量供应都非常有限,无法提供足够的资源和能量支持。
[0165]
(4)基于数字证书的认证:需要增加一个共同信任的第三方机构即ca中心(certificate authority,证书授权中心)签发数字证书,并且这个数字证书是一定的期
限,需要在物联网的身份认证系统增加第三方机构,使身份认证过程过于繁琐。
[0166]
由上述分析可知,在第一类和第二类的身份认证过程中,传输的都是静态的信息。此外,第一类的身份认证在认证过程需要增加一张智能卡,静态的信息在设备身份认证过程中容易被截取信息。第三类的身份认证方法生成的是一串较长无规律的密码,且需要用户输入,一旦输错就要重新操作,可能需要解密多次,涉及多次递归迭代以及公私钥,导致资源消耗过大。第四类方法需要引入第三方机构,第三方机构对设备进行签发数字证书,并且是证书是有一定期限,在物联网设备使用起来较为麻烦。
[0167]
在本发明实施例中,客户端设备会对服务端设备进行身份认证,确定服务端设备身份正确后,再发送处理过的第三验证码和加密数据包至服务端设备,服务端设备再对客户端设备进行身份认证,从而实现交互双方的双向认证。同时,在本发明实施例中,不用循环解密多次、也不涉及多次递归迭代以及公私钥等,具有占用资源少、认证速度快的优点,适用于计算机技术能力和储存资源低的设备。
[0168]
参照图2,本发明第二实施例提供了一种物联网设备身份认证装置,所述装置设于客户端设备中,包括:
[0169]
请求发送模块,用于发送身份认证请求信息至服务端设备,以使所述服务端设备接收所述身份认证请求信息,根据预设的第一加密算法生成第一验证码,并将所述第一验证码发送至所述客户端设备;
[0170]
第一对比模块,用于接收所述第一验证码,并根据所述第一加密算法生成第二验证码,将所述第二验证码与所述第一验证码进行对比;
[0171]
第一判定模块,用于当判定所述第二验证码与所述第一验证码一致时,确定所述服务端设备身份正确;
[0172]
第一加密模块,用于在确定所述服务端设备身份正确后,根据预设的第二加密算法对所述第一验证码进行加密,生成第三验证码;
[0173]
第一发送模块,用于将所述第三验证码和预先配置的加密数据包发送至所述服务端设备,以使所述服务端设备反向运行所述第二加密算法,对接收到的所述第三验证码解密以生成第四验证码,将所述第四验证码与所述第一验证码进行对比,当判定所述第四验证码与所述第一验证码一致时,对接收到的所述加密数据包进行解密得到设备验证信息,当判定所述设备验证信息与所述客户端设备的设备专属信息一致时,确定所述客户端设备身份正确。
[0174]
优选地,所述装置还包括:
[0175]
图像接收模块,用于接收图像验证码,反向运行预设的图像生成算法对所述图像验证码解密,得到所述第一验证码;其中,所述图像验证码由所述服务端设备根据所述图像生成算法和所述第一验证码生成,并发送至所述客户端设备。
[0176]
优选地,所述图像接收模块还用于:
[0177]
对所述图像验证码进行信息读取,并删除预设的干扰信息,得到十进制数值;
[0178]
将所述十进制数值转换为二进制数值,并对所述二进制数值进行反向按位循环运算,得到初始二进制数值;
[0179]
将所述初始二进制数值进行十进制转换,得到所述第一验证码。
[0180]
优选地,所述装置还包括:
[0181]
更新对比模块,用于当首次判定所述第二验证码与所述第一验证码不一致时,将所述时间段编号更新为前一个时间的时间段编号,并返回所述对所述客户端设备当前时间、所述时间段编号和所述动态时间间隔进行计算,得到初始第二验证码的步骤,以得到更新后的第二验证码;
[0182]
将更新后的第二验证码与所述第一验证码进行对比。
[0183]
优选地,所述第一加密模块包括:
[0184]
第一加密单元,用于将预设的加密数增加至所述第一验证码中,生成第三验证码。
[0185]
在本发明实施例中,客户端设备会对服务端设备进行身份认证,确定服务端设备身份正确后,再发送处理过的第三验证码和加密数据包至服务端设备,服务端设备再对客户端设备进行身份认证,从而实现交互双方的双向认证。同时,在本发明实施例中,不用循环解密多次、也不涉及多次递归迭代以及公私钥等,具有占用资源少、认证速度快的优点,适用于计算机技术能力和储存资源低的设备。
[0186]
参照图3,本发明第三实施例提供了一种物联网设备身份认证方法,包括以下步骤s61-s66:
[0187]
s61,接收身份认证请求信息,根据预设的第一加密算法生成第一验证码;其中,所述身份认证请求信息由客户端设备生成并发送至服务端设备;
[0188]
s62,将所述第一验证码发送至所述客户端设备,以使所述客户端设备根据所述第一加密算法生成第二验证码,将所述第二验证码与接收到的所述第一验证码进行对比,当判定所述第二验证码与所述第一验证码一致时,确定所述服务端设备身份正确,在确定所述服务端设备身份正确后,根据预设的第二加密算法对所述第一验证码进行加密生成第三验证码,并将所述第三验证码和预先配置的加密数据包发送至所述服务端设备;
[0189]
s63,接收所述加密数据包和所述第三验证码;
[0190]
s64,反向运行所述第二加密算法,对所述第三验证码解密生成第四验证码,将所述第四验证码与所述第一验证码进行对比;
[0191]
s65,当判定所述第四验证码与所述第一验证码一致时,对所述加密数据包进行解密得到设备验证信息;
[0192]
s66,当判定所述设备验证信息与所述客户端设备的设备专属信息一致时,确定所述客户端设备身份正确。
[0193]
需要说明的是,在开始验证之前,需要对物联网设备中的客户端设备进行注册。在用户注册成功后,在服务端设备中进行用户登录,登录成功后发起客户端设备注册申请。服务端设备根据接收到的客户端设备注册申请信息,返回一个设备专属信息提交界面,用户在此界面输入客户端设备的设备专属信息,例如设备的独立ip地址、机器码等,并将设备专属信息发送至服务端设备。
[0194]
进一步地,服务端设备接收客户端设备发送的设备专属信息并生成专属数据包,采用预设的专属加密算法对所述专属数据包进行加密,生成加密数据包。服务端设备将所述加密数据包发送至所述客户端设备,所述客户端设备接收所述加密数据包,并将加密数据包预先配置并存储至指定位置。其中,专属加密算法由双方提前约定并配置,例如,可以采用数据加密算法(data encryption algorithm,dea),本发明对此不做限定。进一步地,服务端设备还可以基于设备专属信息生成设备专用的程序,并将程序发送至客户端设备。
[0195]
在步骤s61中,客户端设备发送身份认证请求信息至所述服务端设备。服务端设备接收所述身份认证请求信息,根据预设的第一加密算法生成第一验证码,具体过程在步骤s21-s23已做说明,在此不再赘述。
[0196]
在步骤s62中,将所述第一验证码发送至所述客户端设备,客户端设备根据所述第一加密算法生成第二验证码,将所述第二验证码与接收到的所述第一验证码进行对比,当判定所述第二验证码与所述第一验证码一致时,确定所述服务端设备身份正确,在确定所述服务端设备身份正确后,根据预设的第二加密算法对所述第一验证码进行加密生成第三验证码,并将所述第三验证码和预先配置的加密数据包发送至所述服务端设备。
[0197]
在步骤s63中,服务端设备接收所述加密数据包和所述第三验证码。
[0198]
在步骤s64中,反向运行所述第二加密算法,对所述第三验证码解密生成第四验证码,将所述第四验证码与所述第一验证码进行对比。在一种实施方式中,服务端设备接收到客户端设备发送过来的字符串,将所述加密数从所述第三验证码中删除,生成第四验证码。
[0199]
在步骤s65中,服务端设备将解密出来的第四验证码与第一验证码进行对比,当判定所述第四验证码与所述第一验证码一致时,说明对比正确。
[0200]
在步骤s66中,服务端设备再对字符串后面的加密数据包进行解密,从而读取设备验证信息,设备验证信息包括设备的账号和密码。需要说明的是,在判定第四验证码与第一验证码不一致的情况下,服务端设备不会去解密加密数据包,不会获得账号和密码信息。
[0201]
进一步地,当判定所述设备验证信息与所述设备专属信息一致时,则确定客户端设备身份正确,发送认证通过信息至客户端设备。当判定所述设备验证信息与所述设备专属信息不一致时,说明账号和密码验证失败,则发送密码错误信息至客户端设备。
[0202]
在本发明实施例中,客户端设备会对服务端设备进行身份认证,确定服务端设备身份正确后,再发送处理过的第三验证码和加密数据包至服务端设备,服务端设备再对客户端设备进行身份认证,从而实现交互双方的双向认证。同时,在本发明实施例中,不用循环解密多次、也不涉及多次递归迭代以及公私钥等,具有占用资源少、认证速度快的优点,适用于计算机技术能力和储存资源低的设备。
[0203]
参照图4,本发明第四实施例提供了一种物联网设备身份认证装置,所述装置设于服务端设备中,包括:
[0204]
第二加密模块,用于接收身份认证请求信息,根据预设的第一加密算法生成第一验证码;其中,所述身份认证请求信息由客户端设备生成并发送至服务端设备;
[0205]
第二发送模块,用于将所述第一验证码发送至所述客户端设备,以使所述客户端设备根据所述第一加密算法生成第二验证码,将所述第二验证码与接收到的所述第一验证码进行对比,当判定所述第二验证码与所述第一验证码一致时,确定所述服务端设备身份正确,在确定所述服务端设备身份正确后,根据预设的第二加密算法对所述第一验证码进行加密生成第三验证码,并将所述第三验证码和预先配置的加密数据包发送至所述服务端设备;
[0206]
第一接收模块,用于接收所述加密数据包和所述第三验证码;
[0207]
第二对比模块,用于反向运行所述第二加密算法,对所述第三验证码解密生成第四验证码,将所述第四验证码与所述第一验证码进行对比;
[0208]
第一解密模块,用于当判定所述第四验证码与所述第一验证码一致时,对所述加
密数据包进行解密得到设备验证信息;
[0209]
第二判定模块,用于当判定所述设备验证信息与所述客户端设备的设备专属信息一致时,确定所述客户端设备身份正确。
[0210]
优选地,所述第二加密模块包括:
[0211]
时间获取单元,用于根据预设的动态时间间隔和获取到的服务端设备当前时间,生成时间段编号;
[0212]
初始第一验证码生成单元,用于对所述服务端设备当前时间、所述时间段编号和所述动态时间间隔进行计算,得到初始第一验证码;
[0213]
第一验证码生成单元,用于根据预设的验证码位数对所述初始第一验证码进行处理,得到所述第一验证码。
[0214]
优选地,所述装置还包括:
[0215]
图像验证码生成模块,用于根据预设的图像生成算法和所述第一验证码生成图像验证码,并将所述图像验证码发送至所述客户端设备,以使所述客户端设备反向运行所述图像生成算法,对接收到的所述图像验证码进行解密,得到所述第一验证码。
[0216]
优选地,所述图像验证码生成模块包括:
[0217]
进制转换单元,用于将所述第一验证码转换为初始二进制数值;
[0218]
循环运算单元,用于对所述初始二进制数值进行按位循环运算,得到二进制数值;
[0219]
初始图像验证码生成单元,用于将所述二进制数值写入服务端设备预先配置的图像数据中,生成初始图像验证码;
[0220]
图像验证码生成单元,用于将预设的干扰信息增加至所述初始图像验证码中,生成图像验证码。
[0221]
优选地,所述第二对比模块包括:
[0222]
第四验证码生成单元,用于将预设的加密数从所述第三验证码中删除,生成第四验证码。
[0223]
在本发明实施例中,客户端设备会对服务端设备进行身份认证,确定服务端设备身份正确后,再发送处理过的第三验证码和加密数据包至服务端设备,服务端设备再对客户端设备进行身份认证,从而实现交互双方的双向认证。同时,在本发明实施例中,不用循环解密多次、也不涉及多次递归迭代以及公私钥等,具有占用资源少、认证速度快的优点,适用于计算机技术能力和储存资源低的设备。
[0224]
本发明第五实施例提供了一种物联网设备身份认证系统,包括客户端设备和服务端设备,所述客户端设备与所述服务端设备通信连接,所述客户端设备用于执行如第一实施例任意一项所述的物联网设备身份认证方法,所述服务端设备用于执行如第三实施例任意一项所述的物联网设备身份认证方法。
[0225]
需要说明的是,在身份认证过程中,一般是由服务端设备生成图片验证码发送到客户端设备中进行身份认证处理的。在另一种实施例中,服务端设备与客户端设备的身份可以互换,即由客户端设备生成图片验证码发送到服务端设备中进行身份认证处理的。
[0226]
本发明第六实施例提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行第一实施例任意一项所述的物联网设备身份认证方法或第三实施
例任意一项所述的物联网设备身份认证方法。
[0227]
综上,本发明提供了一种物联网设备身份认证方法、装置、系统及计算机可读存储介质,客户端设备会对服务端设备进行身份认证,确定服务端设备身份正确后,再发送处理过的第三验证码和加密数据包至服务端设备,服务端设备再对客户端设备进行身份认证,从而实现交互双方的双向认证。同时,在本发明实施例中,不用循环解密多次、也不涉及多次递归迭代以及公私钥等,具有占用资源少、认证速度快的优点,适用于计算机技术能力和储存资源低的设备。
[0228]
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述客户端设备或所述服务端设备中的执行过程。
[0229]
所称处理器可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述客户端设备或所述服务端设备的控制中心,利用各种接口和线路连接整个所述客户端设备或所述服务端设备的各个部分。
[0230]
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述客户端设备或所述服务端设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0231]
其中,所述客户端设备或所述服务端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0232]
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0233]
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步的详细说明,应当理解,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围。特别指出,对于本领域技术人员来说,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
技术特征:
1.一种物联网设备身份认证方法,其特征在于,由客户端设备执行,包括:发送身份认证请求信息至服务端设备,以使所述服务端设备接收所述身份认证请求信息,根据预设的第一加密算法生成第一验证码,并将所述第一验证码发送至所述客户端设备;接收所述第一验证码,并根据所述第一加密算法生成第二验证码,将所述第二验证码与所述第一验证码进行对比;当判定所述第二验证码与所述第一验证码一致时,确定所述服务端设备身份正确;在确定所述服务端设备身份正确后,根据预设的第二加密算法对所述第一验证码进行加密,生成第三验证码;将所述第三验证码和预先配置的加密数据包发送至所述服务端设备,以使所述服务端设备反向运行所述第二加密算法,对接收到的所述第三验证码解密以生成第四验证码,将所述第四验证码与所述第一验证码进行对比,当判定所述第四验证码与所述第一验证码一致时,对接收到的所述加密数据包进行解密得到设备验证信息,当判定所述设备验证信息与所述客户端设备的设备专属信息一致时,确定所述客户端设备身份正确。2.根据权利要求1所述的物联网设备身份认证方法,其特征在于,所述方法还包括:接收图像验证码,反向运行预设的图像生成算法对所述图像验证码解密,得到所述第一验证码;其中,所述图像验证码由所述服务端设备根据所述图像生成算法和所述第一验证码生成,并发送至所述客户端设备。3.根据权利要求2所述的物联网设备身份认证方法,其特征在于,所述反向运行预设的图像生成算法对所述图像验证码解密,得到所述第一验证码,包括:对所述图像验证码进行信息读取,并删除预设的干扰信息,得到十进制数值;将所述十进制数值转换为二进制数值,并对所述二进制数值进行反向按位循环运算,得到初始二进制数值;将所述初始二进制数值进行十进制转换,得到所述第一验证码。4.根据权利要求1所述的物联网设备身份认证方法,其特征在于,所述根据所述第一加密算法生成第二验证码,包括:根据预设的动态时间间隔和获取到的客户端设备当前时间,生成时间段编号;对所述客户端设备当前时间、所述时间段编号和所述动态时间间隔进行计算,得到初始第二验证码;根据预设的验证码位数对所述初始第二验证码进行处理,得到所述第二验证码。5.根据权利要求4所述的物联网设备身份认证方法,其特征在于,所述方法还包括:当首次判定所述第二验证码与所述第一验证码不一致时,将所述时间段编号更新为前一个时间的时间段编号,并返回所述对所述客户端设备当前时间、所述时间段编号和所述动态时间间隔进行计算,得到初始第二验证码的步骤,以得到更新后的第二验证码;将更新后的第二验证码与所述第一验证码进行对比。6.根据权利要求1所述的物联网设备身份认证方法,其特征在于,所述根据预设的第二加密算法对所述第一验证码进行加密,生成第三验证码,包括:将预设的加密数增加至所述第一验证码中,生成第三验证码。7.一种物联网设备身份认证装置,其特征在于,所述装置设于客户端设备中,包括:
请求发送模块,用于发送身份认证请求信息至服务端设备,以使所述服务端设备接收所述身份认证请求信息,根据预设的第一加密算法生成第一验证码,并将所述第一验证码发送至所述客户端设备;第一对比模块,用于接收所述第一验证码,并根据所述第一加密算法生成第二验证码,将所述第二验证码与所述第一验证码进行对比;第一判定模块,用于当判定所述第二验证码与所述第一验证码一致时,确定所述服务端设备身份正确;第一加密模块,用于在确定所述服务端设备身份正确后,根据预设的第二加密算法对所述第一验证码进行加密,生成第三验证码;第一发送模块,用于将所述第三验证码和预先配置的加密数据包发送至所述服务端设备,以使所述服务端设备反向运行所述第二加密算法,对接收到的所述第三验证码解密以生成第四验证码,将所述第四验证码与所述第一验证码进行对比,当判定所述第四验证码与所述第一验证码一致时,对接收到的所述加密数据包进行解密得到设备验证信息,当判定所述设备验证信息与所述客户端设备的设备专属信息一致时,确定所述客户端设备身份正确。8.一种物联网设备身份认证方法,其特征在于,由服务端设备执行,包括:接收身份认证请求信息,根据预设的第一加密算法生成第一验证码;其中,所述身份认证请求信息由客户端设备生成并发送至服务端设备;将所述第一验证码发送至所述客户端设备,以使所述客户端设备根据所述第一加密算法生成第二验证码,将所述第二验证码与接收到的所述第一验证码进行对比,当判定所述第二验证码与所述第一验证码一致时,确定所述服务端设备身份正确,在确定所述服务端设备身份正确后,根据预设的第二加密算法对所述第一验证码进行加密生成第三验证码,并将所述第三验证码和预先配置的加密数据包发送至所述服务端设备;接收所述加密数据包和所述第三验证码;反向运行所述第二加密算法,对所述第三验证码解密生成第四验证码,将所述第四验证码与所述第一验证码进行对比;当判定所述第四验证码与所述第一验证码一致时,对所述加密数据包进行解密得到设备验证信息;当判定所述设备验证信息与所述客户端设备的设备专属信息一致时,确定所述客户端设备身份正确。9.根据权利要求8所述的物联网设备身份认证方法,其特征在于,所述根据预设的第一加密算法生成第一验证码,包括:根据预设的动态时间间隔和获取到的服务端设备当前时间,生成时间段编号;对所述服务端设备当前时间、所述时间段编号和所述动态时间间隔进行计算,得到初始第一验证码;根据预设的验证码位数对所述初始第一验证码进行处理,得到所述第一验证码。10.根据权利要求8所述的物联网设备身份认证方法,其特征在于,所述方法还包括:根据预设的图像生成算法和所述第一验证码生成图像验证码,并将所述图像验证码发送至所述客户端设备,以使所述客户端设备反向运行所述图像生成算法,对接收到的所述
图像验证码进行解密,得到所述第一验证码。11.根据权利要求10所述的物联网设备身份认证方法,其特征在于,所述根据预设的图像生成算法和所述第一验证码生成图像验证码,包括:将所述第一验证码转换为初始二进制数值;对所述初始二进制数值进行按位循环运算,得到二进制数值;将所述二进制数值写入服务端设备预先配置的图像数据中,生成初始图像验证码;将预设的干扰信息增加至所述初始图像验证码中,生成图像验证码。12.根据权利要求8所述的物联网设备身份认证方法,其特征在于,所述反向运行所述第二加密算法,对所述第三验证码解密生成第四验证码,包括:将预设的加密数从所述第三验证码中删除,生成第四验证码。13.一种物联网设备身份认证装置,其特征在于,所述装置设于服务端设备中,包括:第二加密模块,用于接收身份认证请求信息,根据预设的第一加密算法生成第一验证码;其中,所述身份认证请求信息由客户端设备生成并发送至服务端设备;第二发送模块,用于将所述第一验证码发送至所述客户端设备,以使所述客户端设备根据所述第一加密算法生成第二验证码,将所述第二验证码与接收到的所述第一验证码进行对比,当判定所述第二验证码与所述第一验证码一致时,确定所述服务端设备身份正确,在确定所述服务端设备身份正确后,根据预设的第二加密算法对所述第一验证码进行加密生成第三验证码,并将所述第三验证码和预先配置的加密数据包发送至所述服务端设备;第一接收模块,用于接收所述加密数据包和所述第三验证码;第二对比模块,用于反向运行所述第二加密算法,对所述第三验证码解密生成第四验证码,将所述第四验证码与所述第一验证码进行对比;第一解密模块,用于当判定所述第四验证码与所述第一验证码一致时,对所述加密数据包进行解密得到设备验证信息;第二判定模块,用于当判定所述设备验证信息与所述客户端设备的设备专属信息一致时,确定所述客户端设备身份正确。14.一种物联网设备身份认证系统,其特征在于,包括客户端设备和服务端设备,所述客户端设备与所述服务端设备通信连接,所述客户端设备用于执行如权利要求1至6中任意一项所述的物联网设备身份认证方法,所述服务端设备用于执行如权利要求8至12中任意一项所述的物联网设备身份认证方法。15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如权利要求1至6中任意一项所述的物联网设备身份认证方法或如权利要求8至12中任意一项所述的物联网设备身份认证方法。
技术总结
本发明公开了一种物联网设备身份认证方法、装置、系统及存储介质,方法包括:发送身份认证请求,以使服务端设备生成第一验证码;接收第一验证码并生成第二验证码,当判定第二验证码与第一验证码一致时,确定服务端设备身份正确;对第一验证码进行加密,生成第三验证码;将第三验证码和预先配置的加密数据包发送至服务端设备,以使服务端设备对第三验证码解密生成第四验证码,当判定第四验证码与第一验证码一致时,对加密数据包进行解密得到设备验证信息,当判定设备验证信息与客户端设备的设备专属信息一致时,确定客户端设备身份正确。本方法能实现交互双方的双向认证,提高物联网系统的安全性。统的安全性。统的安全性。
技术研发人员:朱冠华 张清华 文成林 荆晓远 黄权斯 甘梓润
受保护的技术使用者:广东石油化工学院
技术研发日:2021.11.11
技术公布日:2022/3/8