最大化BLE的安全性和隐私特性

文章作者:约翰·钦尼克

让我们考虑通过BLE实现隐私所需的内容。真正的匿名不是微不足道的。

可穿戴设备通常使用低能耗蓝牙(Bluetooth Low Energy, BLE)、Zigbee、WiFi、Z-Wave、Cellular或LoRa等无线协议进行通信。这些协议提供满足范围、带宽、互操作性和功率需求的解决方案。

BLE是可穿戴设备的一个流行选择,因为它平衡了低功耗、相对较低的范围、足够的带宽,以及丰富的蓝牙手机和平板电脑。

让我们考虑一下如何在BLE上实现隐私。在BLE上实现真正的匿名并不是微不足道的。

外围角色与中心角色

蓝牙设备有两个主要角色:外设和中心。设备可以同时在其中一个或两个角色中操作。但是,每个角色都会影响设备所需的资源,包括电源,带宽,代码空间和RAM。

外围设备使用广告包来宣传它们的存在。通告包向正在监听的设备提供有关外围设备的信息,例如设备提供的服务类型、是否正在寻找连接、一些身份信息,可能还有一些应用程序状态信息。除非设备发出连接请求或请求额外的广告数据,否则外设不会得到任何关于其他设备是否正在监听的反馈。

中心监听广告包,并可以选择连接到使用可连接广告包进行广告的设备。除了用连接请求响应可连接的广告包之外,中央服务器没有办法连接外设或向外设发送信息。

运输数据

BLE为通过链路传输数据提供链接级加密。通过配对过程建立链路加密以允许交换秘密。但这种配对过程不是非常强大的,并且已经向第三方设备展示了成功的攻击来拦截共享秘密。[1]对配对过程的一些改进已经采用蓝牙4.2进行。但是,这些变化尚不可用。

BLE协议包括一种隐私模式,它使用随机地址来帮助实现匿名性,但这只是谜题的一部分,对于大多数应用程序来说还不够。随机地址可以是可解析的,需要绑定,也可以是不可解析的。

设备已形成连接后,设备地址不使用。设备通过商定的信道跳频方案保持连接。只要通信中的数据没有使用与设备相关的唯一号码,第三方就很难确定是哪个设备在通话。窃听者仍然可以监视任何两个设备之间的消息交换。

关心隐私的设计师需要采取额外的步骤来保护系统内数据的隐私。

结合还是不结合

蓝牙提供设施,允许用户将外围设备绑定到中央设备。这需要用户操作来启动绑定过程。绑定设备彼此共享长期秘密信息,使它们能够在蓝牙协议中使用内置的隐私模式。粘合设备还可以存储附加状态信息。

大多数蓝牙设备都限制了它们可以支持的绑定设备的数量。有些用户对绑定过程感到困惑,并不一定理解与绑定设备相关的安全含义。

绑定期间可以存储的秘密之一是身份解析密钥(IRK)。这些IRK允许中央设备识别选择使用可解析随机寻址模式的外围设备。使用此模式时,外围设备可以定期更改其广告地址,以便没有IRK的第三方无法区分使用此模式的设备。

绑定存储在iOS和Android设备的操作系统层。这意味着移动设备上的其他应用程序可以使用相同的粘合信息来识别并连接到外围设备。绑定不为设备通信提供应用程序级保护。

当需要应用程序级保护时,您可以实现与内置蓝牙隐私功能类似的隐私功能,而无需配对或绑定。

应用程序级隐私

对于任何应用程序,请考虑哪个设备应该是中心设备,哪个设备应该是外围设备。这种选择可能会对设备功耗、复杂性以及系统中可能泄露的用户信息产生重大影响。

为了实现有效的应用程序级隐私,设备不能公开可由第三方用于识别设备的唯一标识符。设备名称、地址、消息序列号或任何其他可能是静态的或遵循该设备特有的逻辑序列的信息可被窃听通信的第三方用于跟踪该设备。

确保隐私

不幸的是,外围设备必须披露的一条信息至少是一个服务标识符,用于识别正在广告的设备类型。当中央设备看到存在此服务标识符的广告包时,需要这样做才能让它们醒来。因此,第三方中心在进行广告时,将能够看到该地区至少有一台此类设备。但是,如果采取以下步骤,它应该无法识别它是哪个特定设备。

1) 为了使应用程序级隐私发挥作用,系统需要在设备和应用程序之间共享机密。一种机制可以是使用工厂中提供的私有公钥对建立唯一的设备名称。稍后,可以通过设备名称将特定设备与特定用户帐户相关联。

2)设备在任何时候都可以与应用程序进行密钥交换,建立会话密钥,并使用应用程序的私钥验证应用程序的身份,对请求进行签名。设备还应该配备至少一个应用程序的公钥,以便它可以验证它正在与授权的应用程序通信,作为密钥交换的一部分。如果这个密钥交换是使用临时密钥完成的,那么即使是密钥交换也可以在不向任何监视交换的第三方透露请求密钥交换的设备身份的情况下执行。

3) 在密钥交换期间建立的其中一个密钥可能是类似于蓝牙IRK的IRK。然后,该设备可以使用蓝牙不可解析的随机地址进行广告,但是在广告分组中包括具有随机设备地址的数据字段,该随机设备地址可以由具有相应IRK的应用节点通过应用IRK进行解析。

4)交换中的其他密钥可以是设备用来向应用程序加密消息的加密密钥,反之亦然。注意,应用程序可能是移动设备,也可能是通过互联网连接从移动设备访问的后端服务。

5) 如果是接收消息的后端服务,则出于效率原因,可能需要使用与IRK方法不同的机制来确定应在后端使用哪个设备密钥,例如,旋转设备ID或类似的。

6) 需要检查标准蓝牙配置文件,以确定它们是否适合关注隐私信息的应用程序。应避免任何公开可追溯到特定设备的唯一编号或顺序数据的服务。

使用这些方法,外围设备和中心设备可以使用基本的蓝牙通信安全地和私有地交换信息,无论是否启用了绑定或链路加密。

参考

1.电脑每周设计重复使用

相关文章:

- - - - - -John Chinnick.是该公司的首席设计工程师创新工程主要使用嵌入式软件和物联网设备。


留下你的评论