微波EDA网,见证研发工程师的成长!
首页 > 射频和无线通信 > 射频无线通信文库 > 使用BLE 4.2的系统设计:更快、更安全、更节能-第2部分

使用BLE 4.2的系统设计:更快、更安全、更节能-第2部分

时间:11-07 来源:互联网 点击:

在本系列文章的第一部分,我们讨论了蓝牙低功耗(BLE)4.2的数据长度扩展(DLE)和低功耗。在本文中,我们将讨论蓝牙低功耗的隐私保护功能、蓝牙4.2的新增功能以及为何这些变化能够使BLE设备更加保护隐私和节能。

隐私保护是BLE设备防止被不受信任的设备追踪的能力。BLE设备在广播数据包内使用48比特地址,如果该地址被其他设备解码了,那么根据这个地址就可以跟踪该BLE设备的移动。为了保护BLE设备的隐私,受信任的BLE设备将使用共享密钥“身份解析密钥”(Identity Resolving Key, IRK)的共享密钥。两个具有此共享密钥的BLE设备可以相互识别。一台BLE设备先利用该共享密钥生成一个随机的“可解析私有地址”发送出来,另一台设备则采用同一密钥来解析该私有地址。

蓝牙设备地址

蓝牙设备使用48比特的设备地址。设备地址被分类为:

• 公有设备地址

• 随机设备地址

1. 公有设备地址:公有设备地址由每台设备的公司ID和公司分配ID组成,遵循IEEE 802-2001标准。公司ID和公司分配ID值均为24比特,构成总数为48比特的地址,如图1所示。

图1:公有设备地址

2. 随机设备地址:顾名思义,随机设备地址是随机生成的地址。随机设备地址分为两种类型:

• 静态随机地址

• 私有随机地址

2.1 静态随机地址:静态随机地址可以是出厂前在设备上预先设定好的,也可以在每次开关机循环后更改一个新值。然而,只有设备经过一次完整的开关机循环后才可以更改此地址。如果在运行期间更改了该地址,存储在对端设备中的地址将失效,并且将不可再使用旧地址进行重新连接。静态随机地址有以下要求:

• 两个最高有效位恒为1

• 所有随机位数值都不能为0

• 所有随机位数值都不能为1

图2:静态随机地址

私有随机地址分两种类型 - 不可解析私有地址和可解析私有地址。

2.1.1不可解析的私有地址:不可解析的私有地址随机生成,并且每次连接都会发生变化。不可解析的私有地址有以下要求:

• 两个最高有效位恒为0

• 所有随机位数值都不能为0

• 所有随机位数值都不能为1

该地址不能和静态地址或公有地址相同。

2.1.2可解析私有地址(RPA)

可解析私有地址(RPA)是BLE设备隐私保护的重要支柱。RPA是指使用随机数字和身份解析密钥(IRK)所生成的地址。两个设备在配对期间共享IRK,其存储在设备的内置存储器中。两台配对设备除了共享IRK之外,还共享一个称为身份地址的固定地址。该身份地址可以是公有的或是随机的静态地址类型。因较早进行绑定的设备存有IRK和身份地址,因此能够解析配对设备的私有地址。图3所示为可解析私有地址的格式。

在RPA中,24比特的Hash是IRK和prand的函数。Prand是24比特的数字,它包含22个随机位数值以及2个固定的最高有效位数值;如图3所示。

图3:可解析私有地址

可解析私有地址的生成:可解析私有地址是与IRK和prand共同生成的。

Prand是随机生成的,有以下要求:

• prand的两个最高有效位数值应等于2b01

• prand的所有位元数值都不能为0

• prand的所有位元数值都不能为1

地址中的Hash部分则是利用prand和设备的128位IRK传递到加密函数“e”生成。此加密函数的输出截断为24个最低有效位数值,就是Hash数值。

Hash=e(IRK,prand *),截断为24位

*为了使prand的长度与IRK相同,prand增加了104位数值为0的空白位,确保原有的最低有效位保持不变。

24比特prand和24比特Hash组合生成随机地址。

可解析私有地址的解析: B设备如果具有A设备的IRK,则可以解析该A设备的可解析私有地址。可解析私有地址有24位的prand和24位的Hash。B设备通过A设备的prand和IRK来解析地址。当B设备接收到A设备的可解析私有地址后,会从该地址提取出Hash和prand,利用其生成本地Hash值。本地Hash的生成方式与在地址生成期间的方式完全相同。

本地Hash= e(A设备IRK、prand),截断为24位

如果B设备生成的本地Hash值与从地址中提取的A设备 Hash值匹配,则该地址被成功解析。如果B设备有一个以上对端的IRK,则该设备将为每个存储的IRK重复这一步骤,以确定接收到的可解析私有地址是否与存储的某一个IRK相关,直到IRK中某一个地址匹配成功或者所有地址匹配结束。

B设备在配对过程中收到对端设备的IRK和身份地址后,会将其与本地IRK一起存储在待解析列表中,用于将来解析私有地址。

在蓝牙4.1中,该解析列表保存在主机上,由主机完成地址解析,这意味着在每次收到附有可解析私有地址的广播包时,都需要主

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top