可穿戴设备通常使用无线协议进行通信,例如蓝牙低功耗(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)需要检查标准蓝牙配置文件,以确定它们是否适合关注隐私信息的应用程序。应避免任何公开可以追溯到特定设备的唯一编号或顺序数据的服务。
使用这些方法,外围设备和中央设备可以使用基本的蓝牙通信安全地和私密地交换信息,无论是否启用绑定或链路加密。