发明内容
本发明的主要目的为提供一种智能门锁身份认证方法、系统、可读存储介质及移动终端,该智能门锁身份认证方法可防止移动终端与智能门锁之间在进行身份认证的过程中发生身份信息泄露,提高了智能门锁的安全性。
本发明提出一种智能门锁身份认证方法,智能门锁与移动终端通信连接,移动终端与服务器通信连接,该方法包括以下步骤:
移动终端向智能门锁发送关于身份标识的请求信息,其中,身份标识对应智能门锁;
接收并保存智能门锁发送的第一反馈数据,第一反馈数据含有第一随机数和指定的第一身份加密信息,其中,第一身份加密信息对应身份标识;
对第一身份加密信息进行身份验证,判断第一身份加密信息是否合法;
若第一身份加密信息合法,则根据第一令牌信息和第一随机数,生成指定的第二身份加密信息并发送至智能门锁中进行身份验证,其中,第一令牌信息预先保存于移动终端和智能门锁上;
接收智能门锁发送的身份验证结果,并根据身份验证结果执行反馈操作。
进一步地,第一身份加密信息为对应身份标识的第一MD5值,对第一身份加密信息进行身份验证,判断第一身份加密信息是否合法的步骤,包括:
通过预设的MD5算法对预先从服务器中获取到的一个或多个身份标识进行计算,获得一个或多个MD5值;
将第一MD5值与一个或多个MD5值进行对比,查找是否存在与第一MD5相匹配的MD5值;
若存在,则确定第一身份加密信息合法;
若不存在,则确定第一身份加密信息不合法。
进一步地,第二身份加密信息为对应第一令牌信息和第一随机数的第二MD5值,接收智能门锁发送的身份验证结果,并根据身份验证结果执行反馈操作的步骤,包括:
若身份验证结果为第二身份加密信息合法,则向智能门锁发送附带有第二MD5值的配置命令。
进一步地,接收智能门锁发送的身份验证结果,并根据身份验证结果执行反馈操作的步骤,还包括:
若身份验证结果为第二身份加密信息不合法,则接收智能门锁发送的关于验证管理员密码的请求信息;
根据请求信息提示用户输入管理员密码;
获取用户输入的管理员密码,并根据管理员密码和第一随机数生成第三MD5值并发送至智能门锁中进行验证。
进一步地,根据管理员密码和第一随机数生成第三MD5值并发送至智能门锁中进行验证的步骤之后,还包括:
接收智能门锁发送的第二令牌信息,并将第二令牌信息和身份标识发送至服务器中进行令牌信息的刷新。
进一步地,移动终端向智能门锁发送关于身份标识的请求信息的步骤之前,还包括:
获取预先保存在服务器中的对应一个或多个智能门锁的账号绑定信息,账号绑定信息包括第一加密密钥、第一令牌信息以及身份标识;
利用第一加密密钥与智能门锁建立第一加密通信通道。
进一步地,利用第一加密密钥与智能门锁建立第一加密通信通道的步骤之前,还包括:
判断第一加密密钥是否过期;
若第一加密密钥过期,则通过第一加密通信通道与智能门锁按预设规则进行密钥协商,获得第二加密密钥并保存;
将第一加密密钥替换为第二加密密钥,并利用第二加密密钥与智能门锁建立第二加密通信通道。
进一步地,账号绑定信息还包括对应智能门锁的无线Mac地址,判断第一加密密钥是否过期的步骤之前,还包括:
获取当前智能门锁的无线Mac地址;
将当前智能门锁的无线Mac地址与预先从服务器中获取到的一个或多个无线Mac地址进行对比,查找是否存在匹配项;
若不存在匹配项,则与当前智能门锁按预设规则进行密钥协商,获得第一加密密钥并保存,以利用第一加密密钥与当前智能门锁建立第一加密通信通道。
进一步地,接收智能门锁发送的身份验证结果,并根据身份验证结果执行反馈操作的步骤之前,还包括:
检查第一加密密钥是否存在过期更新;
若存在过期更新,则通知服务器将第一加密密钥替换为第二加密密钥。
进一步地,移动终端向智能门锁发送关于身份标识的请求信息的步骤之后,还包括:
接收并保存智能门锁发送的第二反馈数据,其中,第二反馈数据含有第二随机数和门锁信息,门锁信息至少包括第一令牌信息和无线Mac地址;
将门锁信息和自身保存的信息进行汇总,获得汇总数据并发送至服务器中进行激活绑定,其中,汇总数据包括门锁信息、第一加密密钥和用于登录服务器的用户账号信息;
接收服务器发送的身份标识,并根据第二随机数和第一令牌信息生成第四MD5值;
将附带有第四MD5值的身份标识发送至智能门锁进行保存;
接收智能门锁发送的允许进行配置的反馈结果,并根据反馈结果向智能门锁发送附带有第四MD5值的配置命令。
进一步地,接收并保存智能门锁发送的第二反馈数据的步骤之前,还包括:
接收智能门锁发送的关于配置管理员密码的配置请求;
根据配置请求提示用户配置管理员密码;
接收用户输入的管理员密码并发送至智能门锁中进行保存。
进一步地,接收并保存智能门锁发送的第二反馈数据的步骤之前,还包括:
接收智能门锁发送的第二随机数以及关于验证管理员密码的验证请求;
根据验证请求提示用户输入管理员密码;
获取用户输入的管理员密码,并根据管理员密码和第二随机数生成第五MD5值并发送至智能门锁中进行验证。
本发明还提出一种可读存储介质,该可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现前述的智能门锁身份认证方法。
本发明还提出一种移动终端,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现前述的智能门锁身份认证方法。
本发明还提出一种智能门锁身份认证系统,包括智能门锁、服务器以及前述的移动终端。
本发明的有益效果是:本发明的智能门锁身份认证方法在移动终端与智能门锁进行身份认证的过程中,通过实行双重加密和双向身份认证,可防止移动终端与智能门锁之间在进行身份认证的过程中发生身份信息泄露,提高了智能门锁的安全性:
该智能门锁身份认证方法首先利用加密密钥在移动终端与智能门锁之间建立双向的加密通信通道,使得移动终端与智能门锁之间所传输的数据都是经过加密密钥进行加密后的加密数据,这样,即使黑客截获了相关数据,也会因为没有加密密钥而无法获知数据中的内容,因此有效地提高了数据传输的安全性;然后利用指定的第一身份加密信息和第二身份加密信息进行双向的身份认证,使得移动终端在向智能门锁发送配置命令之前,移动终端和智能门锁双方都需要根据对方提供的身份加密信息进行身份认证,只有双方的身份都得到确认后,才允许移动终端向智能门锁发送配置命令,由于第一身份加密信息和第二身份加密信息都是指定的加密信息,因此可有效防止发生身份信息泄露,即使黑客抓取到了相关数据包,也无法对第一身份加密信息和第二身份加密信息进行篡改,因为一旦第一身份加密信息和第二身份加密信息被篡改,则无法通过身份的验证,进而使得移动终端无法对智能门锁进行配置,因此有效提高了智能门锁的安全性;同时,当智能门锁接收到移动终端发送的配置命令时,需要根据MD5值对配置命令的合法性进行验证,只有当配置命令合法时,智能门锁才执行该配置命令,这样,即使黑客篡改或伪造该配置命令,也无法通过MD5值的校验,进而使得智能门锁不会响应该配置命令而执行相关操作,因此进一步提高了智能门锁的安全性。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,本发明提出一种智能门锁身份认证方法,智能门锁与移动终端通信连接,移动终端与服务器通信连接,该方法包括以下步骤:
S11,移动终端向智能门锁发送关于身份标识的请求信息,其中,身份标识对应智能门锁;
S12,接收并保存智能门锁发送的第一反馈数据,第一反馈数据含有第一随机数和指定的第一身份加密信息,其中,第一身份加密信息对应身份标识;
S13,对第一身份加密信息进行身份验证,判断第一身份加密信息是否合法;
若第一身份加密信息合法,则执行S14,根据第一令牌信息和第一随机数,生成指定的第二身份加密信息并发送至智能门锁中进行身份验证,其中,第一令牌信息预先保存于移动终端和智能门锁上;
S15,接收智能门锁发送的身份验证结果,并根据身份验证结果执行反馈操作。
在上述S11中,智能门锁和移动终端之间可通过蓝牙、WIFI等无线通信技术来实现通信连接,而对于移动终端与服务器之间,可通过在移动终端上安装一特定应用(APP)等方式来实现两者之间的通信连接;身份标识是一组由可见字符组成的随机数,是当智能门锁需要在服务器上注册使用时,由服务器下发给智能门锁的唯一身份凭证,即身份标识与智能门锁一一对应,其作用在于,用于验证智能门锁是否已在服务器上注册并激活。具体地,移动终端向智能门锁发送关于身份标识的请求信息,当智能门锁接收到该请求信息时,智能门锁检查自身是否存在该身份标识,并根据检查的结果向移动终端作出相应的反馈。
在上述S12中,具体地,当智能门锁检查到自身存在身份标识时,智能门锁向移动终端发送第一反馈数据,相应地,移动终端接收并保存智能门锁发送的第一反馈数据,该第一反馈数据含有第一随机数和指定的第一身份加密信息,该第一身份加密信息对应身份标识,其中,第一随机数为动态的随机字符串,其特点在于,一旦移动终端与智能门锁断开通信连接后又重新建立通信连接,那么智能门锁所产生的第一随机数均与上一次所产生的第一随机数不同;而第一身份加密信息的作用在于使移动终端验证当前智能门锁身份的合法性。
在上述S13中,当第一身份加密信息合法时,则表明当前智能门锁是移动终端(当前用户)需要进行配置的智能门锁,此时可进入S14进行相关操作;而当第一身份加密信息不合法时,则有两种可能:一种是当前智能门锁已被其他用户注册并激活,使得第一身份加密信息无法通过身份验证,此时当前用户无法对当前智能门锁进行配置;另一种是第一身份加密信息被篡改过或者是伪造的,使得第一身份加密信息无法通过身份验证,此时当前用户无法对当前智能门锁进行配置。在本步骤中,在当前智能门锁是当前用户需要进行配置的智能门锁的前提下,由于第一身份加密信息是指定的(对应身份标识)且经过加密的数据,因此即使黑客抓取到该第一身份加密信息的数据包,也无法对第一身份加密信息进行篡改或者伪造,因为一旦第一身份加密信息被篡改过或者是伪造的,则无法通过身份验证,进而无法继续进行操作。
在一个可选的实施例中,第一身份加密信息为对应身份标识的第一MD5值,具体地,当智能门锁检查到自身存在身份标识,则表明当前智能门锁已在服务器上注册并激活,此时智能门锁生成通过预设的随机数生成算法生成第一随机数并保存,同时通过预设的MD5算法(Message-Digest Algorithm 5,第五代信息摘要算法)对身份标识进行计算,获得第一MD5值,然后将第一随机数和作为第一身份加密信息的第一MD5值发送至移动终端,此时可采用以下方式对第一身份加密信息进行身份验证,判断第一身份加密信息是否合法:
S131,通过预设的MD5算法对预先从服务器中获取到的一个或多个身份标识进行计算,获得一个或多个MD5值;
S132,将第一MD5值与一个或多个MD5值进行对比,查找是否存在与第一MD5相匹配的MD5值;
若存在,则执行S133,确定第一身份加密信息合法;
若不存在,则执行S134,确定第一身份加密信息不合法。
在该实施例中,具体地,例如当移动终端预先从服务器获取到的3个身份标识,则表明当前用户预先在服务器上注册并激活了3个智能门锁,在这3个身份标识中可能存在一个对应当前智能门锁的身份标识,也可能不存在,具体地,当移动终端接收到当前智能门锁发送的第一MD5值和第一随机数时,移动终端通过预设的MD5算法对预先从服务器获取到3身份标识分别进行计算,从而获得3个相应的MD5值,然后将第一MD5值与这3个MD5值逐一进行对比,判断在这3个MD5值中是否存在与第一MD5相匹配的MD5值,若存在,则说明第一身份加密信息合法,即第一MD5值合法,此时可进入S14进行相关操作;若不存,则说明第一身份加密信息不合法,即第一MD5值不合法,此时第一MD5值不合法的原因可能是当前智能门锁已被其他用户注册并激活,也可能是第一MD5值被篡改过。在本实施例中,在当前智能门锁已被当前用户预先在服务器上注册并激活的前提下,由于第一MD5值具有唯一性(与身份标识一一对应)和不可逆性(即在已知MD5算法和身份标识的条件下可计算得到对应身份标识的MD5值,但在已知MD5算法和MD5值条件下,不可通过逆运算获得与MD5值相对应的身份标识),因此即使黑客截获到第一MD5值,也无法对MD5值进行篡改,因为一旦MD5值被篡改过,则无法通过身份验证,进而无法继续进行操作。
在上述S14中,具体地,移动终端通过预设算法对第一令牌信息和第一随机数进行计算,获得指定的第二身份加密信息并发送至智能门锁中,当智能门锁接收到第二身份加密信息时,智能门锁通过相同的预设算法自身保存的第一令牌信息和第一随机数进行计算,获得指定的第三身份加密信息,然后智能门锁将第二身份加密信息与第三身份加密信息进行比较,判断第二身份加密信息与第三身份加密信息是否一致,若一致,则向移动终端发送第二身份加密信息合法的身份验证结果,此时允许移动终端对智能门锁进行配置;若不一致,则说明智能门锁接收到的第二身份加密信息被篡改过或者是伪造的,此时向移动终端发送第二身份加密信息不合法的身份验证结果,不允许移动终端对智能门锁进行配置。
在一个可选的实施例中,第二身份加密信息为对应第一令牌信息和第一随机数的第二MD5值,接收智能门锁发送的身份验证结果,并根据身份验证结果执行反馈操作的步骤,包括:
S151,若身份验证结果为第二身份加密信息合法,则向智能门锁发送附带有第二MD5值的配置命令。
在该实施例中,具体地,当移动终端判断出第一身份加密信息合法时,移动终端通过预设的MD5算法对已保存的第一令牌信息和第一随机数进行计算,获得第二MD5值并发送至智能门锁中,当智能门锁接收到移动终端发送的第二MD5值时,智能门锁通过预设的MD5算法对自身保存的第一令牌信息和第一随机数进行计算,获得第六MD5值并将其与第二MD5值进行比较,判断第六MD5值与第二MD5值是否一致,若一致,则向移动终端发送第二身份加密信息合法(即第二MD5值合法)的身份验证结果;若不一致,则说明智能门锁接收到的第二MD5值被篡改过,此时向移动终端发送第二身份加密信息不合法(即第二MD5值合法)的身份验证结果。当移动终端接收到的身份验证结果为第二身份加密信息合法时,说明当前智能门锁允许移动终端对其进行配置,此时移动终端向智能门锁发送附带有第二MD5值的配置命令,其中,配置命令包括修改开锁密码、添加指纹、删除智能门锁本地信息等用于对智能门锁进行配置的指令,可以是一个,也可以是多个,对此不作具体的限制;相应地,当智能门锁接收到移动终端发送的附带有第二MD5值的配置命令时,在执行该配置命令之前,智能门锁先验证第二MD5值是否合法,若合法,则执行该配置命令,若不合法,这说明该配置命令被篡改过或是伪造的,此时不执行该配置命令;在本实施例中,由于配置命令附带有第二MD5值,因此即使黑客截获到该配置命令,也无法对该配置命令进行篡改,因为一旦该配置命令被篡改过,那么附加于该配置命令上的第二MD5值也会随之发生改变,进而无法通过身份验证,从而使得智能门锁不会响应该配置命令而执行相关操作,因此保证了数据的可靠性和安全性,进而保证了智能门锁的安全性。
在一个可选的实施例中,接收智能门锁发送的身份验证结果,并根据身份验证结果执行反馈操作的步骤,还包括:
S152,若身份验证结果为第二身份加密信息不合法,则接收智能门锁发送的关于验证管理员密码的请求信息;
S153,根据请求信息提示用户输入管理员密码;
S154,获取用户输入的管理员密码,并根据管理员密码和第一随机数生成第三MD5值并发送至智能门锁中进行验证。
在该实施例中,具体地,当智能门锁判断出第六MD5值与第二MD5值不一致时,智能门锁向移动终端发送第二身份加密信息不合法的身份验证结果以及关于验证管理员密码的请求信息,相应地,当移动终端接收到的身份验证结果为第二身份加密信息不合法时,则说明当前智能门锁不允许移动终端对其进行配置,此时移动终端根据接收到的请求信息提示当前用户输入管理员密码,当前用户输入管理员密码后,移动终端通过预设的MD5算法对管理员密码和第一随机数进行计算,获得第三MD5值并发生至智能门锁中,当智能门锁接收到移动终端发送的第三MD5值时,智能门锁通过预设的MD5算法对自身保存的第一随机数和管理员密码进行计算,获得第七MD5值并将其与第三MD5值进行比较,判断第七MD5值与第三MD5值是否一致,若一致,则说明管理员密码验证成功,此时智能门锁允许移动终端对其进行配置;若不一致,则说明管理员密码验证不成功,此时智能门锁向移动终端发送管理员密码验证失败的通知,移动终端可根据该通知提示用户重新输入管理员密码进行验证,若管理员密码验证失败次数过多,则智能门锁向移动终端发送管理员密码验证失败次数过多的消息,移动终端可根据该消息提示用户等待一段时间后再重新输入管理员密码进行验证,直到管理员密码验证成功为止。
优选地,根据管理员密码和第一随机数生成第三MD5值并发送至智能门锁中进行验证的步骤之后,还包括:
S155,接收智能门锁发送的第二令牌信息,并将第二令牌信息和身份标识发送至服务器中进行令牌信息的刷新。
在该实施例中,具体地,当管理员密码验证成功时(即当第七MD5值与第三MD5值一致时),智能门锁重新生成对应管理员密码的第二令牌信息并保存,同时将第二令牌信息发送给移动终端,相应地,当移动终端接收到智能门锁发送的第二令牌信息时,移动终端将该第二令牌信息和预先从服务器中获取到的对应当前智能门锁的身份标识上传至服务器,当服务器接收到移动终端返回的身份标识和第二令牌信息时,服务器根据身份标识找到对应当前智能门锁的第一令牌信息,然后将第一令牌信息替换为第二令牌信息,以刷新当前门锁对应的令牌信息,这样在下一次进行第二身份加密信息的验证(即对应上述S14的相关原理过程)或者对智能门锁进行配置(即对应上述S151的相关原理过程)时,则利用第二令牌信息进行相关操作(如生成第二身份加密信息),因此即使第一令牌信息泄露了,也无法利用第一令牌信息完成相关身份验证,从而进一步提高了智能门锁的安全性。进一步地,当移动终端将第二令牌信息和身份标识发送至服务器中进行令牌信息的刷新后,此时移动终端可对当前智能门锁进行配置,具体地,移动终端通过预设的MD5算法对第二令牌信息和第一随机数进行计算,获得对应第二令牌信息和第一随机数的MD5值,然后移动终端将附带有该MD5值的配置命令发送至智能门锁中进行相关操作,相关操作与上述S151的相关原理过程类似,对此不再赘述。
具体地,移动终端向智能门锁发送关于身份标识的请求信息的步骤之前,还包括:
S09,获取预先保存在服务器中的对应一个或多个智能门锁的账号绑定信息,账号绑定信息包括第一加密密钥、第一令牌信息以及身份标识;
S10,利用第一加密密钥与智能门锁建立第一加密通信通道。
在该实施例中,具体地,可通过在移动终端上安装一特定应用(APP)来实现移动终端与服务器之间的通信连接,对智能门锁进行配置之前,用户可通过预先注册的APP账号或者第三方应用账号登入APP进行使用,登录账号后,移动终端向服务器请求此账号的绑定信息,服务器响应移动终端的请求返回此账号的绑定信息,由于该账号可能预先绑定了一把或多把智能门锁,因此登录账号后用户可在指定的应用界面上看到一个或多个智能门锁的账号绑定信息,其中,每个智能门锁的账号绑定信息均包括有第一加密密钥、第一令牌信息和身份标识。
当移动终端通过蓝牙或WIFI等方式与当前智能门锁建立通信连接后,移动终端利用第一加密密钥与智能门锁建立第一加密通信通道,相应地,当前智能门锁也利用预先保存于自身的第一加密密钥与移动终端建立第一加密通信通道,实现双向加密,这样可使得此后移动终端与智能门锁之间所传输的数据都是经过第一加密密钥进行加密后的加密数据,即第一加密通信通道是双向的,第一加密通信通道一旦建立,移动终端向智能门锁发送的数据都是经过第一加密密钥进行加密过的,当智能门锁接收到移动终端发送的数据时,智能门锁需要利用保存的第一加密密钥对该数据进行解密才能获知该数据中的内容信息,同理,当移动终端接收到智能门锁发送的数据时,移动终端也需要利用第一加密密钥对该数据进行解密才能获知其中的内容信息,因此在后续移动终端与智能门锁进行双重身份认证的过程中,以及移动终端对智能门锁进行配置的过程中,第一反馈数据、第二身份加密信息和配置命令都是经过第一加密密钥进行加密过的,其中,第一随机数相当于进行了一重加密,第一身份加密信息、第二身份加密信息和配置命令相当于进行了双重加密,因此,即使黑客抓取到了移动终端与智能门锁之间所传输的数据包,也会因为没有加密密钥而无法获知数据中的内容,因此通过在移动终端与智能门锁建立通信连接后,利用第一加密密钥建立双向的第一加密通信通道,可有效保障数据传输的安全性,从而进一步提高了智能门锁的安全性。
参照图2,具体地,利用第一加密密钥与智能门锁建立第一加密通信通道的步骤之前,还包括:
S10a,判断第一加密密钥是否过期;
若第一加密密钥过期,则执行S10b,通过第一加密通信通道与智能门锁按预设规则进行密钥协商,获得第二加密密钥并保存;
S10c,将第一加密密钥替换为第二加密密钥,并利用第二加密密钥与智能门锁建立第二加密通信通道。
在该实施例中,具体地,第一加密密钥上附加有时间戳(即第一加密密钥生成的时间),在建立第一加密通信通道之前,移动终端通过对第一加密密钥上的时间戳进行检测,判断第一加密密钥是否过期(此时,智能门锁也同步进行相同的操作),例如,第一加密密钥上的时间戳为2018年11月11日11时11分11秒,预设有效期为7天,移动终端获取到当前时间2018年11月20日12时12分12秒,则移动终端可据此判断出第一加密密钥已过期,此时需要对第一加密密钥进行更新,具体地,密钥协商的过程如下:
当判断出第一加密密钥已过期时,移动终端和智能门锁各自生成一对密钥对,例如移动终端生成一对密钥对:公钥A和私钥a,智能门锁生成一对密钥对:公钥B和私钥b,然后移动终端利用第一加密密对公钥A进行加密后发送给智能门锁,同时智能门锁也利用第一加密密对公钥B进行加密后发送给移动终端,分别对加密后的公钥A和公钥B进行解密后,移动终端利用预设的ECDH算法按照ECDH密钥交换原理对公钥B和私钥a进行计算,获得第二加密密钥并保存,同理,智能门锁利用预设的ECDH算法按照ECDH密钥交换原理对公钥A和私钥b进行计算,获得相同的第二加密密钥并保存。
协商出第二加密密钥后,移动终端和智能门锁均将自身保存的第一加密密钥替换为第二加密密钥(此时第二加密密钥还未上传至服务器中进行加密密钥的刷新),随后移动终端利用第二加密密钥与智能门锁建立第二加密通信通道,相应地,智能门锁利用第二加密密钥与移动终端建立第二加密通信通道,实现双向加密;在该实施例中,通过对加密密钥进行定时更新,进一步提高了智能门锁的安全性。
参照图2,具体地,账号绑定信息还包括对应智能门锁的无线Mac地址,判断第一加密密钥是否过期的步骤之前,还包括:
S10a1,获取当前智能门锁的无线Mac地址;
S10a2,将当前智能门锁的无线Mac地址与预先从服务器中获取到的一个或多个无线Mac地址进行对比,查找是否存在匹配项;
若不存在匹配项,则执行S10a3,与当前智能门锁按预设规则进行密钥协商,获得第一加密密钥并保存,以利用第一加密密钥与当前智能门锁建立第一加密通信通道。
在该实施例中,具体地,当移动终端通过蓝牙或WIFI等方式与当前智能门锁建立通信连接时,移动终端先获取当前智能门锁的无线Mac地址(如智能门锁的蓝牙Mac地址),然后将当前智能门锁的无线Mac地址与预先从服务器中获取到的一个或多个无线Mac地址进行对比,查找是否存在匹配项,若存在,则说明当前智能门锁已在服务器上注册并激活,同时还与当前所使用的账号进行了绑定;若不存在,则按照上述密钥协商过程协商出第一加密密钥,以利用第一加密密钥建立第一加密通信通道,实现双向加密,同时,以便后续若智能门锁没有被其它用户进行绑定时,则将智能门锁与当前账号在服务器上进行绑定激活生成对应的账号绑定信息。
优选地,接收智能门锁发送的身份验证结果,并根据身份验证结果执行反馈操作的步骤之前,还包括:
S15a,检查第一加密密钥是否存在过期更新;
若存在过期更新,则执行S15b,通知服务器将第一加密密钥替换为第二加密密钥。
在该实施例中,具体地,每次在移动终端向智能门锁发送配置命令之前,移动终端先检查第一加密密钥是否存在过期更新,即移动终端是否存在将第一加密密钥替换为第二加密密钥的情况,若存在,则通知服务器将对应当前智能门锁的账号绑定信息中的第一加密密钥替换为第二加密密钥,以便下次移动终端可从服务器中获取到更新后的第二加密密钥进行相关操作(即建立第二加密通信通道)。
具体地,移动终端向智能门锁发送关于身份标识的请求信息的步骤之后,还包括:
S16,接收并保存智能门锁发送的第二反馈数据,其中,第二反馈数据含有第二随机数和门锁信息,门锁信息至少包括第一令牌信息和无线Mac地址;
S17,将门锁信息和自身保存的信息进行汇总,获得汇总数据并发送至服务器中进行激活绑定,其中,汇总数据包括门锁信息、第一加密密钥和用于登录服务器的用户账号信息;
S18,接收服务器发送的身份标识,并根据第二随机数和第一令牌信息生成第四MD5值;
S19,将附带有第四MD5值的身份标识发送至智能门锁进行保存;
S20,接收智能门锁发送的允许进行配置的反馈结果,并根据反馈结果向智能门锁发送附带有第四MD5值的配置命令。
在上述S16中,具体地,当智能门锁检查到自身不存在身份标识时,则说明当前智能门锁还没在服务器上注册并激活,此时智能门锁向发送移动终端发送第二反馈数据,以便在服务器上与当前账号进行绑定激活,其中,第二反馈数据含有第二随机数和门锁信息,门锁信息包括第一令牌信息、无线Mac地址、当前智能门锁的型号、当前智能门锁的唯一硬件ID等。
在上述S17中,具体地,当移动终端接收到智能门锁发送的第二反馈数据时,移动终端将第二反馈数据中的门锁信息、当前使用的用户账号信息以及前面协商出来的第一加密密钥汇总成汇总数据并发送至服务器中,同时向服务器发送关于激活绑定的请求,当服务器接收到该请求和汇总数据时,服务器将汇总数据与当前用户账号进行绑定,从而获得对应当前智能门锁的账号绑定信息。
在上述S18中,具体地,当获得对应当前智能门锁的账号绑定信息后,服务器根据账号绑定信息生成并保存对应当前智能门锁的身份标识并发送至移动终端,当移动终端接收到服务器下发的身份标识时,移动终端通过预设的MD5算法对第二随机数和第一令牌信息计算,获得第四MD5值,以便后续进行相关操作。
在上述S19中,具体地,获得第四MD5值和身份标识后,移动终端将附带有第四MD5值的身份标识发送至智能门锁,当智能门锁接收到该身份标识时,智能门锁先验证第四MD5值是否合法(具体验证过程与前述相关MD5值的验证过程类似,此处不再赘述),若第四MD5值合法,则智能门锁保存该身份标识,否则不保存。
具体地,接收并保存智能门锁发送的第二反馈数据的步骤之前,还包括:
S16a1,接收智能门锁发送的关于配置管理员密码的配置请求;
S16a2,根据配置请求提示用户配置管理员密码;
S16a3,接收用户输入的管理员密码并发送至智能门锁中进行保存。
在该实施例中,具体地,当智能门锁检查到自身不存在身份标识时,在智能门锁向发送移动终端发送第二反馈数据之前,智能门锁先检查自身是否已配置管理员密码,若未配置管理员密码,智能门锁生成一个随机数(即第二随机数)并保存,同时向移动终端发送关于配置管理员密码的配置请求(此时,可以将第二随机数一并发送给移动终端,也可以在后续再发送),当移动终端接收到该配置请求时,移动终端响应该配置请求提示用户配置管理员密码,用户输入管理员密码后,移动终端将用户输入的管理员密码发送至智能门锁,智能门锁接收该管理员密码并保存,同时生成对应管理员密码的第一令牌信息并保存,以便后续将第一令牌信息上传至服务器进行保存。
具体地,接收并保存智能门锁发送的第二反馈数据的步骤之前,还包括:
S16b1,接收智能门锁发送的第二随机数以及关于验证管理员密码的验证请求;
S16b2,根据验证请求提示用户输入管理员密码;
S16b3,获取用户输入的管理员密码,并根据管理员密码和第二随机数生成第五MD5值并发送至智能门锁中进行验证。
在该实施例中,当智能门锁检查到自身不存在身份标识时,在智能门锁向发送移动终端发送第二反馈数据之前,智能门锁先检查自身是否已配置管理员密码,若已配置管理员密码,则说明用户已在智能门锁本地配置了管理员密码,但还未将该智能门锁在服务器上进行激活绑定,此时智能门锁生成一个随机数(即第二随机数)并保存,同时向移动终端发送该第二随机数以及关于验证管理员密码的验证请求,当移动终端接收到该验证请求时,移动终端响应该验证请求提示用户输入管理员密码,用户输入管理员密码后,移动终端通过预设的MD5算法对管理员密码和第二随机数进行计算,获得第五MD5值并发生至智能门锁,智能门锁接收该第五MD5值并验证该第五MD5值是否合法(具体验证过程与前述相关MD5值的验证过程类似,此处不再赘述),若第五MD5值合法,则智能门锁生成对应管理员密码的第一令牌信息并保存,以便后续将第一令牌信息上传至服务器进行保存;若不合法,则说明管理员密码验证不成功,此时智能门锁向移动终端发送管理员密码验证失败的通知,移动终端可根据该通知提示用户重新输入管理员密码进行验证,若管理员密码验证失败次数过多,则智能门锁向移动终端发送管理员密码验证失败次数过多的消息,移动终端可根据该消息提示用户等待一段时间后再重新输入管理员密码进行验证,直到管理员密码验证成功为止。
因此,本发明的智能门锁身份认证方法在移动终端与智能门锁进行身份认证的过程中,通过实行双重加密和双向身份认证,可防止移动终端与智能门锁之间在进行身份认证的过程中发生身份信息泄露,提高了智能门锁的安全性:
该智能门锁身份认证方法首先利用加密密钥在移动终端与智能门锁之间建立双向的加密通信通道,使得移动终端与智能门锁之间所传输的数据都是经过加密密钥进行加密后的加密数据,这样,即使黑客截获了相关数据,也会因为没有加密密钥而无法获知数据中的内容,因此有效地提高了数据传输的安全性;然后利用指定的第一身份加密信息和第二身份加密信息进行双向的身份认证,使得移动终端在向智能门锁发送配置命令之前,移动终端和智能门锁双方都需要根据对方提供的身份加密信息进行身份认证,只有双方的身份都得到确认后,才允许移动终端向智能门锁发送配置命令,由于第一身份加密信息和第二身份加密信息都是指定的加密信息,因此可有效防止发生身份信息泄露,即使黑客抓取到了相关数据包,也无法对第一身份加密信息和第二身份加密信息进行篡改,因为一旦第一身份加密信息和第二身份加密信息被篡改,则无法通过身份的验证,进而使得移动终端无法对智能门锁进行配置,因此有效提高了智能门锁的安全性;同时,当智能门锁接收到移动终端发送的配置命令时,需要根据MD5值对配置命令的合法性进行验证,只有当配置命令合法时,智能门锁才执行该配置命令,这样,即使黑客篡改或伪造该配置命令,也无法通过MD5值的校验,进而使得智能门锁不会响应该配置命令而执行相关操作,因此进一步提高了智能门锁的安全性,而且,从智能门锁的激活绑定到移动终端对智能门锁进行配置的整个过程中,通信链路上只进行了一次管理员密码的传输(即上述S16a3的相关过程),而且,管理员密码是经过第一加密密钥进行加密过的,而且第一加密密钥并未在通信链路上进行过传输,因此黑客很难获知第一加密密钥,进而保证了管理员密码传输的安全性,从而保证了智能门锁的安全性,因此,理论上,如果黑客没有在用户进行管理员密码的配置时获取到管理员密码,那么黑客将无法冒充用户对智能门锁进行配置。
本发明还提出一种可读存储介质,该可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例中的智能门锁身份认证方法。
本发明还提出一种移动终端,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一实施例中的智能门锁身份认证方法。
本发明还提出一种智能门锁身份认证系统,包括上述任一实施例中所述的智能门锁、服务器以及的移动终端。
本领域技术人员可以理解,本发明实施例所述的移动终端为上述所涉及用于执行本申请中所述方法中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其内的计算机程序或应用程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存储器)、EPROM(Erasable Programmable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读存储介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。
本技术领域技术人员可以理解,这里所使用的服务器,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云。在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。在本发明的实施例中,服务器与移动终端之间可通过任何通信方式实现通信,包括但不限于,基于3GPP/4GPP/5GPP、LTE、WIMAX的移动通信、基于TCP/IP、UDP协议的计算机网络通信。
本技术领域技术人员可以理解,本发明上述实施例中的“第一、第二、第三,……”不代表具体的数量及顺序,仅仅是用于对名称的区分。
本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。