CN111563980A - 一种蓝牙锁钥匙生成与认证方法 - Google Patents
一种蓝牙锁钥匙生成与认证方法 Download PDFInfo
- Publication number
- CN111563980A CN111563980A CN201910076596.6A CN201910076596A CN111563980A CN 111563980 A CN111563980 A CN 111563980A CN 201910076596 A CN201910076596 A CN 201910076596A CN 111563980 A CN111563980 A CN 111563980A
- Authority
- CN
- China
- Prior art keywords
- key
- factory
- user
- bluetooth lock
- authentication
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000006854 communication Effects 0.000 claims abstract description 22
- 238000004891 communication Methods 0.000 claims abstract description 18
- 238000012795 verification Methods 0.000 claims description 12
- 210000004899 c-terminal region Anatomy 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 244000035744 Hura crepitans Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000000246 remedial effect Effects 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- IEDVJHCEMCRBQM-UHFFFAOYSA-N trimethoprim Chemical compound COC1=C(OC)C(OC)=CC(CC=2C(=NC(N)=NC=2)N)=C1 IEDVJHCEMCRBQM-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C9/00—Individual registration on entry or exit
- G07C9/00174—Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys
- G07C9/00658—Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys operated by passive electrical keys
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C9/00—Individual registration on entry or exit
- G07C9/00174—Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys
- G07C9/00182—Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys operated with unidirectional data transmission between data carrier and locks
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C9/00—Individual registration on entry or exit
- G07C9/00174—Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys
- G07C9/00817—Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys where the code of the lock can be programmed
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C9/00—Individual registration on entry or exit
- G07C9/00174—Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys
- G07C9/00817—Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys where the code of the lock can be programmed
- G07C2009/00825—Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys where the code of the lock can be programmed remotely by lines or wireless communication
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mobile Radio Communication Systems (AREA)
- Lock And Its Accessories (AREA)
Abstract
本发明公开了一种蓝牙锁钥匙生成与认证方法,所述蓝牙锁的根密钥包括工厂根密钥、用户根密钥与按键根密钥;每一个类型的根密钥可以生成对应类型的钥匙,分别为工厂钥匙、用户钥匙与按键钥匙;蓝牙锁与钥匙的认证是通过APP进行的,其中,工厂根密钥是蓝牙锁初始化时生成,用户根密钥由蓝牙锁随机生成,防止根密钥丢失后,无法补救现象的发生,同时每次连接重新协商通讯钥匙,防止了重放被攻击的可能,三个根密钥生成三个钥匙,更保证了钥匙的安全。
Description
技术领域
本发明涉及蓝牙锁技术领域,尤其是涉及一种蓝牙锁钥匙生成与认证方法。
背景技术
由于门锁涉及到人身财产安全,因而对安全性的需求较高。由于蓝牙开锁***涉及到云端数据库及代码安全、APP数据及代码安全、固件数据及代码安全,这三端只要有一端产生漏洞,就会对整体安全性产生影响。
固件为蓝牙锁安全性的最重要一关,如果设计不当,很容易被黑客攻击,如最基本的通讯协议为明文,或者每次开门指令相同,或者开门逻辑被破解等情况下,黑客在不需要接触的情况下即可复制出数字钥匙。为了不让通讯协议明文传输,通讯过程中需要进行加密。由于低功耗蓝牙每次传输数据量有限,且算力小,只能选择对算力要求不高的对称算法。但如果对称算法加密密钥不变,则每次开门的指令均会相同,这样加密就失去了意义,固每次通讯过程中均需协商出一个密钥。而只用一定的逻辑算法去协商密钥,一旦逻辑被泄露,协商出的密钥也是非安全的;若蓝牙锁内置一个根密钥,此密钥存在于APP或云端。如果在APP中,也可能存在一些问题,如APP不小心被卸载,或手机被格式化,同时用户又没有带卡或者钥匙,就只能找锁匠开锁,或暴力拆解。同时APP安装包可以进行反编译,即使代码经过混淆或者使用沙箱等技术手段,破解也只是时间问题。如果根密钥被解析出来,锁就没有安全性可言。另外存储在APP中也不方便B端应用场景,即多管理员批量管理钥匙的需求,从这几点的情形来看,根密钥存储在云端是最好的选择,而APP在开锁中只扮演“中间人”的角色。
但在没有网络的时候,APP无法连接服务器,无法实现开锁。
根密钥存储在云端,且包含生成钥匙算法的“业务服务器”与存储根密钥的“密管中心”分开部署,一定程度上保证了根密钥的安全性。虽然服务器被攻破的概率极低,但世界上没有绝对的安全,一旦“密管中心”和“业务服务器”被攻破,会威胁到所有蓝牙锁的安全,引起大规模的安全事件。
如果蓝牙锁内部只有一种根密钥,想收回分发的钥匙(重新生成根密钥),很容易出现数据不同步问题。例如重新生成根密钥时,某一步出现了无法修复的中断,导致新的根密钥没有上传到服务器,这时锁的根密钥也就丢失了(相当于蓝牙功能不可用),而且没有补救措施。
为了解决上述问题,设计一种安全的蓝牙锁***是亟待解决的问题。
发明内容
本发明的目的是提供一种蓝牙锁钥匙生成与认证方法,通过用三种根密钥对应生成三种类型的根钥匙,在生成过程中,分别加入各自的原始数据,提高了钥匙的安全性。
本发明的上述发明目的是通过以下技术方案得以实现的:
一种蓝牙锁钥匙生成与认证方法,所述蓝牙锁的根密钥包括工厂根密钥、用户根密钥与按键根密钥;每一个类型的根密钥生成对应类型的钥匙,分别为工厂钥匙、用户钥匙与按键钥匙;通过用户APP实现蓝牙锁与用户钥匙的认证,其中,工厂根密钥是蓝牙锁初始化时生成,用户根密钥由蓝牙锁随机生成,按键根密钥为固定设置。
本发明进一步设置为:所述工厂根密钥生成所述工厂钥匙,包括以下步骤:
S31、将工厂根密钥拆分成两段,分别为工厂根密钥A和工厂根密钥B;
S32、将工厂原始数据与工厂根密钥B拼合在一起后,用工厂根密钥加密,得到的数据为工厂参数钥匙;
S33、将工厂参数钥匙拆分成两段,分别为工厂参数钥匙A和工厂参数钥匙B;
S34、将工厂参数钥匙A与工厂根密钥A拼合在一起后,再用工厂根密钥加密,得到的数据为工厂认证钥匙;
S35、将工厂参数钥匙与工厂认证钥匙拼合在一起,得到的数据即为工厂钥匙。
本发明进一步设置为:步骤S31中,工厂根密钥A包括12字节,工厂根密钥B包括4字节;步骤S33中,参数钥匙A包括4字节,参数钥匙B包括12字节。
本发明进一步设置为:所述按键根密钥生成所述按键钥匙的方法、所述用户根密钥生成所述用户钥匙的方法,与所述工厂根密钥生成所述工厂钥匙的方法相同,不同之处在于,生成所述按键钥匙过程中,用的是按键原始数据;生成所述用户钥匙过程中,用的是用户原始数据。
本发明进一步设置为:蓝牙锁分别与用户钥匙、按键钥匙、工厂钥匙的认证方法相同。
本发明进一步设置为:蓝牙锁与所述用户钥匙认证方法,用户APP的工作过程,包括以下步骤:
R1、用户APP连接蓝牙锁;
R2、用户APP采用用户钥匙向蓝牙锁发送请求认证;
R3、用户APP接收蓝牙锁发起的挑战,用认证钥匙解密并解析挑战数据,再利用挑战数据更新加密密钥,此时相当于协商出了通讯加密用的通讯密钥;
R4、用户APP向蓝牙锁回复挑战,并发送需要进行的操作给蓝牙锁;
R5、用户钥匙认证过程结束。
本发明进一步设置为:蓝牙锁与所述用户钥匙认证方法,蓝牙锁的工作过程,包括以下步骤:
蓝牙锁收到请求认证后,首先会生成认证钥匙,解密请求认证数据包后部分并校验,再解密参数钥匙获取并校验,若校验成功则会发起挑战,即产生挑战随机数后,生成挑战数据包并用认证钥匙加密发送给用户APP。
本发明进一步设置为:步骤R2中,请求认证数据包包括:参数钥匙、密钥类型、随机数、校验位,其中,参数钥匙包括16个字节,密钥类型包括1个字节,随机数包括2个字节、校验位包括1个字节,参数钥匙的前4个字节不加密,对参数钥匙的后12个字节、密钥类型、随机数、校验位用认证钥匙加密。
本发明进一步设置为:通讯密钥包括挑战数据2、认证钥匙的后半部分;其中,挑战数据2包括8个字节、认证钥匙的后半部分后8个字节;回复挑战与操作数据包包括挑战数据1、命令段、校验位,其中,挑战数据1包括4个字节、命令段包括15个字节、校验位包括1字节,回复挑战与操作数据包的命令段、校验位用通讯密钥加密,对挑战数据1不处理。
本发明进一步设置为:挑战数据包包括:认证回复、挑战数据1、挑战数据2、随机数、校验位,其中,认证回复包括2个字节、挑战数据1包括4个字节、挑战数据2包括8个字节、随机数包括5个字节、校验位包括1个字节,对认证回复、挑战数据1、挑战数据2、随机数的前2个字节用认证钥匙加密,对随机数的后3个字节、校验位不进行处理。
与现有技术相比,本发明的有益技术效果为:
1.本发明通过设置三个不同的根密钥,生成三个不同的根钥匙,保证了蓝牙锁的安全,解决了根密钥丢失后无法补救的问题。
2.进一步地,在更新用户根密钥的过程中,使用工厂根密钥进行验证与加密,提高了蓝牙锁的安全性。
附图说明
图1是本发明的一个具体实施例的初始化流程示意图。
图2是本发明的一个具体实施例的B端锁生成用户根密钥的流程示意图。
图3是本发明的一个具体实施例的C端锁生成用户根密钥的流程示意图。图4是本发明的一个具体实施例的服务器下发钥匙的流程示意图。
图5是本发明的一个具体实施例的蓝牙认证开锁的流程示意图。
图6是本发明的一个具体实施例的钥匙认证的流程示意图。
具体实施方式
以下结合附图对本发明作进一步详细说明。
本发明提供一种蓝牙锁***,包括工厂根密钥、用户根密钥、按键根密钥,在更新用户根密钥的过程中,使用工厂根密钥进行验证与加密,这样如果在更新用户根密钥时发生数据丢失,只需要再次进行更新用户根密钥,不会造成根密钥丢失问题。
“工厂根密钥”和“用户根密钥”为锁随机生成的,“按键根密钥”为固定的。每一个类型的根密钥可以生成对应类型的钥匙,因此钥匙也分为工厂钥匙(FactoryKey),用户钥匙(User Key)和按键钥匙(PressKey)。
在蓝牙锁的生产过程中,对蓝牙锁做初始化操作时生成的密钥为“工厂根密钥”,工厂钥匙(FactoryKey)为“工厂根密钥”生成的钥匙。在工厂时使用的出厂APP可以保证是安全的,因而可以认定“工厂根密钥”也是安全的。
“用户根密钥”多数是在正常使用环境生成,采用“工厂根密钥”加密“用户根密钥”以保证安全性,克服了使用“固定密钥”进行加密无法保证“用户根密钥”的安全性的问题。
蓝牙锁在添加“用户根密钥”时,要求用户填写一个自定义开门密码。此密码只存储于蓝牙锁和APP中,不上传到云端。此时相当于手机里只有密码和钥匙,服务器只有根密钥。每次开门时,APP中的密码和云端发的钥匙均与锁内信息对应起来才能打开蓝牙锁,解决了如果“密管中心”和“业务服务器”被攻破后,蓝牙锁安全不能保证的问题。
钥匙就是将代表一定意义的数据进行处理,并用根密钥加密得到的一组数据。APP得到的钥匙分两部分,一部分是验证用的验证钥匙AuthKey,一部分是用来验证权限等信息的参数钥匙ParamKey。此时APP不再纯做“中间人”,也没有得到锁的根密钥,不但解决了离线开门的情形,也解决了根密钥暴露的问题。
在蓝牙锁初始化时,会写入B端或C端的锁标识,其中B端表示用于集团性统一管理的锁,如酒店、小区门禁等,C端表示用于个人用户的锁,如家里的门锁。
B端蓝牙锁只能用工厂钥匙(FactoryKey)进行认证添加“用户根密钥”,B端蓝牙锁绑定到了某个集团或者小区,个人用户无法添加“用户根密钥”。APP的非集团账号也无法获得对应的工厂钥匙(FactoryKey),这样就防止了非集团用户恶意添加“用户根密钥”的情形。
在C端蓝牙锁的内部设置一个按键,只有能打开此蓝牙锁的人(即锁的拥有者)才能按到,解决了因为C端蓝牙锁与APP账号没有一一对应关系,无法判断某个账号是否有添加此蓝牙锁用户钥匙(UserKey)权限的问题。在按键被按下后,30秒内可以使用固定的按键钥匙(PressKey)进行认证并生成“用户根密钥”。
蓝牙锁在固件烧录完成后,内部数据均为默认值,需要进行初始化、生成用户密钥、服务器下发钥匙、蓝牙认证开锁四个步骤后才能实现蓝牙开锁功能。其中初始化是在工厂内部完成,其余步骤根据实际应用场景进行。
蓝牙锁初始化操作是向刚烧写完固件的锁设备中写入必要信息,生成“工厂根密钥”,并对应记录到服务器中。“工厂根密钥”产生后不可更改,只有重新烧写程序并清空内部数据后才可再次生成。
在本发明的一个具体实施例中,如图1所示,服务器、蓝牙锁、出厂APP协同工作,完成初始化过程。
服务器工作流程,包括以下步骤:
C1、服务器接收出厂APP发送的账号密码登陆请求后,验证账号权限和生产数量,若账号密码一致,则发送登陆成功信息给出厂APP,其中,账号密码是通过HTTPS加密方式发送;
C2、服务器接收出厂APP上报的MAC地址,进行MAC查重,生成蓝牙锁ID和密码ID,并记录相关数据;
C3、服务器发送ID和密码ID给出厂APP;
C4、服务器接收出厂APP发送的工厂根密钥密文,进行解密并存储。
出厂APP工作流程,包括以下步骤:
D1、出厂APP发送账号密码登陆请求给服务器,并接收服务器发送的登陆成功信息,其中,账号密码是通过HTTPS方式发送;
D2、出厂APP接收蓝牙锁的广播MAC地址,并上报给服务器;
D3、出厂APP接收服务器发送的蓝牙锁ID和密码ID;
D4、出厂APP实现与蓝牙锁的连接;并与蓝牙锁进行工厂钥匙认证,将蓝牙锁ID、密码ID、B/C端标识写入蓝牙锁;
D5、出厂APP接收蓝牙锁发送的写入成功信息,并发送初始化工厂根密钥指令给蓝牙锁;
D6、出厂APP接收蓝牙锁发送的工厂根密钥密文,并上报工厂根密钥密文给服务器;
D7、出厂APP断开与蓝牙锁的连接。
蓝牙锁工作流程,包括以下步骤:
E1、蓝牙锁广播发送MAC地址给出厂APP;
E2、蓝牙锁建立与出厂APP的连接;与出厂APP进行工厂钥匙认证;
E3、蓝牙锁写入ID、密码ID、B/C端标识;写入操作成功后,发送操作成功信息给出厂APP;
E4、蓝牙锁接收初始化工厂根密钥指令,随机生成新的工厂根密钥并存储,随机选择密钥加密工厂根密钥后,发送工厂根密钥密文给出厂APP;
E4、蓝牙锁断开与出厂APP的连接。
在本发明的一个具体实施例中,服务器、蓝牙锁、用户APP协同工作,生成用户根密钥。
“用户根密钥”,用于生成用户开门操作所用的用户钥匙(UserKey),“用户根密钥”存储在服务器中。对于具有生成“用户根密钥”权限的钥匙,可以重新生成“用户根密钥”。
在本发明的一个具体实施例中,如图2所示,B端蓝牙锁生成用户根密钥,服务器工作过程,包括以下步骤:
S11、服务器接收用户APP发送的账号密码登陆请求后,进行账号验证,若账号密码一致,则发送登陆成功信息给用户APP,其中,账号密码是通过HTTPS加密方式发送;
S12、服务器接收用户APP发送的广播密码ID,验证账号权限,并生成工厂钥匙(FactoryKey)发送给用户APP;
S13、服务器接收用户APP发送的用户根密钥密文,进行解密并存储。
用户APP工作过程,包括以下步骤:
A11、用户APP发送账号密码登陆请求给服务器,并接收服务器发送的登陆成功信息,其中,账号密码是通过HTTPS加密方式发送;
A12、用户APP接收蓝牙锁的广播密码ID,并上报给服务器;
A13、用户APP接收服务器发送的工厂钥匙;
A14、用户APP实现与蓝牙锁的连接;并与蓝牙锁进行工厂钥匙认证,发送生成用户根密钥指令给蓝牙锁;
A15、用户APP接收蓝牙锁发送的用户根密钥密文,并上报给服务器;
A16、用户APP断开与蓝牙锁的连接。
蓝牙锁工作过程,包括以下步骤:
B11、蓝牙锁发送广播密码ID给用户APP;
B12、蓝牙锁建立与用户APP的连接;并与用户APP进行工厂钥匙认证;
B13、蓝牙锁接收用户APP发送的生成用户根密钥指令;
B14、蓝牙锁随机生成新的用户根密钥,存储更新用户根密钥,并采用工厂根密钥加密用户根密钥,形成用户根密钥密文,上报给用户APP;
B15、蓝牙锁断开与用户APP的连接。
在本发明的一个具体实施例中,如图3所示,C端蓝牙锁生成用户根密钥,服务器工作过程,包括以下步骤:
S21、服务器接收用户APP发送的账号密码登陆请求后,进行账号验证,若账号密码一致,则发送登陆成功信息给用户APP,其中,账号密码是通过HTTPS加密方式发送;
S22、服务器接收用户APP发送的用户根密钥密文,进行解密并存储。
用户APP工作过程,包括以下步骤:
A21、用户APP发送账号密码登陆请求给服务器,并接收服务器发送的登陆成功信息,其中,账号密码是通过HTTPS方式发送;
A22、用户APP接收蓝牙锁广播的密码ID、C端标识信息;
A23、用户APP实现与蓝牙锁的连接;并与蓝牙锁进行按键钥匙认证,发送生成用户根密钥指令给蓝牙锁;
A25、用户APP接收蓝牙锁发送的用户根密钥密文,并上报给服务器;
A26、用户APP断开与蓝牙锁的连接。
蓝牙锁工作过程,蓝牙锁在按键被按下后的设定时间内,使用按键钥匙进行认证并生成用户根密钥,包括以下步骤:
B21、蓝牙锁按键被按下;
B22、蓝牙锁广播密码ID、C端标识信息给用户APP;
B23、蓝牙锁建立与用户APP的连接;并与用户APP进行按键钥匙认证;
B24、蓝牙锁接收用户APP发送的生成用户根密钥指令;
B25、蓝牙锁随机生成新的用户根密钥,更新用户根密钥并存储,并采用工厂根密钥加密用户根密钥,形成用户根密钥密文,并上报给用户APP;
B25、蓝牙锁断开与用户APP的连接。
优选地,设定时间为30秒。
在本发明的一个具体实施例中,当蓝牙锁具有“用户根密钥”之后,则可以计算出钥匙。如图4所示,服务器下发用户钥匙给用户APP的过程中,服务器工作流程,包括以下步骤:
F1、服务器接收用户APP发送的账号密码登陆信息后,进行账号验证,若验证成功,则发送登陆成功信息给用户APP,其中,账号密码是通过HTTPS加密方式发送;
F2、服务器下发用户钥匙给用户APP。
服务器下发用户钥匙过程中,用户APP工作流程,包括以下步骤:
F11、用户APP以HTTPS加密方式向服务器发送账号密码信息,请求登陆;
F12、用户APP接收服务器返回的登陆成功信号及下发的用户钥匙。
在本发明的一个具体实施例中,如图5所示,蓝牙锁认证开锁,只有具有权限的用户钥匙才能进行认证开锁,开锁时需要判断用户开锁信息,蓝牙锁工作过程包括以下步骤:
G1、蓝牙锁广播密码ID(Cipher ID)给用户APP;
G2、蓝牙锁建立与用户APP的连接;
G3、蓝牙锁与用户APP进行用户钥匙验证;
G4、蓝牙锁接收用户APP发送的操作信息,所述操作信息包括开门命令与用户自定密码;
G5、蓝牙锁开锁成功后,上报开锁成功信息给用户APP;
G6、蓝牙锁断开与用户APP的连接。
蓝牙锁认证开锁,用户APP工作过程,包括以下步骤:
H1、用户APP接收蓝牙锁的广播密码ID;
H2、用户APP建立与蓝牙锁的连接;
H3、用户APP与蓝牙锁进行用户钥匙验证;
H4、用户APP发送操作信息给蓝牙锁,所述操作信息包括开门命令与用户自定密码;
H5、用户APP接收蓝牙锁发送的开锁成功信息;
H6、用户APP断开与蓝牙锁的连接;
H7、用户APP上报用户根密钥密文给服务器存储。
在本发明的一个具体实施例中,不同类型的钥匙生成方法相同,采用AES或其他对称算法进行加密,区别在于,在生成钥匙过程中,不同类型的钥匙携带的原始数据(Data)(12字节)意义不同,使用的根密钥也不同。
具体地,工厂钥匙的生成包括如下步骤:
S31、将工厂根密钥拆分成两段工厂根密钥A和工厂根密钥B;工厂根密钥A包括12字节,工厂根密钥B包括4字节;
S32、将工厂原始数据(Data)与工厂根密钥B拼合在一起后,用工厂根密钥加密后,得到的数据为工厂参数钥匙(ParamKey),包括16个字节;
S33、将工厂参数钥匙(ParamKey)拆分成两段,工厂参数钥匙A(ParamKey A)和工厂参数钥匙B(ParamKey B),工厂参数钥匙A包括4字节,工厂参数钥匙B包括12字节;
S34、将工厂参数钥匙A与工厂根密钥A拼合在一起后,再用工厂根密钥加密,得到的数据为工厂认证钥匙,包括16个字节;
S35、将工厂参数钥匙与工厂认证钥匙拼合在一起,得到的数据即为工厂钥匙,包括32个字节。
同样地,按键钥匙的生成包括如下步骤:
S41、将按键根密钥拆分成两段按键根密钥A和按键根密钥B,按键根密钥A包括12字节,按键根密钥B包括4字节;
S42、将按键原始数据与按键根密钥B拼合在一起后,用按键根密钥加密后,得到的数据为按键参数钥匙,包括16个字节;
S43、将按键参数钥匙拆分成两段按键参数钥匙A和按键参数钥匙B,按键参数钥匙A包括4字节,按键参数钥匙B包括12字节;
S44、将按键参数钥匙A与按键根密钥A拼合在一起后,再用按键根密钥加密,得到的数据为按键认证钥匙,包括16个字节;
S45、将按键参数钥匙与按键认证钥匙拼合在一起,得到的数据即为按键钥匙。
同样地,用户根密钥生成所述用户钥匙,包括以下步骤:
S51、将用户根密钥拆分成两段,用户根密钥A和用户根密钥B,用户根密钥A包括12字节,用户根密钥B包括4字节;
S52、将用户原始数据与用户根密钥B拼合在一起后,用用户根密钥加密后,得到的数据为用户参数钥匙;
S53、将用户参数钥匙拆分成两段,用户参数钥匙A和用户参数钥匙B,用户参数钥匙A包括4字节,用户参数钥匙B包括12字节;
S54、将用户参数钥匙A与用户根密钥A拼合在一起后,再用用户根密钥加密,得到的数据为用户认证钥匙;
S55、将用户参数钥匙与用户认证钥匙拼合在一起,得到的数据即为用户钥匙。
在本发明的一个具体实施例中,不论哪种钥匙,蓝牙锁与钥匙的认证方法相同,不同点是钥匙后续操作的权限。例如工厂钥匙(FactoryKey)不可以开门,用户钥匙(UserKey)不可以添加“用户根密钥”等。
如图6所示,蓝牙锁与用户钥匙进行认证的过程中,用户APP的工作过程,包括如下步骤:
R1、用户APP连接蓝牙锁;
R2、用户APP采用用户钥匙向蓝牙锁发送请求认证(Auth);
R3、用户APP接收蓝牙锁发起的挑战,用认证钥匙(AuthKey)解密并解析挑战(Challenge)数据,再利用挑战(Challenge)数据更新加密密钥,此时相当于协商出了通讯加密用的通讯密钥;
R4、用户APP向蓝牙锁回复挑战,并发送需要进行的操作给蓝牙锁;
R5、用户钥匙认证过程结束。
蓝牙锁与用户钥匙进行认证的过程中,蓝牙锁的工作过程,包括如下步骤:
R11、蓝牙锁收到请求认证后,首先会生成认证钥匙(AuthKey),解密请求认证数据包后部分并校验,再解密参数钥匙(ParamKey)获取并校验,若校验成功则会发起挑战,即产生挑战(Challenge)随机数后,生成挑战数据包并用认证钥匙(AuthKey)加密发送给用户APP。
由钥匙生成过程可知,利用未加密的参数钥匙(ParamKey)及锁内部存储的根密钥,可以算出认证钥匙(AuthKey)。
其中,
步骤R2中,请求认证数据包结构,如表1所示:
请求认证数据包,包括:参数钥匙、密钥类型、随机数、校验位,其中,参数钥匙包括16个字节,密钥类型包括1个字节,随机数包括2个字节、校验位包括1个字节,参数钥匙的前4个字节不加密,对参数钥匙的后12个字节、密钥类型、随机数、校验位用验证钥匙加密。
步骤R11中,挑战数据包结构,如表2所示:
挑战数据包,包括:认证回复(AuthRespond)、挑战数据(ChallengeData)1、挑战数据(ChallengeData)2、随机数、校验位,其中,认证回复包括2个字节、挑战数据1包括4个字节、挑战数据2包括8个字节、随机数包括5个字节、校验位包括1个字节,对认证回复、挑战数据1、挑战数据2、随机数的前2个字节用验证钥匙加密,对随机数的后3个字节、校验位不进行处理。
步骤R3中,通讯密钥结构,如表3所示:
通讯密钥,包括挑战数据(ChallengeData)2、认证钥匙(AuthKey)的后半部分;其中,挑战数据2包括8个字节、认证钥匙的后半部分包括后8个字节。
步骤R4中,回复挑战与操作数据包结构,如表4所示:
回复挑战与操作数据包,包括挑战数据1、命令(Command)段、校验位,其中,挑战数据1包括4个字节、命令段包括15个字节、校验位包括1字节,回复挑战与操作数据包的命令段、校验位用通讯密钥加密,对挑战数据1不处理。
至此蓝牙认证过程结束。
可见通讯过程中,未将钥匙数据的原文暴露在通讯过程中,保证了通过无线抓包方式无法获取到钥匙。同时每次连接均重新协商了使用的通讯密钥,防止了重放攻击的可能。使用中间人攻击时,中间人获取不到通讯密钥,也无法进行数据篡改。
本具体实施方式的实施例均为本发明的较佳实施例,并非依此限制本发明的保护范围,故:凡依本发明的结构、形状、原理所做的等效变化,均应涵盖于本发明的保护范围之内。
Claims (10)
1.一种蓝牙锁钥匙生成与认证方法,其特征在于:所述蓝牙锁的根密钥包括工厂根密钥、用户根密钥与按键根密钥;每一个类型的根密钥生成对应类型的钥匙,分别为工厂钥匙、用户钥匙与按键钥匙;通过用户APP实现蓝牙锁与用户钥匙的认证,其中,工厂根密钥是蓝牙锁初始化时生成,用户根密钥由蓝牙锁随机生成,按键根密钥为固定设置。
2.根据权利要求1所述蓝牙锁钥匙生成与认证方法,其特征在于:所述工厂根密钥生成所述工厂钥匙,包括以下步骤:
S31、将工厂根密钥拆分成两段,分别为工厂根密钥A和工厂根密钥B;
S32、将工厂原始数据与工厂根密钥B拼合在一起后,用工厂根密钥加密,得到的数据为工厂参数钥匙;
S33、将工厂参数钥匙拆分成两段,分别为工厂参数钥匙A和工厂参数钥匙B;
S34、将工厂参数钥匙A与工厂根密钥A拼合在一起后,再用工厂根密钥加密,得到的数据为工厂认证钥匙;
S35、将工厂参数钥匙与工厂认证钥匙拼合在一起,得到的数据即为工厂钥匙。
3.根据权利要求2所述蓝牙锁钥匙生成与认证方法,其特征在于:步骤S31中,工厂根密钥A包括12字节,工厂根密钥B包括4字节;步骤S33中,参数钥匙A包括4字节,参数钥匙B包括12字节。
4.根据权利要求1所述蓝牙锁钥匙生成与认证方法,其特征在于:所述按键根密钥生成所述按键钥匙的方法、所述用户根密钥生成所述用户钥匙的方法,与所述工厂根密钥生成所述工厂钥匙的方法相同,不同之处在于,生成所述按键钥匙过程中,用的是按键原始数据;生成所述用户钥匙过程中,用的是用户原始数据。
5.根据权利要求1所述蓝牙锁钥匙生成与认证方法,其特征在于:蓝牙锁分别与用户钥匙、按键钥匙、工厂钥匙的认证方法相同。
6.根据权利要求1所述蓝牙锁钥匙生成与认证方法,其特征在于:蓝牙锁与所述用户钥匙认证方法,用户APP的工作过程,包括以下步骤:
R1、用户APP连接蓝牙锁;
R2、用户APP采用用户钥匙向蓝牙锁发送请求认证;
R3、用户APP接收蓝牙锁发起的挑战,用认证钥匙解密并解析挑战数据,再利用挑战数据更新加密密钥,此时相当于协商出了通讯加密用的通讯密钥;
R4、用户APP向蓝牙锁回复挑战,并发送需要进行的操作给蓝牙锁;
R5、用户钥匙认证过程结束。
7.根据权利要求1所述蓝牙锁钥匙生成与认证方法,其特征在于:蓝牙锁与所述用户钥匙认证方法,蓝牙锁的工作过程,包括以下步骤:
蓝牙锁收到请求认证后,首先会生成认证钥匙,解密请求认证数据包后部分并校验,再解密参数钥匙获取并校验,若校验成功则会发起挑战,即产生挑战随机数后,生成挑战数据包并用认证钥匙加密发送给用户APP。
8.根据权利要求6所述蓝牙锁钥匙生成与认证方法,其特征在于:步骤R2中,请求认证数据包包括:参数钥匙、密钥类型、随机数、校验位,其中,参数钥匙包括16个字节,密钥类型包括1个字节,随机数包括2个字节、校验位包括1个字节,参数钥匙的前4个字节不加密,对参数钥匙的后12个字节、密钥类型、随机数、校验位用认证钥匙加密。
9.根据权利要求6所述蓝牙锁钥匙生成与认证方法,其特征在于:通讯密钥包括挑战数据2、认证钥匙的后半部分;其中,挑战数据2包括8个字节、认证钥匙的后半部分后8个字节;回复挑战与操作数据包包括挑战数据1、命令段、校验位,其中,挑战数据1包括4个字节、命令段包括15个字节、校验位包括1字节,回复挑战与操作数据包的命令段、校验位用通讯密钥加密,对挑战数据1不处理。
10.根据权利要求7所述蓝牙锁钥匙生成与认证方法,其特征在于:挑战数据包包括:认证回复、挑战数据1、挑战数据2、随机数、校验位,其中,认证回复包括2个字节、挑战数据1包括4个字节、挑战数据2包括8个字节、随机数包括5个字节、校验位包括1个字节,对认证回复、挑战数据1、挑战数据2、随机数的前2个字节用认证钥匙加密,对随机数的后3个字节、校验位不进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910076596.6A CN111563980B (zh) | 2019-01-26 | 2019-01-26 | 一种蓝牙锁钥匙生成与认证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910076596.6A CN111563980B (zh) | 2019-01-26 | 2019-01-26 | 一种蓝牙锁钥匙生成与认证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111563980A true CN111563980A (zh) | 2020-08-21 |
CN111563980B CN111563980B (zh) | 2022-04-29 |
Family
ID=72074038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910076596.6A Active CN111563980B (zh) | 2019-01-26 | 2019-01-26 | 一种蓝牙锁钥匙生成与认证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111563980B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112396738A (zh) * | 2020-12-01 | 2021-02-23 | 深圳市汇顶科技股份有限公司 | 共享设备的解锁方法及相关设备 |
CN114148286A (zh) * | 2021-11-03 | 2022-03-08 | 中山市澳多电子科技有限公司 | 一种基于蓝牙和nfc的汽车控制*** |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4947163A (en) * | 1985-10-16 | 1990-08-07 | Supra Products, Inc. | Electronic security system with configurable key |
CN102945574A (zh) * | 2012-11-14 | 2013-02-27 | 李凯 | 移动设备控制锁闭***权限的装置和方法 |
CN103593892A (zh) * | 2013-11-06 | 2014-02-19 | 天津大学 | 一种基于挑战应答和对称加密的电子锁开启方法 |
CN104618422A (zh) * | 2014-08-22 | 2015-05-13 | 东风小康汽车有限公司重庆分公司 | 蓝牙式汽车启动控制方法和移动终端 |
US20160036594A1 (en) * | 2014-07-30 | 2016-02-04 | Master Lock Company | Wireless key management for authentication |
CN106851540A (zh) * | 2017-02-08 | 2017-06-13 | 飞天诚信科技股份有限公司 | 一种蓝牙配对的实现方法及装置 |
CN106934903A (zh) * | 2017-04-26 | 2017-07-07 | 杨昌华 | 一种蓝牙智能锁 |
CN107086915A (zh) * | 2017-05-25 | 2017-08-22 | 山东浪潮商用***有限公司 | 一种数据传输方法、数据发送端及数据接收端 |
CN107786550A (zh) * | 2017-10-17 | 2018-03-09 | 中电长城(长沙)信息技术有限公司 | 一种自助设备的安全通信方法、安全通信***及自助设备 |
CN107833334A (zh) * | 2017-11-29 | 2018-03-23 | 南华大学 | 基于蓝牙与移动网络的共用场所门锁密钥管理***及方法 |
CN107948961A (zh) * | 2017-12-23 | 2018-04-20 | 北京智辉空间科技有限责任公司 | 蓝牙定位***及方法 |
CN108989318A (zh) * | 2018-07-26 | 2018-12-11 | 中国电子科技集团公司第三十研究所 | 一种面向窄带物联网的轻量化安全认证及密钥交换方法 |
-
2019
- 2019-01-26 CN CN201910076596.6A patent/CN111563980B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4947163A (en) * | 1985-10-16 | 1990-08-07 | Supra Products, Inc. | Electronic security system with configurable key |
CN102945574A (zh) * | 2012-11-14 | 2013-02-27 | 李凯 | 移动设备控制锁闭***权限的装置和方法 |
CN103593892A (zh) * | 2013-11-06 | 2014-02-19 | 天津大学 | 一种基于挑战应答和对称加密的电子锁开启方法 |
US20160036594A1 (en) * | 2014-07-30 | 2016-02-04 | Master Lock Company | Wireless key management for authentication |
CN104618422A (zh) * | 2014-08-22 | 2015-05-13 | 东风小康汽车有限公司重庆分公司 | 蓝牙式汽车启动控制方法和移动终端 |
CN106851540A (zh) * | 2017-02-08 | 2017-06-13 | 飞天诚信科技股份有限公司 | 一种蓝牙配对的实现方法及装置 |
CN106934903A (zh) * | 2017-04-26 | 2017-07-07 | 杨昌华 | 一种蓝牙智能锁 |
CN107086915A (zh) * | 2017-05-25 | 2017-08-22 | 山东浪潮商用***有限公司 | 一种数据传输方法、数据发送端及数据接收端 |
CN107786550A (zh) * | 2017-10-17 | 2018-03-09 | 中电长城(长沙)信息技术有限公司 | 一种自助设备的安全通信方法、安全通信***及自助设备 |
CN107833334A (zh) * | 2017-11-29 | 2018-03-23 | 南华大学 | 基于蓝牙与移动网络的共用场所门锁密钥管理***及方法 |
CN107948961A (zh) * | 2017-12-23 | 2018-04-20 | 北京智辉空间科技有限责任公司 | 蓝牙定位***及方法 |
CN108989318A (zh) * | 2018-07-26 | 2018-12-11 | 中国电子科技集团公司第三十研究所 | 一种面向窄带物联网的轻量化安全认证及密钥交换方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112396738A (zh) * | 2020-12-01 | 2021-02-23 | 深圳市汇顶科技股份有限公司 | 共享设备的解锁方法及相关设备 |
CN114148286A (zh) * | 2021-11-03 | 2022-03-08 | 中山市澳多电子科技有限公司 | 一种基于蓝牙和nfc的汽车控制*** |
Also Published As
Publication number | Publication date |
---|---|
CN111563980B (zh) | 2022-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106130982B (zh) | 基于pki体系的智能家电远程控制方法 | |
CN107612889B (zh) | 防止用户信息泄露的方法 | |
CN109495274A (zh) | 一种去中心化智能锁电子钥匙分发方法及*** | |
CN107154847A (zh) | 面向离线环境的密码生成方法、验证方法及其智能设备 | |
CN112104454B (zh) | 一种数据安全传输方法及*** | |
CN102685739B (zh) | 安卓企业应用的鉴权方法及*** | |
CN111181723B (zh) | 物联网设备间离线安全认证的方法和装置 | |
CN108650261B (zh) | 基于远程加密交互的移动终端***软件烧录方法 | |
CN111080845A (zh) | 临时解锁方法、***、门锁、管理员终端和可读存储介质 | |
CN111243133A (zh) | 一种基于动态密码生成和匹配的蓝牙门锁***及开启方法 | |
CN112672342B (zh) | 数据传输方法、装置、设备、***和存储介质 | |
CN104767766A (zh) | 一种Web Service接口验证方法、Web Service服务器、客户端 | |
CN112860791A (zh) | 一种跨网数据同步控制***、方法及存储介质 | |
CN105141629A (zh) | 一种基于WPA/WPA2 PSK多密码提升公用Wi-Fi网络安全性的方法 | |
CN111563980B (zh) | 一种蓝牙锁钥匙生成与认证方法 | |
CN111489462B (zh) | 一种个人用蓝牙钥匙*** | |
CN114697082B (zh) | 一种无服务器环境的加解密装置的生产及应用方法 | |
CN107566112A (zh) | 动态加解密方法及服务器 | |
CN108206738B (zh) | 一种量子密钥输出方法及*** | |
CN108650096A (zh) | 一种工业现场总线控制*** | |
CN107104792B (zh) | 一种便携式移动口令管理***及其管理方法 | |
CN111489461B (zh) | 一种集团用蓝牙钥匙*** | |
KR101996317B1 (ko) | 인증변수를 이용한 블록체인 기반의 사용자 인증 시스템 및 그 방법 | |
CN115242785A (zh) | 桌面云服务器与终端安全通信方法 | |
CN112054905B (zh) | 一种移动终端的安全通信方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 230001 China (Anhui) pilot Free Trade Zone, Hefei, Anhui Province a3-14, floor 14, block a, building J1, phase II, innovation industrial park, No. 2800, innovation Avenue, high tech Zone, Hefei Applicant after: Hefei Zhihui Space Technology Co.,Ltd. Address before: 100020 room 801, 8th floor, building 2, courtyard 16, Guangshun North Street, Chaoyang District, Beijing Applicant before: BEIJING ZHIHUI SPACE TECHNOLOGY CO.,LTD. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |