一种基于动态密码的多锁开锁授权控制方法、系统和锁具与流程

文档序号:21937386发布日期:2020-08-21 15:11阅读:431来源:国知局
一种基于动态密码的多锁开锁授权控制方法、系统和锁具与流程

本发明涉及动态密码锁。



背景技术:

动态密码锁是一般由后台服务器发出动态密码进行开锁的锁具。后台服务器所发出的动态密码也称为otc码,是只能使用一次的密码,也就是下次开锁所需要的动态密码与上次开锁所需要的动态密码不同。动态密码锁普遍应用于银行业自助设备,比如自动取款机、存取款循环机或智慧柜员机。动态密码一般由数据源通过杂凑算法计算出的一次性开锁密码。计算动态密码的数据源通常包括但不限于锁具随机数、上次闭锁码、锁具识别码。由于动态密码与锁具识别码绑定关系,因此,动态密码与锁具绑定,也就是一个动态密码仅能授权一把锁的开启。

目前,银行业自助设备对动态密码锁的需求,已经不仅限于保险柜上的动态密码锁,包括控制上箱体工控机的门,里面存放重要凭证的卡箱等,都需要动态密码锁进行安全管理。也就是说,同一台设备上存在多把动态密码锁。现有技术下,同一设备上的多把动态密码锁有着各自独立的体系,控制相互分离。由于各动态密码锁相互独立,特别是若各动态密码锁规格不同,也就会存在开锁人员身份验证方式不统一,所需的开锁辅助设备不同,后台也可能需要搭建多套服务器等问题,同时也增加了后台开锁授权管理的复杂性。



技术实现要素:

本发明所要解决的问题:同一台设备的多把动态密码锁相互独立带来开锁人员身份验证方式不统一,所需的开锁辅助设备不同,后台也可能需要搭建多套服务器等问题,同时也增加了后台开锁授权管理的复杂性。

为解决上述问题,本发明采用的方案如下:

根据本发明的一种基于动态密码的多锁开锁授权控制方法,该方法涉及服务器、主控锁和附加锁;所述附加锁连接所述主控锁;所述主控锁连接所述服务器;该方法包括以下步骤:

所述服务器接收到开锁请求并经用户身份验证通过后,所述服务器根据其开锁授权计划计算出第一动态密码向所述主控锁发送,所述第一动态密码隐含有主控锁和附加锁中一个或多个锁具的开锁授权;

所述主控锁所接收到所述第一动态密码后验证所述第一动态密码,并通过对所述第一动态密码的验证确定本次授权可开启的锁具。

进一步,根据本发明的基于动态密码的多锁开锁授权控制方法,所述主控锁通过碰撞遍历测试进行所述第一动态码验证并以此确定本次授权可开启的锁具。

进一步,根据本发明的基于动态密码的多锁开锁授权控制方法,计算所述第一动态密码时基于主附锁序号进行计算。

进一步,根据本发明的基于动态密码的多锁开锁授权控制方法,所述主控锁确定本次授权可开启的锁具后,临时保存可开锁具表;所述可开锁具表为本次授权可开启的锁具的表单;所述附加锁为动态密码锁时,其开锁时向所述主控锁发送开锁请求;所述主控锁接收到附加锁所发送的开锁请求时,判断所述可开锁具表中是否存在所述开锁请求所对应的附加锁,若所述可开锁具表中存在所述开锁请求所对应的附加锁,则计算出第二动态密码向所述开锁请求所对应的附加锁发送。

根据本发明的一种基于动态密码的多锁开锁授权控制系统,该系统包括服务器、主控锁和附加锁;所述附加锁连接所述主控锁;所述主控锁连接所述服务器;

所述服务器包括以下模块:

ms1,用于:接收开锁授权计划;

ms2,用于:根据所接收的开锁授权计划计算出第一动态密码;

ms3,用于:向所述主控锁发送所述第一动态密码;

所述开锁授权计划包含有主控锁和附加锁中一个或多个锁具的开锁授权;

所述第一动态密码隐含有主控锁和附加锁中一个或多个锁具的开锁授权;

所述主控锁包括以下模块:

mm1,用于:接收所述第一动态密码;

mm2,用于:验证所述第一动态密码,并通过对所述第一动态密码的验证确定本次授权可开启的锁具。

进一步,根据本发明的基于动态密码的多锁开锁授权控制系统,所述模块mm2中,通过碰撞遍历测试进行所述第一动态码验证并以此确定本次授权可开启的锁具。

进一步,根据本发明的基于动态密码的多锁开锁授权控制系统,所述模块ms2中,计算所述第一动态密码时基于主附锁序号进行计算。

进一步,根据本发明的基于动态密码的多锁开锁授权控制系统,所述主控锁还包括模块:

mm3,用于:临时保存可开锁具表;所述可开锁具表为本次授权可开启的锁具的表单;

mm4,用于:接收附加锁所发送的开锁请求;

mm5,用于:判断所述可开锁具表中是否存在所述开锁请求所对应的附加锁,若所述可开锁具表中存在所述开锁请求所对应的附加锁,则计算出第二动态密码;

mm6,用于:向所述开锁请求所对应的附加锁发送所述第二动态密码。

根据本发明的一种基于动态密码的多锁开锁授权控制锁具,该锁具应用于基于动态密码的多锁开锁授权控制系统;该系统包括服务器、主控锁和附加锁;附加锁连接主控锁;主控锁连接服务器;该锁具是该系统中的主控锁,包括如下模块:

mm1,用于:接收所述第一动态密码;所述第一动态密码隐含有开锁授权计划中主控锁和附加锁中一个或多个锁具的开锁授权;

mm2,用于:通过碰撞遍历测试进行所述第一动态码验证并以此确定本次授权可开启的锁具;

mm3,用于:临时保存可开锁具表;所述可开锁具表为本次授权可开启的锁具的表单;

以及用于根据所述可开锁具表判断主控锁和附加锁是否得到开锁授权的模块。

进一步,根据本发明的基于动态密码的多锁开锁授权控制锁具,该锁具还包括如下模块:

mm4,用于:接收附加锁所发送的开锁请求;

mm5,用于:判断所述可开锁具表中是否存在所述开锁请求所对应的附加锁,若所述可开锁具表中存在所述开锁请求所对应的附加锁,则计算出第二动态密码;

mm6,用于:向所述开锁请求所对应的附加锁发送所述第二动态密码。

本发明的技术效果如下:在本发明的方法下,一个动态密码控制集成在一起的多个锁的开启授权,也就是,一个动态密码可以控制其中任意一把或多把锁是否可以开启。由此通过本发明,同一台设备上的各把动态密码锁逻辑上集成在一起,比如保险柜锁为主控锁,其他上箱体锁等为附加锁,后台服务器通过新的动态密码方法,控制主控锁及附加锁开启授权。由此,在进行设备的动态密码锁改造时,后台流程、前端开锁人员认证方式,人工辅助开锁等,都不需要大的改变。

附图说明

图1是本发明系统的整体结构示意图。

具体实施方式

下面结合附图对本发明做进一步详细说明。

如图1所示,本发明的一种多锁联动的开闭锁系统,包括主控锁100、若干附加锁200和服务器300。主控锁100可以简称为主锁,是为动态密码锁。附加锁200也可以称为附锁、副锁或者从属锁,可以为动态密码锁,也可以为非动态密码锁。主控锁100和附加锁200通常是同一台设备上安装在不同箱门或柜门上的动态密码锁,该设备有唯一的主控锁100对应多个附加锁200,因此,每个主控锁100对应的附加锁200数量通常由该设备本身的箱体数或柜体数所确定。也就是,一把主控锁100对应若干附加锁200,主控锁100对应的各附加锁200连接主控锁100。附加锁200和主控锁100之间的连接方式可以是有线的,也可以是无线的。有线的连接方式可以是比如串口,优选usb。无线的连接方式比如蓝牙。本发明优先采用usb连接方式。主控锁100通过网络连接远程的服务器300。主控锁100连接服务器300的方式可以是有线的,也可以是无线的,或者甚至可以还通过中介媒体的方式。主控锁100连接服务器300的无线方式比如移动网络gprs/3g/4g/5g等,也可以采用wifi连接无线路由器,再通过无线路由器连接远程的服务器300。主控锁100连接服务器300的有线方式通常是以太网。中介媒体的方式可以是比如通过移动终端进行中转或者通过工控主机进行中转。通过移动终端进行中转的情形下,主控锁100可以通过蓝牙连接移动终端,再由移动终端通过移动网络连接远程的服务器300。通过工控主机进行中转的情形下,主控锁100可以通过usb连接工控主机,再由工控主机通过以太网连接远程的服务器300。附加锁200和主控锁100之间,以及主控锁100和远程的服务器300之间具体如何连接并不是本发明所讨论的范畴,本说明书不再赘述。需要指出的是,本发明中,不管附加锁200和主控锁100之间以及主控锁100和远程的服务器300之间如何连接,附加锁200需要通过主控锁100连接远程的服务器300。附加锁200和服务器300之间的交互需要通过主控锁100进行并受主控锁100所管控。主控锁100、附加锁200和服务器300之间的交互,涉及锁具配置和开锁过程和闭锁过程。

锁具配置包括服务器300上的锁具设置和主控锁100上的附加锁绑定。服务器上的锁具设置类似于传统动态密码锁在服务器上设置,由用户手工操作发起,操作完成后,服务器保存锁具信息,其具体操作过程可参照动态密码锁在服务器上的设置,本说明书不再赘述。不同于传统动态密码锁在服务器上的设置,本发明中,附加锁200在服务器300上仅保存与之相匹配的主附锁序号和锁具名称。锁具名称通常与设备的柜体相对应,以便于用户理解,比如:上箱体锁、下箱体锁、工控机锁等等。主附锁序号通过0,1,2,3等数字标记锁具,用于标识附加锁的序号。其中主控锁的主附锁序号被设定为0。

附加锁绑定用于将附加锁200绑定在主控锁100上,从而使得附加锁200和主控锁100在逻辑上是集成的,并且使得主控锁100在附加锁200进行开锁的时候能够充当部分服务器的功能。比如主控锁100代替服务器300生成动态密码,也就是说,本发明中,附加锁200进行开锁的时候,附加锁200需要进行开锁验证的动态密码由主控锁100替代服务器生成。附加锁绑定过程通常由工作人员手工操作发起,附加锁200在主控锁100上绑定后,主控锁100保存有对应附加锁200的附加锁信息。该附加锁信息通常包含有主附锁序号和用于生成动态密码的信息。用于生成动态密码的信息包括但不限于锁具识别码和闭锁码。绑定后初始状态下,闭锁码为空。绑定后附加锁200首次闭锁与主控锁100交互后生成闭锁码并保存于主控锁100的附加锁信息中,然后在每次附加锁200闭锁时,通过附加锁200和主控锁100闭锁交互生成闭锁码并保存。附加锁绑定过程中,附加锁200和主控锁100具体交互过程,可以参照传统动态密码锁在服务器上的设置,本说明书不再赘述。需要指出的是,主控锁100中附加锁的主附锁序号与相应锁具在服务器300上对应的主附锁序号相同,并且主控锁100中的附加锁与服务器300上的附加锁存在一一对应的关系。

众所周知,动态密码锁在开锁前需要制定相应的开锁授权计划,比如自动取款机的设备维护开锁时需要制定设备维护计划,或者自动取款机加钞开锁时需要制定加钞任务计划。设备维护计划和加钞任务计划均保存于服务器。设备维护计划或者加钞任务计划均包含有锁具的开锁授权,因此,设备维护计划和加钞任务计划又可以统称为开锁授权计划。简单来说,动态密码锁的开锁需要后台工作人员的授权,使得服务器保存有相应的开锁授权计划,服务器计算动态密码时需要依据相应的开锁授权计划,否则无法生成相应的动态密码。无法生成动态密码意味着前台工作人员在缺少后台的开锁授权计划时无法开锁。本发明的主控锁与附加锁的开锁和传统动态密码锁在开锁前需要制定开锁授权计划是相同的,所不同的是,后台工作人员在本发明的系统中设定开锁授权计划时,可以指定待开锁的锁具,比如指定上箱体锁、下箱体锁、工控机锁等等,而且后台工作人员在设定开锁授权计划时,指定的待开锁的锁具是主控锁100和附加锁200中的一把或者若干把。由此,开锁授权计划包含有待开锁的锁具清单。该待开锁的锁具清单由主附锁序号定义。也就是,开锁授权计划包含有主控锁和附加锁中一个或多个锁具的开锁授权。

开锁过程涉及主控锁100的开锁和附加锁200的开锁。但不论主控锁100的开锁还是附加锁200的开锁都需要向服务器300请求用户身份验证,并且需要向服务器300发送相应的开锁请求。向服务器300发送开锁请求和向服务器300请求用户身份验证可能是同一个请求,也可能是两个相互独立的请求。现有技术下,动态密码锁进行用户身份验证的方式有很多种,比如通过密码进行身份验证、或者通过生物指纹进行的身份验证、或者通过手机短消息进行的身份验证。但不论采用何种用户身份验证方式,本发明中,服务器300接收到开锁请求并通过用户身份验证后,根据相应的开锁授权计划计算出动态密码向主控锁100发送。也就是本发明的方法并不限定于某种特定的用户身份验证方式,具体的用户身份验证过程也不是本发明所讨论的范畴。上述根据开锁授权计划计算得到的动态密码本发明中称为第一动态密码,由于开锁授权计划包含有主控锁和附加锁中一个或多个锁具的开锁授权,因此计算得到的第一动态密码也相应的隐含有主控锁和附加锁中一个或多个锁具的开锁授权。

主控锁100接收到第一动态密码后验证第一动态密码,并通过对所述第一动态密码的验证确定本次授权可开启的锁具。具体来说,主控锁100通过碰撞遍历测试进行第一动态码验证并以此确定本次授权可开启的锁具。

本领域技术人员理解,无论计算动态密码还是验证动态密码,都是需要通过杂凑函数对数据源进行计算。杂凑函数,又称为哈希函数或散列函数,为本领域技术人员所熟悉,本说明书无需赘述。本实施例计算第一动态密码和验证第一动态密码时所采用的杂凑函数算法本身保持传统算法不变,但其中的数据源与传统不同。其中一种实施方式是在计算第一动态密码的数据源中增加一个用于表示待开锁的锁具清单的字节,该字节简称为锁表字节。该锁表字节的每个比特位对应于主附锁序号,若本次开锁欲开某个锁具,则相应主附锁序号所对应的比特位设为1,否则设为0。与此对应地,在第一动态密码验证计算的数据源中,同样增加锁表字节,然后,通过对该锁表字节的各个比特位是否设置为1的各种组合进行遍历,分别计算出验证码,若其中某个验证码与第一动态密码相同,则其对应的锁表字节隐含了本次授权可开锁的锁具。锁表字节的各个比特位是否设置为1的各种组合进行遍历也就是各锁具是否有开锁授权的各种组合进行遍历。比如,某第一动态密码验证计算的数据源中锁表字节为10110000,并以此通过杂凑函数计算得到的验证码与第一动态密码相同,则锁表字节10110000即可对应至各个欲开的锁具,根据锁表字节对应的比特位,欲开的锁具的主附锁序号分别为0#锁具、2#锁具和3#锁具。也就是本次授权可开启的锁具为主控锁、2号附加锁和3号附加锁。显而易见地,上述实施方式中,每个主控锁100所对应的附加锁200最多为7个。在碰撞遍历测试时,若主控锁加上附加锁的锁具总数为n,总共需碰撞计算的最大次数为2n-1。比如,附加锁共2个,分别为1#锁具和2#锁具,对应的主附锁序号分别为1和2,由此需要验证的锁表字节共有7个,对应需要碰撞计算的次数为7次,这7个锁表字节分别为:11100000、11000000、10100000、01100000、00100000、01000000、10000000。

计算第一动态密码和验证第一动态密码时其数据源的另一实施方式是在计算第一动态密码的数据源中增加一锁序表。该锁序表为按主附锁序号排序后的待开锁的锁具清单,是排序后的主附锁序号列表。与此对应地,在第一动态密码验证计算的数据源中,同样增加锁序表。然后就锁具是否有开锁授权进行排列组合生成相应的锁序表,计算出各种组合对应的锁序表所对应的验证码,若其中某个验证码与第一动态密码相同,则该验证码所对应的锁序表中各个主附锁序号所对应的锁具即为本次授权可开锁的锁具。显而易见地,该实施方式同前一种实施方式一样也需要碰撞计算不超过2n-1次。不同的是,本实施方式下,主控锁100所对应的附加锁200的数量不限于7个,可以为8个或9个。不论上述第一种实施方式还是第二种实施方式都需要主控锁100遍历各锁具是否有开锁授权的各种组合进行碰撞测试,以验证第一动态密码,并同时以此确定本次授权可开启的锁具。这种遍历各锁具是否有开锁授权的各种组合进行碰撞测试的方法,本发明简称为碰撞遍历测试。

需要指出的是,上述碰撞遍历测试中,碰撞测试的次数随着主控锁和附加锁的数量呈指数级变化,因此,主控锁和附加锁的数量不能太多,否则碰撞遍历测试所耗费的时间过长。不过所幸的是,在银行业的应用场合中,其设备所需的锁具数一般不超过8把,通常为3~4把。因此,上述碰撞遍历测试的方法的计算耗时能够在用户可接受范围内。也因此,本发明在计算第一动态密码和验证第一动态密码时,其数据源优选采用第一种实施方式。

主控锁100通过第一动态密码验证并确定本次授权可开启的锁具后,临时保存可开锁具表。可开锁具表即为本次授权可开启的锁具的表单。由此,在后续的过程中,主控锁100根据根据可开锁具表判断主控锁和附加锁是否得到开锁授权。若主控锁100所连接的某个附加锁为动态密码锁时,该动态密码锁开锁时,向主控锁发送开锁请求。若当前主控锁100保存有可开锁具表,则判断可开锁具表中是否存在所述开锁请求所对应的附加锁,若可开锁具表中存在开锁请求所对应的附加锁,则计算出第二动态密码向开锁请求所对应的附加锁发送。若当前主控锁100未保存有可开锁具表,则主控锁100向服务器300发送新生成的开锁请求并请求用户身份验证。上述开锁过程更为具体的过程如下:

若工作人员首先操作的是主控锁100,也就是工作人员首先尝试开启主控锁100时,工作人员通过主控锁100的操作面板向服务器300发起开锁请求。服务器300经用户身份验证通过后根据其开锁授权计划计算出第一动态密码并向主控锁100发送。主控锁100接收到第一动态密码并通过第一动态密码的验证确定本次授权可开启的锁具,而后临时保存可开锁具表。然后主控锁100判断临时保存的可开锁具表中是否包含主控锁100,若临时保存的可开锁具表中包含主控锁100,则执行开锁指令并处理可开锁具表中附加锁100开锁作业,否则直接处理可开锁具表中附加锁100开锁作业。之后,附加锁200开锁时,与主控锁100进行交互。附加锁200开锁时,主控锁100根据临时保存的可开锁具表判断相应的附加锁200是否能够得到开锁授权。

若工作人员首先操作的是附加锁200,也就是工作人员首先尝试开启某把附加锁200时,工作人员通过附加锁200的操作面板向主控锁100发起开锁请求。此时,主控锁100未保存有临时保存的可开锁具表,由此,主控锁100重新生成开锁请求并向服务器300发送,此时服务器300与附加锁200进行用户身份验证交互时,主控锁100为之提供信息交互的中转。服务器300经用户身份验证通过后根据其开锁授权计划计算出第一动态密码并向主控锁100发送。主控锁100接收到第一动态密码并通过第一动态密码的验证确定本次授权可开启的锁具,而后临时保存可开锁具表。然后,主控锁100判断临时保存的可开锁具表中是否包含当前工作人员所操作的附加锁,若临时保存的可开锁具表中包含该附加锁并且该附加锁为动态密码锁,则计算出第二动态密码向对应的附加锁200发送,对应的附加锁200接收到第二动态密码后验证第二动态密码,验证通过后执行开锁指令。之后,其他附加锁200开锁时,与主控锁100进行交互,主控锁100根据临时保存的可开锁具表判断相应的附加锁200是否能够得到开锁授权;主控锁100开锁时,根据临时保存的可开锁具表判断主控锁100是否能够得到开锁授权而确定是否执行开锁指令。

需要指出的是,上述开锁的过程中,并不要求附加锁200是动态密码锁。附加锁200是非动态密码锁,则根据其相应的开锁逻辑与主控锁100进行交互,主控锁100根据临时保存的可开锁具表判断相应的附加锁200是否能够得到开锁授权。特别地,某些附加锁200不包含有操作面板因此无法发起开锁请求,或者无法进行用户身份验证交互,此时,可通过主控锁100的操作面板发起开锁请求和进行用户身份验证交互。

需要指出的是,这里的操作面板并不一定是锁具本体上的操作面板,也可以是锁具所连接的开锁辅助设备,比如移动终端等。

需要指出的是,计算动态密码时的数据源,通常包括随机数、锁具识别码和闭锁码。本发明中,计算第一动态密码时的数据源中,随机数由主控锁100在向服务器300发送开锁请求时生成,锁具识别码为主控锁100的锁具识别码,闭锁码为保存于主控锁100和服务器300中的闭锁码。计算第二动态密码时的数据源中,随机数由附加锁200在向主控锁100发送开锁请求时生成,锁具识别码为相应附加锁200的锁具识别码,闭锁码为保存于附加锁200和主控锁100中的闭锁码。

闭锁过程涉及主控锁100的闭锁和附加锁200的闭锁。对于附加锁200为动态密码锁的情形,附加锁200闭锁时和主控锁100进行交互生成闭锁码保存于附加锁200和主控锁100。附加锁200闭锁时和主控锁100进行交互生成闭锁码的过程可参照普通动态密码锁闭锁过程。

主控锁100的闭锁是指主控锁100的逻辑闭锁,也就是,主控锁100中临时保存的可开锁具表中的锁具开锁后都完成了闭锁时,主控锁100与服务器300进行交互生成闭锁码保存于主控锁100和服务器300。主控锁100的逻辑闭锁表示的是临时保存的可开锁具表中的锁具开锁后都完成了闭锁,而主控锁100本身可能未必执行了开锁作业和闭锁作业。

需要指出的是,临时保存的可开锁具表中的临时保存是指可开锁具表具有保存时限,超过了时限可开锁具表即被删除或丢弃。可开锁具表被删除或丢弃后,该可开锁具表中的锁具再进行开锁时,由于不存在相应的开锁授权依据,而无法再进行开锁。此时,该可开锁具表中的锁具再进行开锁时也无法向服务器300再申请动态密码而进行开锁,因为动态密码是一次性的。临时保存的可开锁具表的保存时限通常与其相应的业务相关。一般来说,出于安全因素考虑,可开锁具表的临时保存的时间不超过5分钟。当然在某些场合,可开锁具表的临时保存的时间可能为10分钟或15分钟。

另一方面,可开锁具表的临时保存的时间可视为授权开锁时间。由此,在另一实施方式中,开锁授权计划可以包括授权开锁时间,用户可以指定该授权开锁时间,当服务器300将第一动态密码向主控锁100发送时,开锁授权计划中的授权开锁时间作为第一动态密码的随附信息一同向主控锁100发送。主控锁100接收到该授权开锁时间后,将该授权开锁时间作为可开锁具表的临时保存的时间。

由于可开锁具表保存的时间较短,可开锁具表被删除或丢弃时,该可开锁具表中的锁具可能并非全部都被开锁,并且依据该可开锁具表而开启的锁具也通常未完成闭锁。为此,对于前述“临时保存的可开锁具表中的锁具开锁后都完成了闭锁”的判断本实施例采用如下方法:主控锁或附加锁依据可开锁具表执行开锁后,主控锁100将已执行开锁的锁具组成已开锁具表,主控锁100根据已开锁具表跟踪当前已执行开锁的锁具是否完成闭锁,若已开锁具表中的各锁具均完成闭锁,则与服务器300发起闭锁交互。最后通过主控锁100与服务器300之间的交互生成相应的闭锁码同步保存于主控锁100和服务器300,该闭锁码将作为下一次计算第一动态密码的数据源之一。

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