首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

指纹锁及其工作方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:深圳绿米联创科技有限公司

摘要:本发明公开一种指纹锁及其工作方法,该工作方法包括:主控MCU采用预设方式生成更新密钥,将待发送的操作指令和更新密钥利用其最新存储的密钥加密后加入第一通信报文中发送给指纹模组,并存储更新密钥;指纹模组接收到第一通信报文后,利用其最新存储的密钥对第一通信报文解密,并对解密得到的通信内容进行校验;指纹模组对通信内容校验成功后,存储更新密钥,执行通信内容中的操作指令;指纹模组将执行操作指令的操作结果采用其最新存储的更新密钥加密后,加入第二通信报文中,并将第二通信报文反馈给主控MCU;主控MCU校验第二通信报文并做相应处理。本发明方案实现了以低成本的方式有效提升指纹锁的安全性。

主权项:1.一种指纹锁的工作方法,其特征在于,所述指纹锁包括主控MCU和与所述主控MCU通信连接的指纹模组,该工作方法包括以下步骤:A、所述主控MCU采用预设方式生成更新密钥,将待发送的操作指令和所述更新密钥利用其最新存储的密钥加密后加入第一通信报文中,将所述第一通信报文发送给所述指纹模组,并存储所述更新密钥,其中,所述主控MCU生成更新密钥的预设方式为:所述主控MCU生成n字节的随机数,将其预先存储的所述指纹模组的MAC地址的其中a个字节与生成的n字节的随机数中的任意b个字节组成更新密钥;B、所述指纹模组接收到所述第一通信报文后,利用其最新存储的密钥对所述第一通信报文解密,并对解密得到的通信内容进行校验;C、所述指纹模组对所述通信内容校验成功后,存储所述更新密钥,执行所述通信内容中的操作指令;D、所述指纹模组将执行所述操作指令的操作结果采用其最新存储的所述更新密钥加密后,加入第二通信报文中,并将所述第二通信报文反馈给所述主控MCU;E、所述主控MCU采用其最新存储的更新密钥对所述第二通信报文进行解密,并对解密得到的内容进行校验,以根据校验结果做相应处理。

全文数据:指纹锁及其工作方法技术领域[0001]本发明涉及智能锁领域,特别涉及一种指纹锁及其工作方法。背景技术[0002]随着指纹锁市场的火爆,各种破解方法和视频也逐渐暴漏在公众的视野,指纹锁的安全性也越来越被消费者关注。目前的指纹锁,指纹模组和主控MCU之间多采用UART或SPI接口进行通信,通信内容是明文或采用简单的加密,很容易被重放攻击方式破解,如果采用硬件加密方案,则需要额外增加加密芯片,这样增大了体积和成本。发明内容[0003]本发明的主要目的是提供一种指纹锁及其工作方法,旨在以低成本的方式提升指纹锁的安全性。[0004]为实现上述目的,本发明提出的指纹锁的工作方法,所述指纹锁包括主控MCU和与所述主控MCU通信连接的指纹模组,该工作方法包括以下步骤:[0005]A、所述主控MCU采用预设方式生成更新密钥,将待发送的操作指令和所述更新密钥利用其最新存储的密钥加密后加入第一通信报文中,将所述第一通信报文发送给所述指纹模组,并存储所述更新密钥;[0006]B、所述指纹模组接收到所述第一通信报文后,利用其最新存储的密钥对所述第一通信报文解密,并对解密得到的通信内容进行校验;[0007]C、所述指纹模组对所述通信内容校验成功后,存储所述更新密钥,执行所述通信内容中的操作指令;[0008]D、所述指纹模组将执行所述操作指令的操作结果采用其最新存储的所述更新密钥加密后,加入第二通信报文中,并将所述第二通信报文反馈给所述主控MCU;[0009]E、所述主控MCU采用其最新存储的更新密钥对所述第二通信报文进行解密,并对解密得到的内容进行校验,以根据校验结果做相应处理。[0010]优选地,在步骤A之后,所述工作方法还包括:[0011]若所述主控M⑶在第一预设时间内未收到所述指纹模组的回复,则判断所述主控MCU是否重发过所述第一通信报文;[0012]若所述主控M⑶没有重发过所述第一通信报文,则将所述第一通信报文重发给所述指纹模组;[0013]若所述主控MCU重发过所述第一通信报文,则结束与所述指纹模组的通信。[0014]优选地,所述工作方法还包括:[0015]若所述指纹模组对所述通信内容校验失败,则发送第三通信报文给所述主控MCU,所述第三通信报文中包含状态为校验失败的确认字符;[0016]所述主控M⑶对接收到所述第三通信报文进行校验,在对所述第三通信报文的完整性校验失败或者确认所述第三通信报文中的确认字符的状态为校验失败后,判断所述主控MCU是否重发过所述第一通信报文;[0017]若所述主控M⑶没有重发过所述第一通信报文,则将所述第一通信报文重发给所述指纹模组;[0018]若所述主控MOJ重发过所述第一通信报文,则结束与所述指纹模组的通信。[0019]优选地,所述第一通信报文和所述第二通信报文中均包含加密魔数,所述指纹模组对解密得到的通信内容的校验和所述主控MCU对解密得到的内容的校验均包括:完整性校验和魔数校验。[0020]优选地,所述主控MCU生成更新密钥的预设方式包括:[0021]所述主控M⑶生成n字节的随机数,将其预先存储的所述指纹模组的MAC地址的其中a个字节与生成的n字节的随机数中的任意b个字节组成更新密钥。[0022]优选地,所述工作方法还包括:[0023]所述主控MCU向所述指纹模组发送MAC地址读取命令;[0024]所述指纹模组反馈自身的MAC地址给所述主控MCU;[0025]所述主控MCU对所述MAC地址进行存储。[0026]本发明还提出一种指纹锁,包括主控MCU和与所述主控MCU通信连接的指纹模组;[0027]所述主控M⑶用于采用预设方式生成更新密钥,将待发送的操作指令和所述更新密钥利用其最新存储的密钥加密后加入第一通信报文中,将所述第一通信报文发送给所述指纹模组,并存储所述更新密钥;[0028]所述指纹模组用于在接收到所述第一通信报文后,利用其最新存储的密钥对所述第一通信报文解密,并对解密得到的通信内容进行校验;并在通信内容校验成功后,存储所述更新密钥,执行所述通信内容中的操作指令;以及将执行所述操作指令的操作结果采用其最新存储的所述更新密钥加密后,加入第二通信报文中,将所述第二通信报文反馈给所述主控MCU;[0029]所述主控M⑶还用于采用其最新存储的更新密钥对所述第二通信报文进行解密,并对解密得到的内容进行校验,以根据校验结果做相应处理。[0030]优选地,所述主控MCU还用于在第一预设时间内未收到所述指纹模组的回复后,判断是否重发过所述第一通信报文给所述指纹模组;并在确定没有重发过所述第一通信报文后,将所述第一通信报文重发给所述指纹模组;以及在确定重发过所述第一通信报文给所述指纹模组后,结束与所述指纹模组的通信。[0031]优选地,所述指纹模组还用于在对所述通信内容校验失败后,发送第三通信报文给所述主控MCU,所述第三通信报文中包含状态为校验失败的确认字符;[0032]所述主控MCU还用于对接收到所述第三通信报文进行校验,在对所述第三通信报文的完整性校验失败或者确认所述第三通信报文中的确认字符的状态为校验失败后,判断是否重发过所述第一通信报文给所述指纹模组;并在确定没有重发过所述第一通信报文后,将所述第一通信报文重发给所述指纹模组;以及在确定重发过所述第一通信报文给所述指纹模组后,结束与所述指纹模组的通信。[0033]优选地,所述主控MCU生成更新密钥的预设方式包括:[0034]所述主控MCU生成n字节的随机数,将其预先存储的所述指纹模组的MAC地址的其中a个字节与生成的n字节的随机数中的任意b个字节组成更新密钥。[0035]本发明技术方案,主控MCU每一次与指纹模组的通信都会先更新密钥,然后将更新密钥与操作指令一起采用上一次发给指纹模组的密钥进行加密后,加入通信报文中发送给指纹模组,指纹模组解密主控MCU发送的通信报文并校验成功后,存储解密得到的通信内容中的更新密钥,以用于下次对MCU发送的通信报文进行解密,如此实现主控MCU与指纹模组之间每一次通信均采用不同的密钥,有效的避免了互换指纹模组破解以及重放攻击,保证了指纹锁的安全性;同时本方案并没有额外增加硬件芯片,不会增加硬件额外的成本。附图说明[0036]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。[0037]图1为本发明指纹锁的工作方法一实施例的流程示意图;[0038]图2为本发明指纹锁的工作方法二实施例的流程示意图;[0039]图3为本发明指纹锁较佳实施例的模块结构示意图。[0040]本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式[0041]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0042]需要说明,本发明实施例中所有方向性指示诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。[0043]本发明提出一种指纹锁的工作方法,所述指纹锁包括主控MCU和与所述主控MCU通信连接的指纹模组。[0044]如图1所示,图1为本发明指纹锁的工作方法一实施例的流程示意图。本实施例中,该指纹锁的工作方法包括:[0045]步骤S10,所述主控MCU采用预设方式生成更新密钥,将待发送的操作指令和所述更新密钥利用其最新存储的密钥加密后加入第一通信报文中,将所述第一通信报文发送给所述指纹模组,并存储所述更新密钥;[0046]当主控M⑶要与指纹模组进行通信时,主控MCU先采用预设方式生成更新密钥,再利用最新存储的密钥(即上一次通信时存储的更新密钥对待发送的操作指令和本次的更新密钥进行加密,加密后的操作指令和更新密钥加入第一通信报文中,将该第一通信报文发送给指纹模组,主控MCU将本次的更新密钥存储,作为下一次通信时的加密密钥。本实施例中,所述主控MCU生成更新密钥的预设方式例如:1、随机生成N例如,8、16等字节的随机数;2、随机生成N字节的随机数,将所述N字节的随机数的奇数字节与预先获取的指纹模组的MAC地址的后几位字节组合形成更新密钥(如由指纹模组MAC地址的后4字节+主控M⑶生成的8个字节随机数的第1、3、5、7个字节组成);等等。本实施例的主控1〇]采用的加密算法优选为RC4算法,当然,还可以采用其它加密算法。[0047]步骤S20,所述指纹模组接收到所述第一通信报文后,利用其最新存储的密钥对所述第一通信报文解密,并对解密得到的通信内容进行校验;[0048]指纹模组接收到主控MCU发送的第一通信报文后,指纹模组利用其最新存储的密钥该最新存储的密钥是在与主控MCU的上一次通信中,从解密得到的通信内容中获得的更新密钥对第一通信报文进行解密,以将第一通信报文中的加密部分解密,从而得到第一通信报文的所有通信内容,然后指纹模组对解密得到的通信内容进行校验。本实施例中,所述第一通信报文中包括所有数据的异或运算值和加密魔数,所述指纹模组对所述通信内容的校验包括:对所述通信内容进行完整性校验的异或运算值的校验和或对通信内容中的密钥进行验证的的魔数校验;魔数是一个固定的字符,用来验证数据的正确性,每次解密后,为了确定正确解密了,需要将解密出的魔数和预存的魔数对比一下,如果一致就说明解密对了。[0049]步骤S30,所述指纹模组对所述通信内容校验成功后,存储所述更新密钥,执行所述通信内容中的操作指令;[0050]当指纹模组对解密后的通信内容校验成功,即确认对第一通信报文解密成功。指纹模组在校验确认对第一通信报文解密成功后,将从第一通信报文中解密得到的更新密钥进行存储,以用于对主控MCU下次发送的报文进行解密,以及作为对执行所述操作指令的操作结果的加密密钥;指纹模组执行所述通信内容中的操作指令。[0051]步骤S40,所述指纹模组将执行所述操作指令的操作结果采用其最新存储的所述更新密钥加密后,加入第二通信报文中,并将所述第二通信报文反馈给所述主控MCU;[0052]在指纹模组得到执行所述操作指令的操作结果后,采用其最新存储的那个更新密钥对该操作结果进行加密,然后将加密后的操作结果加入第二通信报文中,再将第二通信报文反馈给所述主控MCU。[0053]步骤S50,所述主控M⑶采用其最新存储的更新密钥对所述第二通信报文进行解密,并对解密得到的内容进行校验,以根据校验结果做相应处理。[0054]主控MCU收到指纹模组反馈的第二通信报文后,所述主控MCU利用其最新存储的密钥对所述指纹模组反馈的第二通信报文进行解密,并对解密后的第二通信报文进行校验,所述第二通信报文中包括所有数据的异或运算值和加密魔数,所述主控MCU对所述指纹模组反馈的第二通信报文的校验包括:对解密后的第二通信报文进行完整性校验的异或运算值的校验,和或,对通信内容中的密钥进行验证的魔数校验。[0055]主控M⑶校验成功(即比对一致后,根据第二通信报文中的操作结果进行相应处理例如开锁)。若校验失败,可以直接结束通信或进行其它处理。[0056]在一种实施方式中,主控MCU在第一通信报文中发送指纹采集的操作指令至指纹模组,指纹模组在执行了指纹采集的操作指令后,将执行的操作结果通过第二通信报文反馈给主控MCU,主控MCU对第二通信报文校验成功后,控制智能门锁内部的电机执行开锁操作。[0057]本发明技术方案,主控MCU每一次与指纹模组的通信都会先更新密钥,然后将更新密钥与操作指令一起采用上一次发给指纹模组的密钥进行加密后,加入通信报文中发送给指纹糗组,指纹糗组解岔主控MCU发送的通信报文并校验成功后,存储解密得到的通信内容中的更新密钥,以用于下次对MCU发送的通信报文进行解密和用于对反馈给主控MCU的操作结果进行加密,如此实现主控MCU与指纹模组之间每一次通信均采用不同的密钥,有效的避免了互换指纹模组破解以及重放攻击,保证了指纹锁的安全性;同时本方案并没有额外增加硬件芯片,不会增加硬件额外的成本。'[0058]进一步地,本实施例中,在步骤S10之后,该指纹锁的工作方法还包括:[0059]若所述主控MCU在第一预设时间内未收到所述指纹模组的回复,贝ij判断所述主控MCU是否重发过所述第一通信报文;[0060]主控MCU在发送第一通信报文给指纹模组后,如果指纹模组在第一预设时间(例如10秒)内没有反馈,则判断为指纹模组没接收到主控MCU发送的第一通信报文或主控MCU的第一通信报文发送失败等异常情况,此时,主控M⑶判断之前是否重发过该第一通信报文,根据重发记录确定要不要再次重发第一通信报文。[0061]若所述主控M⑶没有重发过所述第一通信报文,则将所述第一通信报文重发给所述指纹模组;[0062]当主控MCU确定没有重发过该第一通信报文,则向指纹模组重发该第一通信报文,以免除由于发送失败或接收失败的这类偶然异常情况对通信交互的影响。[0063]若所述主控MCU重发过所述第一通信报文,则结束与所述指纹模组的通信。[0064]当主控MCU确定已经重发过该第一通信报文,则很可能是指纹模组或主控M⑶出现其它异常情况,此时,则不再重发第一通信报文,而直接结束与指纹模组的通信。[0065]如图2所示,图2为本发明指纹锁的工作方法二实施例的流程示意图;本实施例中,该指纹锁的工作方法还包括:[0066]步骤S60,若所述指纹模组对所述通信内容校验失败,则发送第三通信报文给所述主控MCU,所述第三通信报文中包含状态为校验失败的确认字符;[0067]当指纹模组对通信内容的校验出现数据异或运算值校验失败或者魔数校验失败时,说明指纹模组对第一通信报文的解密不成功,没有正确解密,此时指纹模组则反馈包含状态为校验失败的确认字符的第三通信报文给主控MCU,告诉主控MCU,指纹模组解密失败。[0068]步骤S7〇,所述主控MCU对接收到所述第三通信报文进行校验,在对所述第三通信报文的完整性校验失败或者确认所述第三通信报文中的确认字符的状态为校验失败后,判断所述主控MCU是否重发过所述第一通信报文;[0069]主控MCU接收指纹模组反馈的第三通信报文后,先校验该第三通信报文,在本实施例中,第三通信报文中包含所有数据的异或运算值,对第三通信报文的完整性校验即对第三通信报文进行异或运算值的校验。如果校验失败,或者校验成功但发现确认字符的状态为校验失败,则判断是否要重复第一通信报文,让指纹模组再一次对第一通信报文进行解密。[0070]步骤S80,若所述主控M⑶没有重发过所述第一通信报文,则将所述第一通信报文重发给所述指纹模组;[0071]步骤S90,若所述主控M⑶重发过所述第一通信报文,则结束与所述指纹模组的通{目。[0072]进一步地,在本实施例中,所述指纹锁的工作方法还包括:[0073]所述主控MCU向所述指纹模组发送MAC地址读取命令;[0074]所述指纹模组反馈自身的MAC地址给所述主控MCU;[0075]所述主控MCU对所述MAC地址进行存储。[0076]上述步骤在主控M⑶与指纹模组第一次通信时执行。此外,在第一次通信时,主控M⑶还根据该MAC地址生成初始密钥进行存储,并发送给指纹模组存储。由于每个指纹模组的MAC地址是唯一的,因此根据MAC地址确认的初始密钥也是唯一的,因此,在后续使用中,若指纹模组被换掉,则新的指纹模组不能解密主控M⑶发送的第一通信报文,因此,本实施例有效的解决通过互换指纹模组来对指纹锁进行破解的隐患。[0077]优选地,本实施例中,所述主控MCU生成更新密钥的预设方式为:[0078]所述主控MCU生成n字节的随机数,将其预先存储的所述指纹模组的MAC地址的其中a个字节例如后4个字节与生成的n字节例如8字节的随机数中的任意b个字节例如第1、3、5、7这4个字节组成更新密钥。[0079]当然,在其它实施例中,主控MCU生成更新密钥的方式还可以为其它方案。[0080]如图3所示,本发明还提出一种指纹锁10,包括主控M⑶101和与所述主控MCU101通信连接的指纹模组102;所述主控M⑶101用于采用预设方式生成更新密钥,将待发送的操作指令和所述更新密钥利用其最新存储的密钥加密后加入第一通信报文中,将所述第一通信报文发送给所述指纹模组102,并存储所述更新密钥;[0081]当主控MCU101要与指纹模组102进行通信时,主控MCU101先采用预设方式生成更新密钥,再利用最新存储的密钥(即上一次通信时存储的更新密钥对待发送的操作指令和本次的更新密钥进行加密,加密后的操作指令和更新密钥加入第一通信报文中,将该第一通信报文发送给指纹模组102,主控MCU101将本次的更新密钥存储,作为下一次通信时的加密密钥。本实施例中,所述主控MCU101生成更新密钥的预设方式例如:1、随机生成N例如,8、16等字节的随机数;2、随机生成N字节的随机数,将所述N字节的随机数的奇数字节与预先获取的指纹模组102的MAC地址的后几位字节组合形成更新密钥如由指纹模组102MAC地址的后4字节+主控MCU101生成的8个字节随机数的第1、3、5、7个字节组成);等等。本实施例的主控MCU101采用的加密算法优选为RC4算法,当然,还可以采用其它加密算法。[0082]所述指纹模组102用于在接收到所述第一通信报文后,利用其最新存储的密钥对所述第一通信报文解密,并对解密得到的通信内容进行校验;并在通信内容校验成功后,存储所述更新密钥,执行所述通信内容中的操作指令;以及将执行所述操作指令的操作结果采用其最新存储的所述更新密钥加密后,加入第二通信报文中,将所述第二通信报文反馈给所述主控MCU101;[0083]指纹模组102接收到主控M⑶101发送的第一通信报文后,指纹模组102利用其最新存储的密钥该最新存储的密钥是在与主控MCU101的上一次通信中,从解密得到的通信内容中获得的更新密钥对第一通信报文进行解密,以将第一通信报文中的加密部分解密,从而得到第一通信报文的所有通信内容,然后指纹模组102对解密得到的通信内容进行校验。本实施例中,所述第一通信报文中包括所有数据的异或运算值和加密魔数,所述指纹模组1〇2对所述通信内容的校验包括:对所述通信内容进行完整性校验的异或运算值的校验和或对通信内容中的的密钥进行验证的魔数校验;魔数是一个固定的字符,用来验证数据的正确性,每次解密后,为了确定正确解密了,需要将解密出的魔数和预存的魔数对比一下,如果一致就说明解密对了。当指纹模组102对解密后的通信内容校验成功,即确认对第一通信报文解密成功。指纹模组102在校验确认对第一通信报文解密成功后,将从第一通信报文中解密得到的更新密钥进行存储,以用于对主控MCU101下次发送的报文进行解密,以及作为对执行所述操作指令的操作结果的加密密钥;并且指纹模组102执行所述通信内容中的操作指令,在得到执行所述操作指令的操作结果后,采用其最新存储的那个更新密钥对该操作结果进行加密,然后将加密后的操作结果加入第二通信报文中,再将第二通信报文反馈给所述主控M⑶101。第二通信报文中包含初始密钥,初始密钥为主控MCU101与指纹模组102预先确定,主控MCU101与指纹模组102中都存储了该初始密钥。[0084]所述主控MCU101还用于采用其最新存储的更新密钥对所述第二通信报文进行解密,并对解密得到的内容进行校验,以根据校验结果做相应处理。[0085]主控MCU101收到指纹模组102反馈的第二通信报文后,所述主控MCU101利用其最新存储的密钥对所述指纹模组102反馈的第二通信报文进行解密,并对解密后的第二通信报文进行校验,所述第二通信报文中包括所有数据的异或运算值和加密魔数,所述主控MCU101对所述指纹模组反馈的第二通信报文的校验包括:对解密后的第二通信报文进行完整性校验的异或运算值的校验,和或,对通信内容中的密钥进行验证的魔数校验。[0086]主控M⑶101校验成功(即比对一致后,根据第二通信报文中的操作结果进行相应处理例如开锁)。若校验失败,可以直接结束通信或进行其它处理。[0087]在一种实施方式中,主控M⑶101在第一通信报文中发送指纹采集的操作指令至指纹模组1〇2,指纹模组1〇2在执行了指纹采集的操作指令后,将执行的操作结果通过第二通信报文反馈给主控MCU101,主控MCU101对第二通信报文校验成功后,控制智能门锁内部的电机执行开锁操作。[0088]本发明技术方案,主控MCU101每一次与指纹模组1〇2的通信都会先更新密钥,然后将更新密钥与操作指令一起采用上一次发给指纹模组102的密钥进行加密后,加入通信报文中发送给指纹模组1〇2,指纹模组102解密主控MCU101发送的通信报文并校验成功后,存储解密得到的通信内容中的更新密钥,以用于下次对ICU发送的通信报文进行解密和用于对反馈给主控M⑶101的操作结果进行加密,如此实现主控MCU101与指纹模组1〇2之间每一次通信均采用不同的密钥,有效的避免了互换指纹模组1〇2破解以及重放攻击,保证了指纹锁10的安全性;同时本方案并没有额外增加硬件芯片,不会增加硬件额外的成本。[0089]进一步地,本实施例中,所述主控M⑶101还用于在第一预设时间内未收到所述指纹模组102的回复后,判断是否重发过所述第一通信报文给所述指纹模组1〇2;并在确定没有重发过所述第一通信报文后,将所述第一通信报文重发给所述指纹模组102;以及在确定重发过所述第一通信报文给所述指纹模组102后,结束与所述指纹模组1〇2的通信。[0090]主控MCT101在发送第一通信报文给指纹模组102后,如果指纹模组102在第一预设时间(例如10秒)内没有反馈,则判断为指纹模组102没接收到主控MCU101发送的第一通信报文或主控MCU101的第一通信报文发送失败等异常情况,此时,主控1:1]1〇1判断之前是否重发过该第一通信报文,根据重发记录确定要不要再次重发第一通信报文。当主控确定没有重发过该第一通信报文,则向指纹模组1〇2重发该第一通信报文,以免除由于发送失败或接收失败的这类偶然异常情况对通信交互的影响。当主确定己经重发过该第一通信报文,则很可能是指纹模组1〇2或主控M⑶101出现其它异常情况,此时,则不再重发第一通信报文,而直接结束与指纹模组102的通信。[0091]优选地,所述指纹模组102还用于在对所述通信内容校验失败后,发送第三通信报文给所述主控MCU101,所述第三通信报文中包含状态为校验失败的确认字符;[0092]所述主控MCU101还用于对接收到所述第三通信报文进行校验,在对所述第三通信报文的完整性校验失败或者确认所述第三通信报文中的确认字符的状态为校验失败后,判断是否重发过所述第一通信报文给所述指纹模组102;并在确定没有重发过所述第一通信报文后,将所述第一通信报文重发给所述指纹模组102;以及在确定重发过所述第一通信报文给所述指纹模组102后,结束与所述指纹模组102的通信。[0093]当指纹模组102对通信内容的校验出现数据异或运算值校验失败或者魔数校验失败时,说明指纹模组102对第一通信报文的解密不成功,没有正确解密,此时指纹模组102则反馈包含状态为校验失败的确认字符的第三通信报文给主控M⑶101,告诉主控MCU101,指纹模组102解密失败。主控MCU101接收指纹模组102反馈的第三通信报文后,先对第三通信报文进行完整性校验;在本实施例中,第三通信报文中包含所有数据的异或运算值,对第三通信报文的完整性校验即对第三通信报文进行异或运算值的校验;如果对第三通信报文的完整性校验失败,或者完整性校验成功但发现确认字符的状态为校验失败,则判断是否要重复第一通信报文,让指纹模组102再一次对第一通信报文进行解密。[0094]进一步地,本实施例中,所述主控M⑶101还用于向所述指纹模组发送MAC地址读取命令,并对指纹模组102反馈的MAC地址进行存储;[0095]所述指纹模组102还用于在接收到MAC地址读取命令后,反馈自身的MAC地址给所述主控MCU101。[00%]上述操作在主控MCU101与指纹模组102第一次通信时执行。此外,在第一次通信时,主控MCU101还根据该MAC地址生成初始密钥进行存储,并发送给指纹模组1〇2存储。由于每个指纹模组1〇2的MAC地址是唯一的,因此根据MAC地址确认的初始密钥也是唯一的,因此,在后续使用中,若指纹模组102被换掉,则新的指纹模组102不能解密主控M⑶发送的第一通信报文,因此,本实施例有效的解决通过互换指纹模组102来对指纹锁10进行破解的隐患。[0097]优选地,本实施例中,所述主控MCU101生成更新密钥的预设方式为:[0098]所述主控MCU101生成n字节的随机数,将其预先存储的所述指纹模组1〇2的MAC地址的其中a个字节例如后4个字节与生成的n字节例如8字节的随机数中的任意b个字节例如第1、3、5、7这4个字节组成更新密钥。[00"]当然,在其它实施例中,主控MCU101生成更新密钥的方式还可以为其它方案。[0100]以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。

权利要求:1.—种指纹锁的工作方法,其特征在于,所述指纹锁包括主控MCU和与所述主控MCU通信连接的指纹模组,该工作方法包括以下步骤:A、所述主控MCU采用预设方式生成更新密钥,将待发送的操作指令和所述更新密钥利用其最新存储的密钥加密后加入第一通信报文中,将所述第一通信报文发送给所述指纹模组,并存储所述更新密钥;B、所述指纹模组接收到所述第一通信报文后,利用其最新存储的密钥对所述第一通信报文解密,并对解密得到的通信内容进行校验;C、所述指纹模组对所述通信内容校验成功后,存储所述更新密钥,执行所述通信内容中的操作指令;D、所述指纹模组将执行所述操作指令的操作结果采用其最新存储的所述更新密钥加密后,加入第二通信报文中,并将所述第二通信报文反馈给所述主控MCU;E、所述主控MCU采用其最新存储的更新密钥对所述第二通信报文进行解密,并对解密得到的内容进行校验,以根据校验结果做相应处理。2.如权利要求1所述的指纹锁的工作方法,其特征在于,在步骤A之后,所述工作方法还包括:若所述主控M⑶在第一预设时间内未收到所述指纹模组的回复,则判断所述主控M⑶是否重发过所述第一通信报文;若所述主控MCU没有重发过所述第一通信报文,则将所述第一通信报文重发给所述指纹模组;若所述主控MCU重发过所述第一通信报文,则结束与所述指纹模组的通信。3.如权利要求1所述的指纹锁的工作方法,其特征在于,所述工作方法还包括:若所述指纹模组对所述通信内容校验失败,则发送第三通信报文给所述主控MCU,所述第三通信报文中包含状态为校验失败的确认字符;所述主控MCU对接收到所述第三通信报文进行校验,在对所述第三通信报文的完整性校验失败或者确认所述第三通信报文中的确认字符的状态为校验失败后,判断所述主控MCU是否重发过所述第一通信报文;若所述主控MCU没有重发过所述第一通信报文,则将所述第一通信报文重发给所述指纹模组;若所述主控MCU重发过所述第一通信报文,则结束与所述指纹模组的通信。4.如权利要求1所述的指纹锁的工作方法,其特征在于,所述第一通信报文和所述第二通信报文中均包含加密魔数,所述指纹模组对解密得到的通信内容的校验和所述主控MCU对解密得到的内容的校验均包括:完整性校验和魔数校验。5.如权利要求1所述的指纹锁的工作方法,其特征在于,所述主控MCU生成更新密钥的预设方式包括:所述主控MCU生成n字节的随机数,将其预先存储的所述指纹模组的MAC地址的其中a个字节与生成的n字节的随机数中的任意b个字节组成更新密钥。6.如权利要求1至5中任意一项所述的指纹锁的工作方法,其特征在于,所述工作方法还包括:所述主控MCU向所述指纹模组发送MAC地址读取命令;所述指纹模组反馈自身的MAC地址给所述主控MCU;所述主控MCU对所述MAC地址进行存储。7.—种指纹锁,其特征在于,包括主控MCU和与所述主控MCU通信连接的指纹模组;所述主控MCU用于采用预设方式生成更新密钥,将待发送的操作指令和所述更新密钥利用其最新存储的密钥加密后加入第一通信报文中,将所述第一通信报文发送给所述指纹模组,并存储所述更新密钥;所述指纹模组用于在接收到所述第一通信报文后,利用其最新存储的密钥对所述第一通信报文解密,并对解密得到的通信内容进行校验;并在通信内容校验成功后,存储所述更新密钥,执行所述通信内容中的操作指令;以及将执行所述操作指令的操作结果采用其最新存储的所述更新密钥加密后,加入第二通信报文中,将所述第二通信报文反馈给所述主控MCU;所述主控MCU还用于采用其最新存储的更新密钥对所述第二通信报文进行解密,并对解密得到的内容进行校验,以根据校验结果做相应处理。8.如权利要求7所述的指纹锁,其特征在于,所述主控MCU还用于在第一预设时间内未收到所述指纹模组的回复后,判断是否重发过所述第一通信报文给所述指纹模组;并在确定没有重发过所述第一通信报文后,将所述第一通信报文重发给所述指纹模组;以及在确定重发过所述第一通信报文给所述指纹模组后,结束与所述指纹模组的通信。9.如权利要求7所述的指纹锁,其特征在于,所述指纹模组还用于在对所述通信内容校验失败后,发送第三通信报文给所述主控MCU,所述第三通信报文中包含状态为校验失败的确认字符;所述主控M⑶还用于对接收到所述第三通信报文进行校验,在对所述第三通信报文的完整性校验失败或者确认所述第三通信报文中的确认字符的状态为校验失败后,判断是否重发过所述第一通信报文给所述指纹模组;并在确定没有重发过所述第一通信报文后,将所述第一通信报文重发给所述指纹模组;以及在确定重发过所述第一通信报文给所述指纹模组后,结束与所述指纹模组的通信。10.如权利要求7至9中任意一项所述的指纹锁,其特征在于,所述主控M⑶生成更新密钥的预设方式,包括:所述主控MCU生成n字节的随机数,将其预先存储的所述指纹模组的MAC地址的其中a个字节与生成的n字节的随机数中的任意b个字节组成更新密钥。

百度查询: 深圳绿米联创科技有限公司 指纹锁及其工作方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。

相关技术
相关技术
相关技术
相关技术