CN113038444A - 生成应用层密钥的方法和装置 - Google Patents
生成应用层密钥的方法和装置 Download PDFInfo
- Publication number
- CN113038444A CN113038444A CN202110317802.5A CN202110317802A CN113038444A CN 113038444 A CN113038444 A CN 113038444A CN 202110317802 A CN202110317802 A CN 202110317802A CN 113038444 A CN113038444 A CN 113038444A
- Authority
- CN
- China
- Prior art keywords
- layer key
- application layer
- link layer
- key
- function
- 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 46
- 230000006870 function Effects 0.000 claims description 185
- 230000006854 communication Effects 0.000 description 21
- 238000004891 communication Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 241000238633 Odonata Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/04—Key management, e.g. using generic bootstrapping architecture [GBA]
- H04W12/041—Key generation or derivation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/04—Key management, e.g. using generic bootstrapping architecture [GBA]
- H04W12/043—Key management, e.g. using generic bootstrapping architecture [GBA] using a trusted network node as an anchor
- H04W12/0431—Key distribution or pre-distribution; Key agreement
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本说明书实施例提供了一种生成应用层密钥的方法和装置。根据该实施例的方法,首先确定该与外部蓝牙设备建立蓝牙连接时使用的连接模式,然后根据确定的连接模式确定应用层密钥生成函数,然后获取在链路层使用的链路层动态参数,以及获取与外部蓝牙设备约定好的应用层密钥标识,通过利用该应用层密钥生成函数、链路层动态参数和应用层密钥标识,从而生成应用层密钥。
Description
技术领域
本说明书一个或多个实施例涉及蓝牙技术领域,尤其涉及生成应用层密钥的方法和装置。
背景技术
蓝牙技术是一种支持设备短距离通信的无线电技术。建立蓝牙连接的设备之间可以进行无线数据通信,为保证通信数据的安全性,除了在链路层使用链路层密钥对通信数据进行加密以外,还可以在应用层利用应用层密钥对通信数据进行加密,以实现对通信数据的双层加密。
目前,该应用层密钥是预置在蓝牙设备的固件中的,且各个蓝牙设备内预置的应用层密钥相同,应用层密钥容易被攻击者逆向破解。因此,需要提供一种更可靠的应用层密钥生成方案。
发明内容
本说明书一个或多个实施例描述了一种生成应用层密钥的方法和装置,以降低应用层密钥被攻击者破解的可能性。
根据第一方面,提供了一种生成应用层密钥的方法,包括:
确定与外部蓝牙设备建立蓝牙连接时使用的连接模式;
根据所述连接模式,确定应用层密钥生成函数;
根据所述应用层密钥生成函数,确定在链路层使用的链路层动态参数;
获取与所述外部蓝牙设备约定的应用层密钥标识;
根据所述应用层密钥生成函数、所述链路层动态参数和所述应用层密钥标识,生成应用层密钥。
在一个实施例中,所述连接模式为:基本速率/增强数据速率模式;
所述根据所述连接模式确定应用层密钥生成函数,包括:
将生成链路层密钥时使用的f2函数,确定为应用层密钥生成函数;
所述确定在链路层使用的链路层动态参数,包括:
将所述f2函数在计算链路层密钥时使用的各密钥参数中的随机数确定为所述链路层动态参数;
所述生成应用层密钥,包括:
将所述f2函数在计算链路层密钥时使用的各密钥参数中的链路层密钥标识替换为所述应用层密钥标识;
利用所述f2函数对替换后得到的各密钥参数进行计算,得到所述应用层密钥。
在一个实施例中,所述应用层密钥标识与所述链路层密钥标识不相同。
在一个实施例中,所述连接模式为:基本速率/增强数据速率模式,或者低功耗模式;
所述根据所述连接模式确定应用层密钥生成函数,包括:
将h6函数,确定为应用层密钥生成函数;
所述确定在链路层使用的链路层动态参数,包括:
获取与外部蓝牙设备建立所述蓝牙连接时生成的链路层密钥;
将所述链路层密钥确定为所述链路层动态参数;
所述生成应用层密钥,包括:
利用所述h6函数对所述应用层密钥标识和所述链路层密钥进行计算,得到所述应用层密钥。
在一个实施例中,当所述连接模式为基本速率/增强数据速率模式时;
所述链路层密钥是利用f2函数以及链路层密钥标识生成的;
所述应用层密钥标识与所述链路层密钥标识相同或不相同。
在一个实施例中,当所述连接模式为低功耗模式时;所述链路层密钥是利用f5函数生成的。
第二方面,还提供了一种生成应用层密钥的装置,包括:
连接模式确定单元,被配置为确定与外部蓝牙设备建立蓝牙连接时使用的连接模式;
应用层密钥生成函数确定单元,被配置为根据所述连接模式,确定应用层密钥生成函数;
链路层动态参数获取单元,被配置为根据所述应用层密钥生成函数,确定在链路层使用的链路层动态参数;
应用层密钥标识获取单元,被配置为获取与所述外部蓝牙设备约定的应用层密钥标识;
应用层密钥生成单元,被配置为根据所述应用层密钥生成函数、所述链路层动态参数和所述应用层密钥标识,生成应用层密钥。
在一个实施例中,所述连接模式为:基本速率/增强数据速率模式;
所述应用层密钥生成函数确定单元被配置为:将生成链路层密钥时使用的f2函数,确定为应用层密钥生成函数;
链路层动态参数获取单元被配置为:将所述f2函数在计算链路层密钥时使用的各密钥参数中的随机数确定为所述链路层动态参数;
所述应用层密钥生成单元被配置为:将所述f2函数在计算链路层密钥时使用的各密钥参数中的链路层密钥标识替换为所述应用层密钥标识;利用所述f2函数对替换后得到的各密钥参数进行计算,得到所述应用层密钥。
在一个实施例中,所述应用层密钥标识与所述链路层密钥标识不相同。
在一个实施例中,所述连接模式为:基本速率/增强数据速率模式,或者低功耗模式;
所述应用层密钥生成函数确定单元被配置为:将h6函数,确定为应用层密钥生成函数;
所述链路层动态参数获取单元被配置为:获取与外部蓝牙设备建立所述蓝牙连接时生成的链路层密钥;将所述链路层密钥确定为所述链路层动态参数;
所述应用层密钥生成单元被配置为:利用所述h6函数对所述应用层密钥标识和所述链路层密钥进行计算,得到所述应用层密钥。
在一个实施例中,当所述连接模式为基本速率/增强数据速率模式时;
所述链路层密钥是利用f2函数以及链路层密钥标识生成的;
所述应用层密钥标识与所述链路层密钥标识相同或不相同。
在一个实施例中,当所述连接模式为低功耗模式时;所述链路层密钥是利用f5函数生成的。
根据第三方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现本说明书任一实施例所述的方法。
在本说明书实施例提供的一种生成应用层密钥的方法和装置,蓝牙设备根据与外部蓝牙设备建立蓝牙连接时使用的连接模式,确定应用层密钥生成函数,并根据确定的应用层密钥生成函数,确定在链路层使用的链路层动态参数,根据应用层密钥生成函数、链路层动态参数和与与外部蓝牙设备约定的应用层密钥标识,生成应用层密钥。由于链路层使用的链路层动态参数是动态生成的,因此,利用该链路层动态参数生成的应用层密钥也是动态变化的,所以可以降低应用层密钥被攻击者破解的可能性。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的生成应用层密钥的方法所应用的***架构的示意图;
图2是本说明书一个实施例提供的生成应用层密钥的方法的流程图;
图3是本说明书一个实施例提供的生成应用层密钥的装置的示意图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
目前,应用层密钥是由应用开发者编写,并将该应用层密钥预置在蓝牙设备的固件中或者硬编码在蓝牙设备的应用APP中,该应用层密钥是固定不变的,且各个蓝牙设备内预置的应用层密钥相同,一旦被攻击者逆向破解出来,攻击者就可以获取到各个蓝牙设备内的应用层密钥,对蓝牙设备之间数据通信的安全性造成影响。
如果需要提高蓝牙设备之间数据通信的安全性,可以考虑每次生成的应用层密钥是动态变化的,该应用层密钥可以通过使用函数对一些参数进行计算的方式来生成,但需要保证建立蓝牙连接的两个蓝牙设备都能够获知到每一次生成应用层密钥所使用的的函数和参数。
其中,每一次生成应用层密钥所使用的的函数,可以通过每次建立蓝牙连接时使用的连接模式来确定。
而对于生成应用层密钥所使用的参数,如果由其中一个蓝牙设备生成该参数后,再分发给另一个蓝牙设备,该分发过程不仅复杂,而且不安全。如此,可以考虑利用链路层使用的链路层动态参数,因为在每次建立蓝牙连接时,链路层本身就会产生链路层动态参数,且两端的蓝牙设备在链路层使用的链路层动态参数相同,因此,如果将该链路层使用的链路层动态参数作为生成应用层密钥时所使用的参数,不需要参数的分发过程,两端的蓝牙设备就会获知到该链路层动态参数。并且,每一次蓝牙连接时该链路层动态参数都是动态变化的,从而可以满足每次使用链路层动态参数生成的应用层密钥是动态变化的。
下面描述以上构思的具体实现方式。
为了方便对本说明书的理解,首先对本说明书所应用的***架构进行描述。如图1中所示,该***架构主要包括两个蓝牙设备。比如,一个蓝牙设备是蜻蜓主机,另一个蓝牙设备是蓝牙键盘。
其中,每一个蓝牙设备中均设置有蓝牙芯片,用于利用该蓝牙芯片与另一个蓝牙设备的蓝牙芯片之间建立蓝牙连接,成功建立蓝牙连接的两个蓝牙设备之间可以实现短距离的无线数据通信。在无线数据通信过程中,蓝牙设备会在应用层和链路层分别对通信数据进行一次加密,将两次加密后的通信数据发送给另一端蓝牙设备,另一端蓝牙设备在接收到加密的通信数据后,会通过对应的两次解密来获取到该通信数据,从而保证通信数据的传输安全性。由于链路层密钥是在建立蓝牙连接的过程中生成的,下面描述生成应用层密钥的方法的具体实现过程。
图2示出根据一个实施例的生成应用层密钥的方法的流程图。可以理解,该方法可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。参见图2,此后,具体的实现包括:
步骤200:确定与外部蓝牙设备建立蓝牙连接时使用的连接模式;
步骤202:根据所述连接模式,确定应用层密钥生成函数;
步骤204:根据所述应用层密钥生成函数,确定在链路层使用的链路层动态参数;
步骤206:获取与所述外部蓝牙设备约定的应用层密钥标识;
步骤208:根据所述应用层密钥生成函数、所述链路层动态参数和所述应用层密钥标识,生成应用层密钥。
在图2所示的生成应用层密钥的方法中,蓝牙设备可以根据与外部蓝牙设备建立蓝牙连接时使用的连接模式,确定应用层密钥生成函数,并根据确定的应用层密钥生成函数,确定在链路层使用的链路层动态参数,根据应用层密钥生成函数、链路层动态参数和与外部蓝牙设备约定的应用层密钥标识,生成应用层密钥。由于链路层使用的链路层动态参数是动态生成的,因此,利用该链路层动态参数生成的应用层密钥也是动态变化的,所以可以降低应用层密钥被攻击者破解的可能性。并且,该链路层使用的链路层动态参数是在建立蓝牙连接的过程中本身就会产生的,因此,将该已有参数作为生成应用层密钥所使用的参数,可以避免复杂的参数分发过程。
下面描述图2所示的各个步骤的实现方式。
在步骤200,确定与外部蓝牙设备建立蓝牙连接时使用的连接模式。
可以实现蓝牙连接的电子设备有很多类型,例如,手机、平板电脑、笔记本电脑、相机、鼠标、键盘、手环等。不同类型的设备在建立蓝牙连接时使用的连接模式不同。
本步骤中,确定出的蓝牙连接的连接模式可以包括两种:第一种是基础速率/增强数据速率(BR/EDR)模式,第二种是低耗能(LE)模式。其中,BR/EDR模式主要用于音频和流媒体应用,是以点对点网络拓扑结构创建一对一设备通信;LE模式多用于依靠电池工作的设备,使用点对点、广播和网络等多种网络拓扑结构。
在步骤202,根据确定出的连接模式,确定应用层密钥生成函数。
在本说明书实施例中,该应用层密钥生成函数是用来生成应用层密钥的,而生成的应用层密钥需要满足如下三个条件:
条件一、每次生成的应用层密钥是动态变化的。
条件二、两个蓝牙设备需要能够获知到每一次使用的应用层密钥生成函数以及应用层密钥生成函数中使用的密钥参数。
条件三、每次生成的应用层密钥与本次蓝牙连接中使用的其他密钥不相同。
其中,上述条件二中两个蓝牙设备需要能够获知到每一次使用的应用层密钥生成函数,可以通过与外部蓝牙设备建立蓝牙连接时使用的连接模式来确定,下面针对上述两种连接模式,分别对确定的应用层密钥生成函数进行说明。
一、连接模式为BR/EDR模式。
由于蓝牙标准中存在有多个计算函数,为节省研发成本,可以直接使用蓝牙标准中的计算函数来作为应用层密钥生成函数。在本说明书的一个实施例中,在该BR/EDR模式下,至少可以将蓝牙标准中的生成链路层密钥时使用的f2函数或将蓝牙标准中的h6函数作为应用层密钥生成函数,下面针对这两种函数分别进行说明。
方式A:将生成链路层密钥时使用的f2函数确定为应用层密钥生成函数。
在该BR/EDR模式下,蓝牙芯片在建立蓝牙连接完成后,会使用f2函数生成链路层密钥,该f2函数的表达式如下式(1)所示:
LK=f2(DHkey,N_master,N_slave,"btlk",BD_ADDR_master,BD_ADDR_slave)
(1)
其中,LK用于表征在BR/EDR模式下利用f2函数生成的链路层密钥,DHkey是蓝牙芯片建立蓝牙连接过程中生成的密钥,N_master是建立蓝牙连接的两个蓝牙设备中主蓝牙设备生成的随机数,N_slave是建立蓝牙连接的两个蓝牙设备中从蓝牙设备生成的随机数,"btlk"为链路层密钥标识,长度为32bit,BD_ADDR_master是建立蓝牙连接的两个蓝牙设备中主蓝牙设备的私有地址,BD_ADDR_slave是建立蓝牙连接的两个蓝牙设备中从蓝牙设备的私有地址。
根据上述f2函数的表达式可知,在利用f2函数计算链路层密钥时使用的密钥参数中包括两个随机数N_master和N_slave,由于这两个随机数是在每一次建立蓝牙连接过程中随机生成的,因此,在本说明书实施例中,可以将这两个随机数确定为步骤204中的在链路层使用的链路层动态参数。由于该链路层动态参数是动态变化的,那么在步骤208中利用f2函数和该链路层动态参数生成应用层密钥时,可以使得每次生成的应用层密钥是动态变化的,从而满足了上述条件一。
另外,在利用f2函数计算链路层密钥时使用的密钥参数,均已经在蓝牙连接建立过程中存储在了两端的蓝牙设备中。因此,可以将该利用f2函数计算链路层密钥时使用的密钥参数作为应用层密钥生成函数中所使用的的密钥参数。如此,不需要对密钥参数进行分发,两端的蓝牙设备就能够获知到应用层密钥生成函数中所使用的密钥参数。以及,应用层密钥生成函数通过连接模式来确定,从而满足了上述条件二。
可以理解,如果生成的应用层密钥与本次蓝牙连接中使用的其他密钥相同,比如,与链路层密钥相同,那么对通信数据使用两个相同的密钥进行加密,其安全性会受到影响,因此,可以将f2函数在计算链路层密钥时使用的密钥参数中的链路层密钥标识“btlk”替换为步骤206中获取的应用层密钥标识,使得利用f2函数在计算应用层密钥时使用的密钥参数与在利用f2函数计算链路层密钥时使用的密钥参数不同,那么生成的应用层密钥就会与链路层密钥不相同,从而满足了上述条件三。
基于上述描述,可以得出该应用层密钥生成函数的表达式如下式(2)所示:
APP_AES_Key=f2(DHkey,N_master,N_slave,KeyID,BD_ADDR_master,BD_ADDR_slave) (2)
其中,APP_AES_Key为利用f2函数生成的应用层密钥,KeyID为应用层密钥标识。
方式B:将h6函数确定为应用层密钥生成函数。
在蓝牙标准中存在一个h6函数,该h6函数的表达式如下式(3)所示:
Key=h6(W,KeyID0) (3)
其中,Key用于表征利用h6函数生成的密钥,W用于表征一个加密密钥,KeyID0是该函数中的一个密钥标识,长度为32bit。
由于该h6函数是对加密密钥和密钥标识进行计算生成密钥Key,那么可以考虑将该h6函数中使用的密钥参数进行更换,来生成本说明书实施例的应用层密钥,在本说明书实施例中,可以对式(3)进行密钥参数的更换,得到如下式(4)所示的h6函数的表达式:
App_AES_Key=h6(LK,KeyID) (4)
其中,APP_AES_Key为利用h6函数生成的应用层密钥,LK为在BR/EDR模式下通过式(1)利用f2函数以及链路层密钥标识生成的链路层密钥,KeyID为应用层密钥标识。
在利用该h6函数计算应用层密钥时使用的密钥参数中包括链路层密钥LK,根据对上述方式A的描述可知,由于在利用f2函数计算链路层密钥时使用的密钥参数中包括两个随机数,因此每一次建立蓝牙连接时生成的链路层密钥LK是动态变化的。在本说明书实施例中,可以将该链路层密钥确定为步骤204中的在链路层使用的链路层动态参数。由于该链路层动态参数是动态变化的,那么在步骤208中利用h6函数和该链路层动态参数生成应用层密钥时,可以使得每次生成的应用层密钥是动态变化的,从而满足了上述条件一。
另外,在每次建立蓝牙连接过程中,两端的蓝牙设备均生成并存储了该链路层密钥LK,因此,直接将该链路层密钥作为应用层密钥生成函数中所使用的的密钥参数,从而可以不需要对密钥参数进行分发,两端的蓝牙设备就能够获知到应用层密钥生成函数中所使用的密钥参数。以及,应用层密钥生成函数通过连接模式来确定,从而满足了上述条件二。
可以理解,在利用h6函数计算应用层密钥时使用的密钥参数(LK、KeyID)与蓝牙标准中h6函数计算Key时使用的密钥参数(W、KeyID0)不相同,因此,计算得到的应用层密钥与Key不相同,从而满足了上述条件三。
二、连接模式为LE模式。
在本说明书实施例中,在该LE模式下,至少可以将蓝牙标准中的h6函数作为应用层密钥生成函数。
根据对连接模式为BR/EDR模式下的方式B的描述可知,可以对式(3)进行密钥参数的更换,得到得到如下式(5)所示的h6函数的表达式:
App_AES_Key=h6(LTK,KeyID) (5)
其中,APP_AES_Key为利用h6函数生成的应用层密钥,LTK为在LE模式下利用f5函数生成的链路层密钥,KeyID为应用层密钥标识。
其中,f5函数的表达式如下式(6)所示:
LTK=f5(DHKey,Na,Nb,A,B) (6)
其中,DHKey为蓝牙芯片建立蓝牙连接过程中生成的密钥,Na是建立蓝牙连接的两个蓝牙设备中主蓝牙设备生成的随机数,Nb是建立蓝牙连接的两个蓝牙设备中从蓝牙设备生成的随机数,A是建立蓝牙连接的两个蓝牙设备中主蓝牙设备的私有地址,B是建立蓝牙连接的两个蓝牙设备中从蓝牙设备的私有地址。
在利用该h6函数计算应用层密钥时使用的密钥参数中包括链路层密钥LTK,是根据上述f5函数计算得到的,根据f5函数可知,在计算该链路密钥时使用的密钥参数中包括两个随机数Na和Nb,因此每一次建立蓝牙连接时生成的链路层密钥LTK是动态变化的。在本说明书实施例中,可以将该链路层密钥确定为步骤204中的在链路层使用的链路层动态参数。由于该链路层动态参数是动态变化的,那么在步骤208中利用h6函数和该链路层动态参数生成应用层密钥时,可以使得每次生成的应用层密钥是动态变化的,从而满足了上述条件一。
另外,在每次建立蓝牙连接过程中,两端的蓝牙设备均生成并存储了该链路层密钥LTK,因此,直接将该链路层密钥作为应用层密钥生成函数中所使用的的密钥参数,从而可以不需要对密钥参数进行分发,两端的蓝牙设备就能够获知到应用层密钥生成函数中所使用的密钥参数。以及,应用层密钥生成函数通过连接模式来确定,从而满足了上述条件二。
可以理解,在利用h6函数计算应用层密钥时使用的密钥参数(LTK、KeyID)与蓝牙标准中h6函数计算Key时使用的密钥参数(W、KeyID0)不相同,因此,计算得到的应用层密钥与Key不相同,从而满足了上述条件三。
在步骤204,根据应用层密钥生成函数,确定在链路层使用的链路层动态参数。
在本说明书实施例中,在步骤202中,确定的应用层密钥生成函数不同,那么获取的该链路层动态参数也不同,具体地:
如果在步骤202中,将生成链路层密钥时使用的f2函数确定为了应用层密钥生成函数,那么在本步骤204中,将f2函数在计算链路层密钥时使用的各密钥参数中的随机数确定为该链路层动态参数。
如果在步骤202中,将h6函数确定为了应用层密钥生成函数,那么在本步骤24中,首先获取与外部蓝牙设备建立蓝牙连接时生成的链路层密钥,然后将该链路层密钥确定为该链路层动态参数。
在步骤206,获取与外部蓝牙设备约定的应用层密钥标识。
根据步骤202可知,f2函数中的链路层密钥标识的长度以及h6函数中的密钥标识的长度均为32bit,那么为了便于计算,该应用层密钥标识的长度也可以为32bit。
在本说明书实施例中,该应用层密钥标识需要建立蓝牙连接的两个蓝牙设备预先约定好。例如,在一个可以实现的方式中,可以将应用层密钥标识预置在蓝牙设备的固件中,或者硬编码在蓝牙设备上安装的应用程序中。蓝牙设备可以从固件或硬编码中获取到该预置的应用层密钥标识。
在本说明书实施例中,该预置的应用层密钥标识的个数可以为一个或多个。在预置的应用层密钥标识为多个时,两个蓝牙设备就需要预先约定好应用层密钥标识的选取规则,以使两个蓝牙设备选择相同的应用层密钥标识。
根据步骤202中可知,需要生成的应用层密钥至少满足上述条件三。基于此,在如下两种前提下,应用层密钥标识需要满足的条件不同:
前提一,连接模式为BR/EDR模式,且应用层密钥生成函数为f2函数。
在该前提一下,应用层密钥标识需要满足的条件为:应用层密钥标识与链路层密钥标识不相同。
只有在应用层密钥标识与链路层密钥标识不相同时,在利用f2函数计算应用层密钥和链路层密钥时,所使用的密钥参数不完全相同,如此,生成的应用层密钥和链路层密钥不相同。
前提二,连接模式为BR/EDR模式,且应用层密钥生成函数为h6函数。
在该前提二下,应用层密钥标识需要满足的条件为:应用层密钥标识与链路层密钥标识相同或不相同。
由于在该前提二下,计算应用层密钥和计算链路层密钥使用的函数不同,因此,无论应用层密钥标识与链路层密钥标识相同还是不相同,计算得到的应用层密钥与链路层密钥都不相同。
在步骤208,根据所述应用层密钥生成函数、所述链路层动态参数和所述应用层密钥标识,生成应用层密钥。
在本说明书实施例中,步骤202中确定的应用层密钥生成函数不同,那么在生成应用层密钥时的计算过程不同,具体地:
情况一:应用层密钥生成函数为f2函数。
此种情况下,在步骤204中,是将f2函数在计算链路层密钥时使用的各密钥参数中包括的随机数确定为链路层动态参数。
相应地,步骤208的实现过程包括:
将所述f2函数在计算链路层密钥时使用的各密钥参数中的链路层密钥标识替换为所述应用层密钥标识;
利用所述f2函数对替换后得到的各密钥参数进行计算,得到所述应用层密钥。
情况二:应用层密钥生成函数为h6函数。
此种情况下,在步骤204中,是获取与外部蓝牙设备建立蓝牙连接时生成的链路层密钥;将链路层密钥确定为该链路层动态参数;
相应地,步骤208的实现过程包括:利用h6函数对应用层密钥标识和链路层密钥进行计算,得到应用层密钥。
以上完成了应用层密钥的生成过程。
在本说明书实施例中,应用层密钥在生成之后,可以存储在蓝牙设备中,以便蓝牙设备之间在数据通信时可以直接使用该应用层密钥。
而为了进一步提高数据通信的安全性,降低被攻击者破解的可能性,两个蓝牙设备之间可以执行一种应用层密钥的更新机制,以实现对应用层密钥的更新,以使更新后的应用层密钥与更新前的应用层密钥不同,在对应用层密钥更新后,蓝牙设备使用更新后的应用层密钥对接下来进行通信的数据进行加密解密。下面对应用层密钥的更新机制进行说明。
对应用层密钥进行更新的方式至少可以包括如下三种;
方式1、周期性更新。
在该方式下,可以设定一个更新周期,每当达到设定的更新周期后,则重新生成应用层密钥,将重新生成的应用层密钥对本地存储的应用层密钥进行更新。
方式2、跟随链路层密钥的更新机制。
在该方式下,每当链路层密钥需要重新生成时,则重新生成应用层密钥,并将重新生成的应用层密钥对本地存储的应用层密钥进行更新。
方式3、蓝牙设备重启后更新。
在该方式下,可以将应用层密钥记录在内存中,蓝牙设备在每次重启后该内存中的应用层密钥会被清除,此时就需要重新生成一个应用层密钥。
在上述说明书实施例中,蓝牙设备可以根据与外部蓝牙设备建立蓝牙连接时使用的连接模式,确定应用层密钥生成函数,并根据确定的应用层密钥生成函数,确定在链路层使用的链路层动态参数,根据应用层密钥生成函数、链路层动态参数和与外部蓝牙设备约定的应用层密钥标识,生成应用层密钥。由于链路层使用的链路层动态参数是动态生成的,因此,利用该链路层动态参数生成的应用层密钥也是动态变化的,所以可以降低应用层密钥被攻击者破解的可能性。并且,该链路层使用的链路层动态参数是在建立蓝牙连接的过程中本身就会产生的,因此,将该已有参数作为生成应用层密钥所使用的参数,可以避免复杂的参数分发过程。
另一方面的实施例,还提供了一种生成应用层密钥的装置。如图3示出一个实施例的生成应用层密钥的装置。可以理解,该装置可以通过任何具有计算、处理能力的装置、设备、平台和设备集群来实现。如图3所示,该装置30包括:
连接模式确定单元31,被配置为确定与外部蓝牙设备建立蓝牙连接时使用的连接模式;
应用层密钥生成函数确定单元32,被配置为根据所述连接模式,确定应用层密钥生成函数;
链路层动态参数获取单元33,被配置为根据所述应用层密钥生成函数,确定在链路层使用的链路层动态参数;
应用层密钥标识获取单元34,被配置为获取与所述外部蓝牙设备约定的应用层密钥标识;
应用层密钥生成单元35,被配置为根据所述应用层密钥生成函数、所述链路层动态参数和所述应用层密钥标识,生成应用层密钥。
一个可能的实现方式中,所述连接模式为:基本速率/增强数据速率模式;
所述应用层密钥生成函数确定单元被配置为:将生成链路层密钥时使用的f2函数,确定为应用层密钥生成函数;
链路层动态参数获取单元被配置为:将所述f2函数在计算链路层密钥时使用的各密钥参数中的随机数确定为所述链路层动态参数;
所述应用层密钥生成单元被配置为:将所述f2函数在计算链路层密钥时使用的各密钥参数中的链路层密钥标识替换为所述应用层密钥标识;利用所述f2函数对替换后得到的各密钥参数进行计算,得到所述应用层密钥。
一个可能的实现方式中,所述应用层密钥标识与所述链路层密钥标识不相同。
一个可能的实现方式中,所述连接模式为:基本速率/增强数据速率模式,或者低功耗模式;
所述应用层密钥生成函数确定单元被配置为:将h6函数,确定为应用层密钥生成函数;
所述链路层动态参数获取单元被配置为:获取与外部蓝牙设备建立所述蓝牙连接时生成的链路层密钥;将所述链路层密钥确定为所述链路层动态参数;
所述应用层密钥生成单元被配置为:利用所述h6函数对所述应用层密钥标识和所述链路层密钥进行计算,得到所述应用层密钥。
一个可能的实现方式中,当所述连接模式为基本速率/增强数据速率模式时;
所述链路层密钥是利用f2函数以及链路层密钥标识生成的;
所述应用层密钥标识与所述链路层密钥标识相同或不相同。
一个可能的实现方式中,当所述连接模式为低功耗模式时;所述链路层密钥是利用f5函数生成的。
本说明书一个实施例提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现执行说明书中任一个实施例中的方法。
可以理解的是,本说明书实施例示意的结构并不构成对生成应用层密钥的装置的具体限定。在说明书的另一些实施例中,生成应用层密钥的装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。
上述装置、***内的各模块之间的信息交互、执行过程等内容,由于与本说明书方法实施例基于同一构思,具体内容可参见本说明书方法实施例中的叙述,此处不再赘述。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、挂件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (13)
1.生成应用层密钥的方法,包括:
确定与外部蓝牙设备建立蓝牙连接时使用的连接模式;
根据所述连接模式,确定应用层密钥生成函数;
根据所述应用层密钥生成函数,确定在链路层使用的链路层动态参数;
获取与所述外部蓝牙设备约定的应用层密钥标识;
根据所述应用层密钥生成函数、所述链路层动态参数和所述应用层密钥标识,生成应用层密钥。
2.根据权利要求1所述的方法,其中,所述连接模式为:基本速率/增强数据速率模式;
所述根据所述连接模式确定应用层密钥生成函数,包括:
将生成链路层密钥时使用的f2函数,确定为应用层密钥生成函数;
所述确定在链路层使用的链路层动态参数,包括:
将所述f2函数在计算链路层密钥时使用的各密钥参数中的随机数确定为所述链路层动态参数;
所述生成应用层密钥,包括:
将所述f2函数在计算链路层密钥时使用的各密钥参数中的链路层密钥标识替换为所述应用层密钥标识;
利用所述f2函数对替换后得到的各密钥参数进行计算,得到所述应用层密钥。
3.根据权利要求2所述的方法,其中,所述应用层密钥标识与所述链路层密钥标识不相同。
4.根据权利要求1所述的方法,其中,所述连接模式为:基本速率/增强数据速率模式,或者低功耗模式;
所述根据所述连接模式确定应用层密钥生成函数,包括:
将h6函数,确定为应用层密钥生成函数;
所述确定在链路层使用的链路层动态参数,包括:
获取与外部蓝牙设备建立所述蓝牙连接时生成的链路层密钥;
将所述链路层密钥确定为所述链路层动态参数;
所述生成应用层密钥,包括:
利用所述h6函数对所述应用层密钥标识和所述链路层密钥进行计算,得到所述应用层密钥。
5.根据权利要求4所述的方法,其中,当所述连接模式为基本速率/增强数据速率模式时;
所述链路层密钥是利用f2函数以及链路层密钥标识生成的;
所述应用层密钥标识与所述链路层密钥标识相同或不相同。
6.根据权利要求4所述的方法,其中,当所述连接模式为低功耗模式时;所述链路层密钥是利用f5函数生成的。
7.生成应用层密钥的装置,包括:
连接模式确定单元,被配置为确定与外部蓝牙设备建立蓝牙连接时使用的连接模式;
应用层密钥生成函数确定单元,被配置为根据所述连接模式,确定应用层密钥生成函数;
链路层动态参数获取单元,被配置为根据所述应用层密钥生成函数,确定在链路层使用的链路层动态参数;
应用层密钥标识获取单元,被配置为获取与所述外部蓝牙设备约定的应用层密钥标识;
应用层密钥生成单元,被配置为根据所述应用层密钥生成函数、所述链路层动态参数和所述应用层密钥标识,生成应用层密钥。
8.根据权利要求7所述的装置,其中,所述连接模式为:基本速率/增强数据速率模式;
所述应用层密钥生成函数确定单元被配置为:将生成链路层密钥时使用的f2函数,确定为应用层密钥生成函数;
链路层动态参数获取单元被配置为:将所述f2函数在计算链路层密钥时使用的各密钥参数中的随机数确定为所述链路层动态参数;
所述应用层密钥生成单元被配置为:将所述f2函数在计算链路层密钥时使用的各密钥参数中的链路层密钥标识替换为所述应用层密钥标识;利用所述f2函数对替换后得到的各密钥参数进行计算,得到所述应用层密钥。
9.根据权利要求8所述的装置,其中,所述应用层密钥标识与所述链路层密钥标识不相同。
10.根据权利要求7所述的装置,其中,所述连接模式为:基本速率/增强数据速率模式,或者低功耗模式;
所述应用层密钥生成函数确定单元被配置为:将h6函数,确定为应用层密钥生成函数;
所述链路层动态参数获取单元被配置为:获取与外部蓝牙设备建立所述蓝牙连接时生成的链路层密钥;将所述链路层密钥确定为所述链路层动态参数;
所述应用层密钥生成单元被配置为:利用所述h6函数对所述应用层密钥标识和所述链路层密钥进行计算,得到所述应用层密钥。
11.根据权利要求10所述的装置,其中,当所述连接模式为基本速率/增强数据速率模式时;
所述链路层密钥是利用f2函数以及链路层密钥标识生成的;
所述应用层密钥标识与所述链路层密钥标识相同或不相同。
12.根据权利要求10所述的装置,其中,当所述连接模式为低功耗模式时;所述链路层密钥是利用f5函数生成的。
13.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-6中任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110317802.5A CN113038444B (zh) | 2021-03-25 | 2021-03-25 | 生成应用层密钥的方法和装置 |
EP22773953.9A EP4319222A1 (en) | 2021-03-25 | 2022-02-18 | Application layer key generation |
PCT/CN2022/076773 WO2022199291A1 (zh) | 2021-03-25 | 2022-02-18 | 生成应用层密钥 |
US18/552,025 US20240179517A1 (en) | 2021-03-25 | 2022-02-18 | Application layer key generation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110317802.5A CN113038444B (zh) | 2021-03-25 | 2021-03-25 | 生成应用层密钥的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113038444A true CN113038444A (zh) | 2021-06-25 |
CN113038444B CN113038444B (zh) | 2022-07-19 |
Family
ID=76474068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110317802.5A Active CN113038444B (zh) | 2021-03-25 | 2021-03-25 | 生成应用层密钥的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240179517A1 (zh) |
EP (1) | EP4319222A1 (zh) |
CN (1) | CN113038444B (zh) |
WO (1) | WO2022199291A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022199291A1 (zh) * | 2021-03-25 | 2022-09-29 | 支付宝(杭州)信息技术有限公司 | 生成应用层密钥 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006043132A1 (en) * | 2004-10-01 | 2006-04-27 | Nokia Corporation | Method and system to contextually initiate synchronization services on mobile terminals in an enterprise environment |
CN102859945A (zh) * | 2010-04-30 | 2013-01-02 | 株式会社东芝 | 具有密钥更新机制的密钥管理设备、***和方法 |
EP3021603A1 (en) * | 2014-11-12 | 2016-05-18 | Gemalto Sa | Method of managing pairing with a wireless device |
CN106209811A (zh) * | 2016-07-04 | 2016-12-07 | 福州米立科技有限公司 | 蓝牙设备安全登录身份验证方法及装置 |
CN106535090A (zh) * | 2016-10-11 | 2017-03-22 | 歌尔科技有限公司 | 一种蓝牙设备与智能设备的配对方法及蓝牙设备 |
CN109688573A (zh) * | 2019-01-22 | 2019-04-26 | 北京深思数盾科技股份有限公司 | 蓝牙设备间的交互方法及蓝牙设备 |
CN110365707A (zh) * | 2019-07-30 | 2019-10-22 | 广州致链科技有限公司 | 面向区块链物联网***的边缘计算网关及其实现方法 |
CN110572804A (zh) * | 2019-08-27 | 2019-12-13 | 暨南大学 | 蓝牙通信认证请求、接收及通信方法、移动端、设备端 |
CN111526509A (zh) * | 2020-05-26 | 2020-08-11 | 中国联合网络通信集团有限公司 | 一种卡数据处理方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102523087B (zh) * | 2011-12-14 | 2015-02-11 | 百度在线网络技术(北京)有限公司 | 一种用于对自执行网络信息进行加密处理的方法及设备 |
US9219709B2 (en) * | 2012-03-27 | 2015-12-22 | Saife, Inc. | Multi-wrapped virtual private network |
CN106714146A (zh) * | 2015-11-13 | 2017-05-24 | 广西咪付网络技术有限公司 | 一种蓝牙ble设备的通信加密方法 |
CN111740827B (zh) * | 2020-07-28 | 2022-10-28 | 北京金山云网络技术有限公司 | 数据传输方法、装置、计算机设备及存储介质 |
CN113038444B (zh) * | 2021-03-25 | 2022-07-19 | 支付宝(杭州)信息技术有限公司 | 生成应用层密钥的方法和装置 |
-
2021
- 2021-03-25 CN CN202110317802.5A patent/CN113038444B/zh active Active
-
2022
- 2022-02-18 US US18/552,025 patent/US20240179517A1/en active Pending
- 2022-02-18 EP EP22773953.9A patent/EP4319222A1/en active Pending
- 2022-02-18 WO PCT/CN2022/076773 patent/WO2022199291A1/zh active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006043132A1 (en) * | 2004-10-01 | 2006-04-27 | Nokia Corporation | Method and system to contextually initiate synchronization services on mobile terminals in an enterprise environment |
CN102859945A (zh) * | 2010-04-30 | 2013-01-02 | 株式会社东芝 | 具有密钥更新机制的密钥管理设备、***和方法 |
EP3021603A1 (en) * | 2014-11-12 | 2016-05-18 | Gemalto Sa | Method of managing pairing with a wireless device |
CN106209811A (zh) * | 2016-07-04 | 2016-12-07 | 福州米立科技有限公司 | 蓝牙设备安全登录身份验证方法及装置 |
CN106535090A (zh) * | 2016-10-11 | 2017-03-22 | 歌尔科技有限公司 | 一种蓝牙设备与智能设备的配对方法及蓝牙设备 |
CN109688573A (zh) * | 2019-01-22 | 2019-04-26 | 北京深思数盾科技股份有限公司 | 蓝牙设备间的交互方法及蓝牙设备 |
CN110365707A (zh) * | 2019-07-30 | 2019-10-22 | 广州致链科技有限公司 | 面向区块链物联网***的边缘计算网关及其实现方法 |
CN110572804A (zh) * | 2019-08-27 | 2019-12-13 | 暨南大学 | 蓝牙通信认证请求、接收及通信方法、移动端、设备端 |
CN111526509A (zh) * | 2020-05-26 | 2020-08-11 | 中国联合网络通信集团有限公司 | 一种卡数据处理方法及装置 |
Non-Patent Citations (1)
Title |
---|
郑之光等: "蓝牙***安全机制", 《数据通信》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022199291A1 (zh) * | 2021-03-25 | 2022-09-29 | 支付宝(杭州)信息技术有限公司 | 生成应用层密钥 |
Also Published As
Publication number | Publication date |
---|---|
WO2022199291A1 (zh) | 2022-09-29 |
US20240179517A1 (en) | 2024-05-30 |
CN113038444B (zh) | 2022-07-19 |
EP4319222A1 (en) | 2024-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3916604B1 (en) | Method and apparatus for processing privacy data of block chain, device, storage medium and computer program product | |
US9485230B2 (en) | Efficient key generator for distribution of sensitive material from multiple application service providers to a secure element such as a universal integrated circuit card (UICC) | |
JP5241818B2 (ja) | 端末 | |
CN111355745A (zh) | 基于边缘计算网络架构的跨域身份认证方法 | |
KR20130111165A (ko) | 블루투스 저 에너지 프라이버시 | |
CN108809906B (zh) | 数据处理方法、***及装置 | |
US20170118020A1 (en) | Data communication method, system and gateway for in-vehicle network including a plurality of subnets | |
JP5043408B2 (ja) | 鍵管理サーバ、端末、鍵共有システム、鍵配信プログラム、鍵受信プログラム、鍵配信方法及び鍵受信方法 | |
CN111737366A (zh) | 区块链的隐私数据处理方法、装置、设备以及存储介质 | |
CN114553612B (zh) | 数据加密、解密方法、装置、存储介质及电子设备 | |
EP3079299A1 (en) | Data processing system, encryption apparatus, decryption apparatus, and program | |
CN113038444B (zh) | 生成应用层密钥的方法和装置 | |
WO2023279283A1 (zh) | 建立车辆安全通信的方法、车辆、终端及*** | |
CN113489706B (zh) | 一种数据处理方法、装置、***、设备及存储介质 | |
WO2016035466A1 (ja) | 通信システム、サーバ装置用プログラム及びこれを記録した記録媒体、通信装置用プログラム及びこれを記録した記録媒体、端末装置用プログラム及びこれを記録した記録媒体 | |
WO2016147340A1 (ja) | 暗号通信装置及び暗号通信端末及び暗号通信方法及び暗号通信プログラム | |
US11722295B2 (en) | Methods, apparatus, and articles of manufacture to securely audit communications | |
CN110602690B (zh) | 一种应用于ZigBee***的加密方法及装置 | |
CN109818734B (zh) | 一种基本密钥分发方法、装置和介质 | |
CN101860435B (zh) | 报文发送、接收以及确定网络节点的方法及装置 | |
JP2007324767A (ja) | 通信方法及び通信装置 | |
KR20170107818A (ko) | 사용자 단말 및 속성 재암호 기반의 사용자 단말 데이터 공유 방법 | |
CN102487505B (zh) | 一种传感器节点的接入认证方法、装置及*** | |
JP2020162026A (ja) | 無線通信システム及び暗号鍵送受信方法 | |
CN109155913B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |