一种基于动态密码生成和匹配的蓝牙门锁系统及开启方法与流程

文档序号:21008066发布日期:2020-06-05 23:18阅读:292来源:国知局
一种基于动态密码生成和匹配的蓝牙门锁系统及开启方法与流程

本申请涉及智能锁技术领域,具体而言,涉及一种基于动态密码生成和匹配的蓝牙门锁系统及开启方法。



背景技术:

目前,身份验证的部署仍较为困难且发展规模有限,大多数的身份验证依赖于管理用户的访问权限,缺乏硬件和软件技术的互操作性。有些解决方案是通过专用技术强行耦合硬件和软件生成令牌,导致成本高,方案采用率不高,以及创新有限。有些解决方案通过让用户设置密码,静态存储在设备中,这种密码很容易被复制和破解,安全系数低。随着网络的发展,网络威胁的迅速增长暴露出静态密码作为主要手段的不足之处。而一次性密码无疑是最简单和最受欢迎的密码之一,且使用一次性密码令牌通常安全性更高。

蓝牙门锁设备是近几年出现的新型智能锁具,这种锁具只需要使用具有蓝牙功能的手持智能设备并搭配相关软件即可被开启。但是现有的蓝牙门锁锁设备中,采用静态密码的不够安全,使用硬件和软件技术耦合生成密码的成本又过高、采用率低。



技术实现要素:

本申请的主要目的在于提供一种基于动态密码生成和匹配的蓝牙门锁系统及开启方法,以解决相关技术中蓝牙门锁设备安全性不够或者成本过高的问题。

为了实现上述目的,第一方面,本申请实施例提供了一种基于动态密码生成和匹配的蓝牙门锁系统。

根据本申请的蓝牙门锁系统包括用户端和设备端,其中:

用户端包括第一存储模块、动态密码生成模块、第一通信模块;

通信模块用于向设备端发送蓝牙连接请求,并将接收到的登入秘钥发送至第一存储模块;

第一存储模块用于存储算法、登入秘钥和时间因子;

动态密码生成模块用于使用第一存储模块存储的算法、登入秘钥和时间因子计算出动态密码;

设备端包括第二通信模块、登入秘钥生成模块、输入模块、第二存储模块、验证密码生成模块、比对模块、门锁模块;

第二通信模块用于接收用户端的蓝牙连接请求,实现用户端和设备端的通信连接;

登入秘钥生成模块用于在接收到用户端的蓝牙连接请求后生成登入秘钥;

第二存储模块用于存储算法、登入秘钥和时间因子;

验证密码生成模块用于使用第二存储模块存储的算法、登入秘钥和时间因子计算出验证密码;

输入模块用于输入用户端生成的动态密码;

比对模块用于比对输入的动态密码和生成的验证密码;

门锁模块用于开启或关闭门锁,门锁模块接收第二通信模块发出的开启命令。

可选的,动态密码和验证密码为使用相同的登入秘钥和时间因子、采用相同的算法计算出来的数字校验码。

可选的,登入秘钥为设备端接收到用户端发送的蓝牙连接请求后获得的随机字符串loginkey。

可选的,时间因子为采用unix时间戳计算出的时间参数。

可选的,用户端和设备端的时间分别维护,并允许5min内的时间误差。

可选的,动态密码和验证密码计算时还包括一个管理员密码参与计算。

第二方面,本申请实施例还提供了一种基于动态密码生成和匹配的蓝牙门锁开启方法,包括以下步骤:

s1:用户端向设备端发送蓝牙连接请求;

s2:设备端与用户端进行匹配,

若匹配成功,进入步骤s3,

若匹配失败,直接结束开锁;

s3:设备端生成登入秘钥并发送至用户端;

s4:用户端根据存储的算法、接收到的登入秘钥和时间因子计算出动态密码;

s5:设备端根据存储的算法、登入秘钥和时间因子计算出验证密码;

s6:将用户端计算出的动态密码在设备端输入;

s7:设备端将输入的动态密码和计算出的验证密码进行比对,

若比对相同,则开锁成功,

若比对不相同,直接结束开锁。

可选的,时间因子为采用unix时间戳计算出的时间参数t,t=(currentunixtime-t0)/x,currentunixtime为当前所在系统的unix时间戳,即从1970年1月1日到当前时间的秒数,t0为起始时间,设为0,x为步长,即动态密码的有效时间,t的长度为8字节。

可选的,用户端和设备端允许5min内的时间误差。

可选的,步骤s4和步骤s5动态密码和验证密码计算过程中,还包括设置一个管理员密码参与运算。

在本申请实施例提供的基于动态密码生成和匹配的蓝牙门锁系统及开启方法中,在用户端和设备端存储相同的算法、登入秘钥和时间因子,使得动态密码会随时间的改变而改变,同时又能保证设备端和用户端密码的一致性,当用户端和设备端同步生成的密码比对相同时即可实现门锁的开启,相较于静态密码或者硬件和软件技术耦合生成密码过程,本发明的一次性随机密码生成方式简单、成本低,且其随机性更高、安全性更好,可避免复制;进而解决了相关技术中现有蓝牙门锁安全性低或者成本高的技术问题。

附图说明

构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请实施例的一种基于动态密码生成和匹配的蓝牙门锁系统结构示意图;

图2是根据本申请实施例的一种基于动态密码生成和匹配的蓝牙门锁开启方法流程图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本申请中,术语“上”、“下”、“内”、“中”、“外”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系。这些术语主要是为了更好地描述本申请及其实施例,并非用于限定所指示的装置、元件或组成部分必须具有特定方位,或以特定方位进行构造和操作。

并且,上述部分术语除了可以用于表示方位或位置关系以外,还可能用于表示其他含义,例如术语“上”在某些情况下也可能用于表示某种依附关系或连接关系。对于本领域普通技术人员而言,可以根据具体情况理解这些术语在本申请中的具体含义。

此外,术语“设置”、“连接”、“设有”、“连通”应做广义理解。例如,“连接”可以是固定连接,可拆卸连接,或整体式构造;可以是机械连接,或电连接;可以是直接相连,或者是通过中间媒介间接相连,又或者是两个装置、元件或组成部分之间内部的连通。对于本领域普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

参见图1,本申请涉及一种基于动态密码生成和匹配的蓝牙门锁系统,包括用户端1和设备端2,其中:

用户端1包括第一存储模块11、动态密码生成模块12、第一通信模块13;

第一通信模块13用于向设备端2发送蓝牙连接请求,并将接收到的登入秘钥发送至第一存储模块11;

第一存储模块11用于存储算法、登入秘钥和时间因子;

动态密码生成模块12用于使用第一存储模块11存储的算法、登入秘钥和时间因子计算出动态密码;

设备端2包括第二通信模块21、登入秘钥生成模块22、输入模块23、第二存储模块24、验证密码生成模块25、比对模块26、门锁模块27;

第二通信模块21用于接收用户端1的蓝牙连接请求,实现用户端1和设备端2的通信连接;

登入秘钥生成模块22用于在接收到用户端1的蓝牙连接请求后生成登入秘钥;

第二存储模块24用于存储算法、登入秘钥和时间因子;

验证密码生成模块25用于使用第二存储模块24存储的算法、登入秘钥和时间因子计算出验证密码;

输入模块23用于输入用户端1生成的动态密码;

比对模块26用于比对输入的动态密码和生成的验证密码;

门锁模块27用于开启或关闭门锁,门锁模块27接收第二通信模块21发出的开启命令。

在本申请的一些实施例中,用户端1可以为带有蓝牙连接方式的手机或电脑,设备端2为蓝牙门锁。初始阶段,用户端1向设备端2发送蓝牙连接请求,设备端2向用户端1发送生成的登入秘钥,可选的,登入秘钥为每次配对时生成的随机字符串loginkey。可以理解的是,本申请loginkey还可以采用其它随机秘钥代替,本申请不做具体限定。

用户端1向设备端2发送蓝牙连接请求并建立连接的过程中,用户端1和设备端2之间经过一个配对过程,这个过程中由设备端2生成一个随机数,并通过安全加密协议混合在其他信息之中发送给用户端,用户端解析后会存储,这个随机数即登入秘钥。每次蓝牙连接都会产生一个不同的登入密码,保证了秘钥的随机性和不可复制的特性,秘钥的传输经过加密且混合在其他数据之中,被抓取并破解的可能极小。

可选的,动态密码和验证密码为使用相同的登入秘钥和时间因子、采用相同的算法计算出来的数字校验码,优选的,密码为8位校验码。作为本申请的一种实施方式,采用哈希算法,时间因子为采用unix时间戳计算出的时间参数。

可选的,用户端和设备端的时间分别维护,并允许5min内的时间误差。当在大于时间误差的时间内输入动态密码来与验证密码进行比对时,比对失效,门锁模块保持门锁关闭,需重新生成密码进行匹配。可以理解的是,本申请所提到的时间误差并不仅限于5min,可以是其它任何设置的误差时间,如4min、6min、7min等,其它的时间误差设置均属于本申请的保护范围。用户端和设备端各有一个时钟,时间差就是这两个时钟之间的误差。当设备端和用户端建立连接时会自动同步时间,时间误差超出范围将无法计算出一致的秘钥。门锁将无法打开,必须同步设备端和用户端的时间才可以。

在本申请实施例提供的基于动态密码生成和匹配的蓝牙门锁系统中,在用户端1和设备端2的第一存储模块11和第二存储模块24中分别存储相同的算法、登入秘钥和时间因子,使得在用户端1和设备端2得到的动态密码和验证密码在经比对模块比对后实现一致性时可对门锁进行开启;同时运用unix时间戳和loginkey,在不同时间进行配对时,获取的密码不同,也即动态密码会随时间改变而改变,实现了密码的随机性,安全性更好,可避免复制。

可选的,在本申请的一些实施例中,动态密码和验证密码计算时还包括一个管理员密码参与计算。具体的,管理员密码参与计算的方法包括但不限于和最后计算出的动态密码和验证密码再进行aes运算或者相加、相乘、相与、相或等方式取8位。

参见图2,基于相同的技术构思,本申请实施例还提供了一种基于动态密码生成和匹配的蓝牙门锁开启方法,包括以下步骤:

s1:用户端向设备端发送蓝牙连接请求;

s2:设备端与用户端进行匹配,

若匹配成功,进入步骤s3,

若匹配失败,直接结束开锁;

s3:设备端生成登入秘钥并发送至用户端;

s4:用户端根据存储的算法、接收到的登入秘钥和时间因子计算出动态密码;

s5:设备端根据存储的算法、登入秘钥和时间因子计算出验证密码;

s6:将用户端计算出的动态密码在设备端输入;

s7:设备端将输入的动态密码和计算出的验证密码进行比对,

若比对相同,则开锁成功,

若比对不相同,直接结束开锁。

本申请的蓝牙门锁开启方法,通过将设备端和用户端通过蓝牙连接,用户端获取设备端的登入秘钥,用户端和设备端再采用相同的算法,根据登入秘钥、时间因子计算分别计算出动态密码和验证密码。用户端将生成的动态密码手动输入在门锁面板上,设备端将获取的动态密码与验证密码进行比对,若相同则控制门锁的开启,若不同则不开锁。本申请的开启方法,实现了一次性密码作为开启密码,大大提高了静态密码的安全性,避免复制;同时采用两组相同的参数和算法分别进行密码计算及配对方式,替代了高成本的硬件和软件技术耦合生成密码的方式,成本低、适用率高。

具体的,在本申请的一些实施例中,步骤s2中用户端和设备端的匹配方式包括:

s201:用户端扫描设备广播包,并通过广播包中解密出来的device_id从服务器拉取对应的secret_key_1,之后与设备端建立连接;

s202:用户端发送通过secret_key_1加密的“获取设备信息”指令到设备端;

s203:设备端根据自身绑定状态选用对应的解密方式解密指令,如果是已绑定状态选用secret_key_4解密指令,如果是未绑定状态选用secret_key_1解密指令,之后响应指令,响应指令采用secret_key_1或者secret_key_4加密,响应内容包含设备产生的srand、设备版本号,协议版本号、设备安全等级以及设备绑定标志和auth_key等;

s204:用户端发起配对请求指令,配对请求指令中包含设备的device_id和login_key,配对指令采用secret_key_2加密;

s205:设备端使用secret_key_2解密配对请求指令,首先判断其中的device_id是否和自身匹配,如果不匹配回复失败,并断开蓝牙连接,如果匹配回复绑定成功,响应指令采用session_key加密。

其中:已绑定的设备通过secret_key_4加密发送“获取设备信息指令”来得到设备的srand。

可选的,在本申请的一些实施例中,时间因子为采用unix时间戳计算出的时间参数t,t=(currentunixtime-t0)/x,currentunixtime为当前所在系统的unix时间戳,即从1970年1月1日到当前时间的秒数,t0为起始时间,设为0,x为步长,即动态密码的有效时间,t的长度为8字节。

可选的,用户端和设备端允许5min内的时间误差。当在大于时间误差的时间内输入动态密码来与验证密码进行比对时,比对失效,门锁模块保持门锁关闭,需重新生成密码进行匹配。可以理解的是,本申请所提到的时间误差并不仅限于5min,可以是其它任何设置的误差时间,如4min、6min、7min等,其它的时间误差设置均属于本申请的保护范围。用户端和设备端各有一个时钟,时间差就是这两个时钟之间的误差。当设备端和用户端建立连接时会自动同步时间,时间误差超出范围将无法计算出一致的秘钥。门锁将无法打开,必须同步设备端和用户端的时间才可以。

可选的,步骤s4和步骤s5动态密码和验证密码计算过程中,还包括设置一个管理员密码参与运算。具体的,管理员密码参与计算的方法包括但不限于和最后计算出的动态密码和验证密码再进行aes运算或者相加、相乘、相与、相或等方式取8位。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1