一种密码锁动态密码实现方法和系统
技术领域
本发明涉及密码锁
技术领域
,尤其涉及一种密码锁动态密码实现方法和系统。背景技术
密码锁的物理按键磨损老化容易导致密码泄露,若用户长时间使用同一口令,则根据按键的磨损程度即可推测出用户的密码使用了哪些数字,造成密码安全性降低或泄露。
传统的解决办法是采用虚位密码,即用户在输入真实密码时,在真实密码前后加入任意字符作为干扰码,达到按键均匀磨损的效果,从而实现用户密码的保护。但此方法真实密码依然会连续的出现在用户输入的虚位密码中,若能够获取到用户多次输入的虚位密码,找出其共同存在的序列,即可轻松破解用户密码。
更进一步的做法是采用动态虚位密码,即先给用户一个随机的指示码,用以指示虚位位置,用户输入密码时,按照指示码指示的虚位位置,加入随机的虚位字符,实现进一步的增强保护功能。该方法虽然进一步加强了密码保护,但若能够获取到用户多次输入的虚位密码,找出其中出现的高频字符,即可获得密码使用的字符,造成密码安全性降低或泄露。
因此,传统的密码锁,无论是采用虚位密码还是动态虚位密码,若攻击者能够获取到用户的多次输入,运用统计学和数学分析方法,即可破解用户密码。
发明内容
为了解决上述问题,有必要提供一种密码锁动态密码实现方法和系统。
本发明第一方面提出一种密码锁动态密码实现方法,包括以下步骤:
步骤1,密码锁在读取到开锁触发指令后,生成随机指示码,将所述随机指示码保存在密码锁内部,并以第一预设方式将所述随机指示码通知用户;
步骤2,用户端在接收到用户输入的随机指示码后,利用预设的第二加密算法对预先设定的用户口令和所述随机指示码进行计算,生成本次的解锁码Ⅱ;
步骤3,密码锁在接收到用户输入的解锁码Ⅱ后,利用预设的第一加密算法对步骤1中生成的随机指示码和预先设定的用户口令进行计算,生成本次的解锁码Ⅰ;
步骤4,密码锁对所述解锁码Ⅱ和所述解锁码Ⅰ进行匹配,若匹配,则通知锁定/解锁模块打开密码锁,否则触发错误处理事件。
本发明第二方面提出一种密码锁动态密码实现系统,所述系统包括:密码锁和用户端,所述密码锁包括随机数发生器、第一存储模块、第二存储模块、第一算法模块、确定模块、第一输出模块和锁定/解锁模块,所述用户端包括接收模块、第三存储模块、第二算法模块和第二输出模块;
所述随机数发生器用于在读取到开锁触发指令后,生成随机指示码,所述第一存储模块用于将所述随机指示码保存在密码锁内部,所述第一输出模块用于以第一预设方式将所述随机指示码通知用户;
所述第二存储模块用于存储预先设定的用户口令,所述第一算法模块用于在接收到用户输入的解锁码Ⅱ后,利用预设的第一加密算法对所述第一存储模块中存储的随机指示码和所述第二存储模块中存储的用户口令进行计算,生成本次的解锁码Ⅰ;其中,预设第一加密算法与预设第二加密算法相同;
所述确定模块用于对所述解锁码Ⅱ和所述解锁码Ⅰ进行匹配,若匹配,则通知锁定/解锁模块打开密码锁,否则触发错误处理事件;
所述接收模块用于确定是否接收到用户输入的随机指示码,所述第三存储模块用于存储预先设定的用户口令,所述第二算法模块用于利用预设的第二加密算法对所述第三存储模块中存储的用户口令和所述随机指示码进行计算,生成本次的解锁码Ⅱ,所述第二输出模块用于以第二预设方式将所述解锁码Ⅱ通知用户。
本发明提出一种动态密码实现方法,可增强对用户口令的保护,即使攻击者获取到用户每次输入的解锁码Ⅱ,也无法逆向推算出用户的真实用户口令,更无法解开密码锁;
另外,本发明采用一次一密的解锁方案,每次开锁的解锁码不同,即使获取之前的解锁码,也无法重复利用,有效增强了密码锁的安全性。
本发明的附加方面和优点将在下面的描述部分中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1示出了本发明的一种密码锁动态密码解锁原理图;
图2示出了本发明的一对多的密码锁动态密码实现系统的结构示意框图;
图3示出了本发明的一种密码锁的结构示意框图;
图4示出了本发明的一种用户端的结构示意框图;
图5示出了本发明的一种错误处理流程图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
实施例1
如附图1所示,本发明提出一种密码锁动态密码实现方法,每次解锁流程如下:
步骤1,密码锁在读取到开锁触发指令后,生成随机指示码,将所述随机指示码保存在密码锁内部,并以第一预设方式将所述随机指示码通知用户;
其中,所述第一预设方式包括但不限于屏幕显示、短信等方式,例如,密码锁上设置有相应的触摸屏,密码锁通过随机数发生器生成随机数作为随机指示码,并通过触摸屏将指示码呈现给用户;
步骤2,用户端在接收到用户输入的随机指示码后,利用预设的第二加密算法对预先设定的用户口令和所述随机指示码进行计算,生成本次的解锁码Ⅱ;
步骤3,密码锁在接收到用户输入的解锁码Ⅱ后,利用预设的第一加密算法对步骤1中生成的随机指示码和预先设定的用户口令进行计算,生成本次的解锁码Ⅰ;
其中,预设的第一加密算法和预设的第二加密算法一致,包括但不限于HMAC、HASH、加密等算法;根据算法的复杂度不同,算法可通过包括但不限于人工直接计算、软件模块实现、硬件模块实现等方式;
步骤4,密码锁对所述解锁码Ⅱ和所述解锁码Ⅰ进行匹配,若匹配,则通知锁定/解锁模块打开密码锁,否则触发错误处理事件。
可以理解,密码锁的校验过程如下:
a)密码锁中将生成的指示码和保存的用户口令作为输入数据,输入内置的第一算法模块中,计算得出解锁码Ⅰ;
b)将解锁码Ⅰ与解锁码Ⅱ进行校验;若匹配,则通知锁定/解锁模块打开密码锁;若不匹配,则触发错误处理流程提高安全性。
需要说明的是,每次开锁时,密码锁生成的解锁码Ⅰ并不会进行输出,保证了每次的解锁码Ⅰ不会直接出现在任何外部环境中,可以有效防止攻击者监听。
如附图5所示,所述错误处理事件包括:判断在预设时间段A内所述解锁码Ⅱ和所述解锁码Ⅰ不匹配次数是否超过预设次数,若超过预设次数,则使密码锁在预设时间段B内处于锁定状态,否则,使密码锁生成新的随机指示码并重新执行步骤1至4进行重试。
需要说明的是,所述随机指示码为获得的解锁码的关键字符串,一方面,该关键字符串具有时效性,到达预设时间即失效,另一方面,在密码锁对所述解锁码Ⅱ和所述解锁码Ⅰ进行校验后,无论结果如何,该随机指示码都会失效;因此,密码锁输出本次随机指示码后,在预设时间内接收到解锁码Ⅱ,且解锁码Ⅱ和密码锁生成的解锁码Ⅰ匹配,才会打开密码锁。
可以理解,每次开锁时,密码锁在满足一定条件时,才会触发随机数发生器生成新的随机指示码;
具体的,在步骤1之前,所述密码锁动态密码实现方法还执行以下步骤:
密码锁判断是否满足触发逻辑,若满足,则生成所述开锁触发指令,以触发密码锁的随机数发生器生成作为随机指示码的随机数;
所述触发逻辑为满足第一触发条件、第二触发条件、第三触发条件、第四触发条件中的任意一种或多种,
所述触发逻辑为满足第一触发条件、第二触发条件、第三触发条件中的任意一种或多种,
所述第一触发条件为:通过红外线感测到有人靠近密码锁,且与密码锁之间的距离达到预设的距离;
所述第二触发条件为:通过触摸屏检测到手指触摸信息,且该手指触摸信息将触摸屏由休眠模式转为点亮模式;
所述第三触发条件为:指定用户端与密码锁之间的距离处于预设的距离范围内,且指定用户端与密码锁处于蓝牙配对成功状态;其中,密码锁内置的蓝牙模块与指定用户端的蓝牙模块预先已进行配对。
需要说明的是,所述密码锁动态密码实现方法可用于包括但不限于密码锁等使用到密码的任何场景。
进一步的,所述触发逻辑为满足第一触发条件、第二触发条件、第三触发条件、第四触发条件中的任意一种或多种,所述第四触发条件为:检测到插入的钥匙与密码锁中的机械锁芯匹配;
对于不同的安全级别,所述触发逻辑所需要满足的触发条件也不同;例如,对于第一安全级别,满足第一触发条件、第二触发条件、第三触发条件、第四触发条件中的任意一种即可,对于第二安全级别,需要满足第一触发条件、第二触发条件、第三触发条件、第四触发条件中的两种,对于第三安全级别,需要满足第一触发条件、第二触发条件、第三触发条件、第四触发条件中的三种,对于第四安全级别,需要全部满足四种触发条件。
对于开锁的便捷性要求不同,所述触发逻辑所需要满足的触发条件也不同,例如,为了便于经常忘记携带钥匙的或者使用钥匙开锁不方便的用户开锁,所述触发逻辑为满足第一触发条件、第二触发条件、第三触发条件中的任意一种或多种;考虑安全性,还检测插入的钥匙与密码锁中的机械锁芯是否匹配,例如应用于保险柜的安全锁。
可以理解,在密码锁生成随机指示码之前,所述方法还包括:设定用户口令,并将用户口令保存在密码锁中,在开锁时,向密码锁输入的并非用户口令,而是动态的解锁码,降低了用户口令泄漏的风险。
需要说明的是,密码锁中生成本次的解锁码Ⅰ的第一算法模块和用户端生成本次的解锁码Ⅱ的第二算法模块所采用的算法一致,初始时,第一算法模块和第二算法模块分别置有多种算法,在具体密码锁动态密码实现时,经过人为或者其他策略进行同步设定,使两个算法模块运行的算法一致;
具体的,所述密码锁内预置有N个第一算法模块,所述用户端预置有N个第二算法模块,并在所述密码锁和所述用户端中预先配置相同的加密算法模块调用策略,以使得开锁时,所述密码锁中使用的第一算法模块与所述用户端使用的第二算法模块中运行的加密算法一致。其中,所述加密算法模块调用策略可以为同步轮询调度或者人为同步设定。
进一步的,将预设的第一加密算法和预设的第二加密算法均配置为HASH算法;在一种具体实施方式中,用户端利用HASH算法对预先设定的用户口令和所述随机指示码进行计算,获得哈希值Ⅱ,利用预设解锁策略对所述哈希值Ⅱ进行处理,以获得解锁码Ⅱ;客户端利用HASH算法对步骤1中生成的随机指示码和预先设定的用户口令进行计算,获得哈希值Ⅰ,利用预设解锁策略对所述哈希值Ⅰ进行处理,以获得解锁码Ⅰ。
具体的,预设解锁策略为提取十六进制的哈希值中的第N1位、第N2位、第N3位、第N4位和第N5位数字组成解锁码,也可以为将十六进制的哈希值转为十进制,再提取第N1位、第N2位、第N3位、第N4位和第N5位数字组成解锁码。
例如,用户端预存的用户口令为“abc*123”,用户端接收到的随机指示码为“803341”,采用sha1算法对“803341abc*123”进行计算,得到哈希值为“58d1a5418d7df739685191f6540a88a91dc3ed0e”,预设解锁策略为提取第1位、第3位、第6位、第7位和第10位数字组成解锁码,则解锁码Ⅱ为51183,若密码锁生成的解锁码Ⅰ也为51183,则校验通过。
具体的,用户端为用户的移动终端,且用户口令可预保存在移动终端,移动终端优选为手机、智能手表。
具体实现时,当密码锁接收开锁触发指令时,例如用户靠近密码锁,则密码锁的随机数发生器将生成随机数作为随机指示码,并将随机指示码通过触摸屏显示给用户,然后用户获得随机指示码,并输入给用户端的第二算法模块(如果第二算法模块为手机,且手机与密码锁预先进行配对,则密码锁可以通过蓝牙直接同步给手机,无需人工输入随机指示码),结合用户口令,并通过相应的算法进行计算得到解锁码Ⅱ,并由用户通过触摸屏输入至密码锁。
密码锁获得解锁码Ⅱ后,将本次开锁生成的随机指示码,传输给第一算法模块,第一算法模块结合用户口令,并通过相应的算法进行计算得到解锁码Ⅰ,然后由密码锁比对解锁码Ⅱ是否与解锁码Ⅰ一致,如果一致,则触发解锁模块进行执行解锁机械动作。
由于用户口令为用户和密码锁安全保存,公开的只是随机指示码,且每次开锁过程,生成的随机指示码不同,根据随机指示码计算得到的解锁码也会不同;因此,不法分子无法根据触摸屏上的遗留的指纹痕迹无法推出解锁码,即使能推出之前的解锁码,或者有不法分子在门锁附近安设摄像头,以获取解锁码,但每次开锁过程,密码锁都会更新解锁码,因此之前的解锁码将无法运用,即使历史解锁码泄露,也不会影响后续使用的安全性,提供了对解锁码足够的离散随机性保护,通过大量历史数据无法获得其规律。
实施例2
在密码锁生成随机指示码之前,除了执行设定用户口令,并将用户口令分别保存在密码锁和用户端中的步骤之外,所述密码锁还执行:
建立用户口令与用户标识的映射关系,不同的用户标识对应不同的用户口令;
在步骤3中密码锁接收到用户输入的解锁码Ⅱ后,还获取解锁码Ⅱ对应的用户标识,依据用户标识与用户口令的映射关系查找对应的用户口令,使密码锁依据步骤1中生成的随机指示码和获得到的用户口令生成解锁码Ⅰ。
多用户端控制同一密码锁,结构示意图如附图2所示,实际应用中,可以设置其中一个用户端为主用户端,以负责同一密码锁其他用户端的认证、授权及准入控制;
需要说明的是,根据当前有效用户口令的数量将密码锁工作模式分为单口令控制模式和多口令控制模式:(1)单口令控制模式下,多个用户端与密码锁中预存的用户口令相同,且只存在一个有效用户口令,不同的用户端若要打开同一个密码锁,则需要预先协商一致,得到一个统一的用户口令;(2)多口令控制模式下,多个用户端中预存的用户口令不同,每个用户端单独设置自己的用户口令并将自己的用户口令预存在同一密码锁中,不同用户端的用户口令通过用户标识进行区分,只需在输入解锁码Ⅱ时,同时输入用户标识,即可实现多个的用户端共同控制管理同一个密码锁,且多个的用户端之间不必预先协商一致。
可以理解,单口令控制模式适用于住宅用户用的安全锁,家庭成员之间共用同一个用户口令来开锁;多口令控制模式适用于共享类设备(例如,共享洗衣机等)用的安全锁,不用的共享设备用户之间互不干涉,不需要知晓对方的用户口令,共同通过同一个安全锁使用同一设备,既提示用户体验感,又安全可靠。
进一步的,所述多口令控制模式又分为多口令控制模式Ⅰ、多口令控制模式Ⅱ和多口令控制模式Ⅲ:多口令控制模式Ⅰ下,只要有一个用户端向密码锁输入解锁码Ⅱ,且密码锁验证通过,则通知锁定/解锁模块打开密码锁;第二多口令控制模式Ⅱ下,只有接收到预设数量的用户端输入的解锁码Ⅱ,且密码锁全部验证通过,才会通知锁定/解锁模块打开密码锁,适用于安全要求较高的门禁控制系统或者设备;多口令控制模式Ⅲ下,接收到一定数量的用户端输入的解锁码Ⅱ,且其中几个(小于得到的解锁码Ⅱ的数量)解锁码Ⅱ校验通过,则会通知锁定/解锁模块打开密码锁。
具体的,用户标识可以为指纹信息、人脸特征信息或者语音指令等可以区分不同用户身份且便于向密码锁输入的信息。
实施例3
在上述实施例的基础上,本实施例给出了一种密码锁动态密码实现系统的具体实施方式,包括:
密码锁和用户端,所述密码锁包括随机数发生器、第一存储模块、第二存储模块、第一算法模块、确定模块、第一输出模块和锁定/解锁模块,所述用户端包括接收模块、第三存储模块、第二算法模块和第二输出模块;
所述随机数发生器用于在读取到开锁触发指令后,生成随机指示码,所述第一存储模块用于将所述随机指示码保存在密码锁内部,所述第一输出模块用于以第一预设方式将所述随机指示码通知用户;
所述第二存储模块用于存储预先设定的用户口令,所述第一算法模块用于在接收到用户输入的解锁码Ⅱ后,利用预设的第一加密算法对所述第一存储模块中存储的随机指示码和所述第二存储模块中存储的用户口令进行计算,生成本次的解锁码Ⅰ;
所述确定模块用于对所述解锁码Ⅱ和所述解锁码Ⅰ进行匹配,若匹配,则通知锁定/解锁模块打开密码锁,否则触发错误处理事件;
所述接收模块用于确定是否接收到用户输入的随机指示码,所述第三存储模块用于存储预先设定的用户口令,所述第二算法模块用于利用预设的第二加密算法对所述第三存储模块中存储的用户口令和所述随机指示码进行计算,生成本次的解锁码Ⅱ,所述第二输出模块用于以第二预设方式将所述解锁码Ⅱ通知用户;
其中,预设第一加密算法与预设第二加密算法相同。
如附图3所示,所述密码锁还包括连接于所述随机数发生器的开锁触发模块,以及连接于所述开锁触发模块的第一检测模块、第二检测模块和第三检测模块;
所述第一检测模块,用于确定是否满足第一触发条件,所述第一触发条件为:通过红外线感测到有人靠近密码锁,且与密码锁之间的距离达到预设的距离;
所述第二检测模块用于确定是否满足第二触发条件,所述第二触发条件为:通过触摸屏检测到手指触摸信息,且该手指触摸信息将触摸屏由休眠模式转为点亮模式;
所述第三检测模块用于确定是否满足第三触发条件,所述第三触发条件为:指定用户端与密码锁之间的距离处于预设的距离范围内,且指定用户端与密码锁处于蓝牙配对成功状态;其中,密码锁内置的蓝牙模块与指定用户端的蓝牙模块预先已进行配对;
所述开锁触发模块,用于判断是否满足触发逻辑,若满足,则生成所述开锁触发指令,以触发密码锁的随机数发生器生成作为随机指示码的随机数;
所述触发逻辑为满足第一触发条件、第二触发条件、第三触发条件中的任意一种或多种。
若所述密码锁动态密码实现系统采用解锁码+钥匙共同开锁的方案,则所述密码锁还包括连接于所述开锁触发模块的第四检测模块,所述第四检测模块用于确定是否满足第四触发条件,所述第四触发条件为:检测到插入的钥匙与密码锁中的机械锁芯匹配;相应的,所述触发逻辑为满足第一触发条件、第二触发条件、第三触发条件、第四触发条件中的任意一种或多种。
如附图3和附图4所示,所述密码锁内预置有N个第一算法模块和第一调用模块,所述用户端预置有N个第二算法模块和第二调用模块;
所述第一调用模块用于分别连接N个第一算法模块,所述第二调用模块用于分别连接N个第二算法模块,且所述第一调用模块和所述第二调用模块预先配置相同的加密算法模块调用策略,以使得开锁时,所述密码锁中使用的第一算法模块与所述用户端使用的第二算法模块中运行的加密算法一致。
具体的,所述第一算法模块和所述第二算法模块内运行的算法包括但不限于HMAC、HASH等加密算法;根据算法的复杂度不同,算法可通过包括但不限于人工直接计算、软件模块实现、硬件模块实现等方式。
所述密码锁动态密码实现系统可增强对用户密码(用户口令)的保护,即使攻击者获取到用户每次输入的字符序列(随机指示码或者解锁码Ⅱ),也无法逆向推算出用户的真实用户密码,更无法解开密码锁。另外每次开锁的解锁码不同,即使获取之前的解锁码,也无法重复利用,有效增强了密码锁的安全性。
实施例4
本实施例与实施例3的区别在于:所述密码锁还设置工作模式管理模块,以及连接于所述工作模式管理模块的单口令控制模块和多口令控制模块;
所述单口令控制模块用于执行单口令控制模式,具体的,所述单口令控制模式:多个用户端与密码锁中预存的用户口令相同,且只存在一个有效用户口令,不同的用户端若要打开同一个密码锁,则需要预先协商一致,得到一个统一的用户口令;
所述多口令控制模块用于执行多口令控制模式,具体的,所述多口令控制模式为:多个用户端中预存的用户口令不同,每个用户端单独设置自己的用户口令并将自己的用户口令预存在同一密码锁中,不同用户端的用户口令通过用户标识进行区分,只需在输入解锁码Ⅱ时,同时输入用户标识,即可实现多个的用户端共同控制管理同一个密码锁,且多个的用户端之间不必预先协商一致。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:一种轨道交通用可发电闸机