一种基于动态密码的电子密码锁认证方法与流程

文档序号:16324589发布日期:2018-12-19 05:51阅读:548来源:国知局
一种基于动态密码的电子密码锁认证方法与流程

本发明涉及电子密码锁安全控制领域,尤其涉及一种基于动态密码的电子密码锁认证方法。

背景技术

电子密码锁是一种通过电子系统输入密码并与设置的密码比对,由机电执行机构控制柜门(锁舌)启闭的锁具。随着物质财富的日益增长,人们对电子密码锁的安全性要求越来越高。红外线遥控电子密码锁、基于无线电遥控电子密码锁、基于远程控制和三维运动的密码锁,这些密码锁都在一定程度上提高了安全性,但大都是采用静态密码的方式,其开锁密码在一定周期内保持不变,但具备修改开锁密码的功能。这种方式存在较大的安全隐患:

一是密码强度不够。密码锁用户一般采用位数较短的密码。如果采用过长的密码对用户来说记忆有难度。

二是静态密码容易被盗用。为方便使用,大部分的静态密码均采用生日日期等特征显著的密码,非常容易被猜测并破解。

上述提到的这些缺陷已经成为了急需解决的技术问题。



技术实现要素:

本发明针对上述现有技术中存在的问题,提供了一种基于动态密码的电子密码锁认证方法,该电子密码锁采用动态密码,密码依据安全算法自动生成,一次一个密码,使用者无法预知,每次使用的密码均不相同,避免了他人的盗窃和猜测。因此设计了一种使用动态密码方式的电子密码锁系统,可以实时地生成动态密码,以单片机为控制核心的电子密码锁会对输入的密码进行验证判断其合法性,实现对锁的“一次一密”控制,并具有供用户查询开锁记录、显示开锁信息,显不当前日期时间、检测震动等多种功能,具有简单实用的特点,有很高的可靠性。

本发明采用了如下技术方案:

一种基于动态密码的电子密码锁认证方法,其特征在于,该方法包括如下步骤:

步骤1,用户设备向后台服务器发送开锁请求,所述开锁请求中携带有设备标识、同步值以及当前用户选择的预设规则编号;

步骤2,后台服务器接收所述开锁请求并获取所述开锁请求中的设备标识,后台服务器基于该设备标识确定该用户设备是否属于已注册的有权限设备,若是,则执行步骤3,若否,则提示用户没有操作权限;

步骤3,后台服务器根据从所述开锁请求中获取的所述设备标识查找并获取关联存储的预设规则信息和安全码,后台服务器获取所述开锁请求中携带的所述当前用户选择的预设规则编号,并根据获取的所述关联存储的预设规则信息确定所述预设规则编号所对应的预设规则;

步骤4,后台服务器使用所述安全码和所述同步值来生成动态密码,并使用确定的所述预设规则编号所对应的预设规则对生成的所述动态密码进行处理,将处理后的所述动态密码发送给电子密码锁,再使用所述安全码对处理后的所述动态密码进行加密,将生成的密文发送给用户设备;

步骤5,用户设备从后台服务器接收所述生成的密文,并使用用户设备的安全码对密文进行解密,以得到动态密码,用户使用得到的所述动态密码进行开锁操作。

进一步的,该开锁请求消息是由该设备在开锁请求指令时发送,该开锁请求指令由用户通过指定操作触发。

进一步的,所述指定操作包括按键操作或者扫描二维码。

进一步的,所述后台服务器基于该设备标识确定该用户设备是否属于已注册的有权限设备,具体包括:后台服务器中预先存储有自身所管理的所有已注册的有权限用户设备的设备标识,后台服务器接收到该开锁请求消息后,从存储的所有设备标识中查询是否包括该设备标识,如果存储的所有设备标识中包括该设备标识,则可以确定该设备属于自身所管理的已注册的有权限设备。

进一步的,将用户在向后台服务器注册时随用户注册请求发送给后台服务器的安全码作为密钥种子,与所述开锁请求中携带的同步值组成的字符串作为sha256算法的输入,产生动态密码。

进一步的,所述同步值是由用户设置的,长度为3的数字字符串。

进一步的,所述步骤5之后还包括步骤6,电子密码锁将自身从后台服务器获得的动态密码与用户输入的动态密码进行比较,若是匹配成功就执行开锁动作。

进一步的,所述步骤6之后还包括步骤7,存储当前的日期时间作为开锁记录可供查询,若是不满足匹配条件就提示重新输入密码,如果连续三次输入密码错误则锁定键盘,并发出声光报警。

本发明的有益效果是:针对目前国内大多数电子密码锁采用静态密码的方式,安全可靠性不高,而少数安全性较高的锁成本又很高的现状,设计了基于单片机的低功耗动态密码电子密码锁。该系统实现了“一次一密”的动态密码方式,且功耗很低,大约可持续使用3-4年。此外该电子密码锁具有易开发,成本低的特点。因此该电子密码锁实用性很强,可应用于住宅、办公室的保险箱以及档案柜等。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1是本发明实施环境的示意图;

图2是本发明的认证方法的流程图。

以下结合附图及实施例对本发明作进一步说明。

具体实施方式

下面结合具体实施方式对本发明作进一步详细描述:

图1是本发明实施环境的示意图。在该实施环境中主要包括电子密码锁110、后台服务器120和用户设备130。其中,该用户设备130和电子密码锁110均可以通过有线网络或者无线与该后台服务器120连接。

电子密码锁上包括显示模块、键盘模块、通信模块、电源模块、处理器以及存储模块。其中,显示模块与处理器相连,接收来自处理器的显示数据,用于显示提示信息,引导用户按照一定的顺序和步骤完成电子密码锁的控制操作;键盘模块与处理器相连,将用户的键盘输入转换为键值后发送给处理器;通信模块与处理器相连,用于所述电子密码锁与后台服务器之间的数据交互;处理器分别与显示模块、键盘模块、通信模块以及存储模块相连;存储模块与处理器相连,用于存储开锁记录。

用户设备上安装有与电子密码锁控制相关的app,用户通过用户设备上安装的app与后台服务器建立通信。用户设备配置有显示装置,该显示装置用于显示各种信息,此外,用户设备配置有通信装置,该通信装置用于发送请求消息并接收请求响应。在实际实现过程中,用户设备可以借助外接输入设备或者虚拟输入设备实现信息的输入。例如,通过显示界面向用户展示虚拟,用户即可在该显示界面中输入相应的按键信息,该用户设备可以为诸如手机、平板电脑、计算机之类的设备或者其他类型的移动终端,本发明实施例对此不作限定。

该后台服务器中包括有发送器、接收器、存储器、处理器以及通信总线。本领域技术人员可以理解,后台服务器的结构并不构成对后台服务器的限定,可以包括比上述更多或更少的部件,或者组合某些部件,或者不同的部件布置,本申请实施例对此不做限定。

该发送器可以用于向用户设备或终端发送数据和/或信令等。该接收器可以用于接收该用户设备或终端发送的数据和/或信令等。该存储器中保存有从运营商处获取的设备标识。并且,该存储器也可以用于存储用于执行该用户动态密码生成方法的一个或多个运行程序和/或模块。在具体实现中,该存储器还可以用于调用外部软件系统中的多个运行程序和/或模块。

用户在对电子密码锁进行有效控制之前,需要先通过该app向后台服务器进行用户注册,用户注册的流程具体步骤如下:

步骤1,用户设备向后台服务器发送用户注册请求,后台服务器接收设备发送的用户注册请求消息,该用户注册请求消息中携带有用户设备标识和安全码。

其中,该设备标识可以用于唯一标识一个设备,例如,该设备标识可以为设备的身份(identification,id)信息、用户的手机号码等。需要说明的是,当该设备属于客户端设备类型时,该设备标识也可以为客户端标识,本发明实施例对此不作限定。在这里,安全码通常为初始安全码,该初始安全码是由供应商在该设备出厂时设置和提供,例如该安全码可以为“0000”。

该用户注册请求消息可以是由该设备在接收到注册请求指令时发送,该认证请求指令可以由用户触发,该用户可以通过指定操作触发,该指定操作可以为按键操作、扫描二维码等等。之后,该设备基于该设备标识和该安全码生成注册请求消息,并向认证服务器发送该注册请求消息。需要说明的是,基于按键操作、扫描二维码等方式发起注册请求的过程可以参见相关技术,本发明实施例不对具体的触发方式进行限定。

步骤2,后台服务器提取用户注册请求中携带的用户设备标识和安全码,对用户设备标识和安全码进行关联存储,并向用户设备返回请求响应消息,在所述请求响应消息中携带有至少一个预设规则。

该对用户设备标识和安全码进行关联存储可以是将用户设备标识和安全码保存在同一服务器中,也可以是以映射的方式将用户设备标识和安全码保存在服务器集群的不同的位置,本发明实施例不对具体的关联存储方式进行限定。

所述至少一个预设规则可以预先存储在后台服务器的存储器中,也可以分布式存储在服务器集群的不同的位置,后台服务器在获取到所述至少一个预设规则后生成请求响应消息,并将预设规则添加到所述请求响应消息中。

步骤3,用户设备接收后台服务器发送的请求响应消息,并获取所述请求响应消息中携带的所述至少一个预设规则,用户设备向用户展示所述至少一个预设规则,用户从中进行选择,用户设备向后台服务器发送预设规则设置请求消息,所述预设规则设置请求消息中携带有经过用户选择确认的预设规则。

其中,向用户展示所述至少一个预设规则,可以是通过用户设备中的显示装置进行界面化的展示,也可以是通过向用户设备发送信息,例如短消息,在信息中携带预设规则的文字内容,用户通过阅读信息中的文字内容来获知预设规则。在进行预设规则的展示时,至少一个预设规则中的每一个均有与之对应的编号,用户在选择预设规则时可以通过点击相应的内容或者编号,或者编辑携带与预设规则对应编号的信息的方式来完成对预设规则的选择。

所述预设规则用于对字符串进行处理,以下对预设规则进行举例说明:

1)字符倒序,例如,将字符串123456倒序处理为654321。

2)字符对调,例如,将字符串123456中第1字符位置与第2字符位置对调,得到字符串213456。

3)字符冗余,例如,将字符串123456进行冗余处理,在原有字符串的末尾添加上原有字符串的整个以得到字符串123456123456,或者部分以得到字符串12345612,也可以添加其他的冗余内容。

增加预设规则的目的在于通过增加对字符串的处理来提高字符串的复杂度,从而增强安全性,防止字符串被窃取后对用户造成损失。以上仅仅是对预设规则的举例说明,不应理解为对预设规则进行的限定。

步骤4,后台服务器接收所述预设规则确认消息,并获取所述预设规则确认消息中携带的预设规则信息,该预设规则信息中包括至少一个预设规则,并将获取的预设规则信息与设备标识和安全码进行关联存储。

所述预设规则中的每一个均有与之对应的编号,用户在反馈预设规则确认消息时,可以是通过点击展示的至少一个预设规则中相应的内容或者编号,来触发所述预设规则确认消息的发送,或者编辑携带与预设规则对应编号的信息并以发送短信息的方式来触发所述预设规则确认消息的发送。

预设规则确认消息中携带有经过用户选择并确认后的至少一个预设规则,可以是携带预设规则的具体内容,也可以是预设规则的编号。

后台服务器获取所述预设规则确认消息中携带的预设规则信息将预设规则信息、设备标识和安全码进行关联存储可以是将预设规则信息、设备标识和安全码保存在同一服务器中,也可以是以映射的方式保存在服务器集群的不同的位置,本发明实施例不对具体的关联存储方式进行限定。

步骤5,后台服务器向用户设备发送注册成功消息。

电子密码锁的动态密码认证主要由两个部分组成:一个是安装在智能设备上的控制应用app,另一个是单片机控制的电子密码锁。后台服务器根据从用户设备上的控制应用app处接收到的开锁请求,生成动态密码,并通过有线或者无线网络将动态密码分别发送至电子密码锁和用户设备的控制应用app。当用户将app生成的动态密码输入至电子密码锁,电子密码锁将此动态密码与自身从后台服务器的动态密码相比较,如果匹配则执行开锁动作。

本发明的认证方法的流程图如图2所示,电子密码锁的认证开锁的流程具体步骤如下:

步骤1,用户设备向后台服务器发送开锁请求,所述开锁请求中携带有设备标识、同步值以及当前用户选择的预设规则编号;

在具体实现中,该开锁请求消息可以是由该设备在开锁请求指令时发送,该开锁请求指令可以由用户触发,该用户可以通过指定操作触发,该指定操作可以为按键操作、扫描二维码等等。之后,该设备基于该设备标识、同步值以及预设规则信息来生成开锁请求消息,并向后台服务器发送该开锁请求消息。同样需要说明的是,基于按键操作、扫描二维码等方式发起注册请求的过程可以参见相关技术,本发明实施例不对具体的触发方式进行限定。用户通过在用户设备的控制应用app中输入与预设规则对应的编号,来确定当前用户选择的预设规则。

步骤2,后台服务器接收所述开锁请求并获取所述开锁请求中的设备标识,后台服务器基于该设备标识确定该用户设备是否属于已注册的有权限设备,若是,则执行步骤3,若否,则提示用户没有操作权限;

在具体实现中,对于已注册用户,后台服务器中预先存储有自身所管理的所有已注册的有权限用户设备的设备标识。后台服务器接收到该开锁请求消息后,从存储的所有设备标识中查询是否包括该设备标识,如果存储的所有设备标识中包括该设备标识,则可以确定该设备属于自身所管理的已注册的有权限设备。需要说明的是,上述基于该设备标识判断该设备是否属于所管理的设备的实现过程仅是示例性的,在实际实现过程中,还可能通过其它方式来基于该设备标识判断该设备是否属于自身所管理的设备,本发明实施例对此不作限定。

步骤3,后台服务器根据从所述开锁请求中获取的所述设备标识查找并获取关联存储的预设规则信息和安全码,后台服务器获取所述开锁请求中携带的所述当前用户选择的预设规则编号,并根据获取的所述关联存储的预设规则信息确定所述预设规则编号所对应的预设规则。

步骤4,后台服务器使用所述安全码和所述同步值来生成动态密码,并使用确定的所述预设规则编号所对应的预设规则对生成的所述动态密码进行处理,将处理后的所述动态密码发送给电子密码锁,再使用所述安全码对处理后的所述动态密码进行加密,将生成的密文发送给用户设备。

动态密码认证主要分为时间同步和事件同步两种方式:时间同步认证是在一个固定时间内(通常是1分钟)产生同一个动态密码,依据时间的流逝产生不同的密码;事件同步依据认证卡上的私有密钥产生一序列的动态密码,如果用户意外多产生了几组密码造成不同步的状态,服务器会自动重新同步到目前使用的密码,一旦一个密码被使用过后,在密码序列中所有这个密码之前的密码都会失效。本发明采用的是事件同步方式,使用用户在向后台服务器注册时已经随用户注册请求发送给了后台服务器的安全码作为密钥种子,与开锁请求中携带的同步值组成的字符串作为sha256算法的输入,产生动态密码。

同步值是由用户设置的,长度为3的数字字符串,由于加密算法是复杂、非线性的,即使同步值中只有一位数据发生改变,也会使动态密码中一半以上的数据位发生改变。在控制应用app中,每生成一次开锁请求,就需要用户确定一个同步值。由此可以增加所生成的动态密码的随机性和安全性。此外,由于发送给电子密码锁和发送给用户设备的数据不一样,即使发送给用户设备的数据被窃取,也无法直接使用该数据完成开锁操作。

步骤5,用户设备从后台服务器接收所述生成的密文,并使用用户设备的安全码对密文进行解密,以得到动态密码,用户使用得到的所述动态密码进行开锁操作。

电子密码锁将自身从后台服务器获得的动态密码与用户输入的动态密码进行比较。若是匹配成功就执行开锁动作,同时存储当前的日期时间作为开锁记录可供查询;若是不满足匹配条件就提示重新输入密码。如果连续三次输入密码错误则锁定键盘,并发出声光报警。在开锁状态下,用户可以查询之前的开锁记录。此外,电子密码锁可选择开启或者关闭振动检测功能,若是开启并且也检测到有效的振动信号就声光报警提示用户,同时还集成了万年历功能,系统待机状态下显示当前的日期以及时间,并且为存储开锁记录提供时间以及日期。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,光介质、或者半导体介质等。

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