蓝牙Mesh设计讲座(三):隐私与安全

发布时间:2019-12-30  

在本系列文章的第一篇和第二篇,我们讨论了蓝牙Mesh的架构及如何通过蓝牙Mesh网络收发消息,这一篇文章主要讨论Mesh网络的隐私与安全。

英文原文链接:

在当今这个互联互通的世界中,保障信息安全是每个无线系统设计的关键环节。因此,为物联网应用而生的蓝牙Mesh技术,在功能可靠的基础上,还应保障信息安全。蓝牙技术联盟(SIG)强制要求蓝牙Mesh设备使用安全加密功能。但对于传统蓝牙以及低功耗蓝牙点对点连接方式,信息加密功能属于可选项。Mesh网络安全功能包含设备授权入网、Mesh网络数据加密交互等,这也是Mesh网络最重要的特性之一。蓝牙Mesh协议在多个层面上保护本网络免遭各类可能的威胁,例如:

在本系列文章的第一篇和第二篇,我们讨论了蓝牙Mesh的架构及如何通过蓝牙Mesh网络收发消息,这一篇文章主要讨论Mesh网络的隐私与安全。

英文原文链接:

在当今这个互联互通的世界中,保障信息安全是每个无线系统设计的关键环节。因此,为物联网应用而生的蓝牙Mesh技术,在功能可靠的基础上,还应保障信息安全。蓝牙技术联盟(SIG)强制要求蓝牙Mesh设备使用安全加密功能。但对于传统蓝牙以及低功耗蓝牙点对点连接方式,信息加密功能属于可选项。Mesh网络安全功能包含设备授权入网、Mesh网络数据加密交互等,这也是Mesh网络最重要的特性之一。蓝牙Mesh协议在多个层面上保护本网络免遭各类可能的威胁,例如:

广告

•在入网使用椭圆曲线Diffie-Hellman(ECDH)密钥交换协议过程中,防止中间人(MITM)攻击。

•使用顺序编号,防止“重放攻击”。

•使用密钥刷新(黑名单)流程,防止黑客利用弃置设备密钥的“垃圾桶攻击”。

蓝牙Mesh拓扑强制要求每一个节点设备使用安全加密功能,这些密钥可以在不同层面保护网络安全。下面逐一介绍每一层安全加密与其隐私特性。

入网部署:将未配置设备添加到蓝牙Mesh网络当中

入网部署流程是将蓝牙Mesh设备添加到Mesh网络的过程,准备入网的Mesh网络设备被称为节点,执行入网的设备被称为入网部署方,简称部署方。一般情况下将手机作为部署方。它创建Mesh网络,分配网络密钥和其他所需的密钥。使用部署流程将未入网的Mesh设备添加到蓝牙Mesh网络中。此外,部署方也对经部署入网的新Mesh节点进行设置并可以通过Mesh网络控制Mesh节点功能。

入网协议有两种部署方式:PB-ADV(ADV方式)或PB-GATT(GATT方式)。移动设备目前不支持PB-ADV方式。因此,部署入网过程通常采用PB-GATT方式完成。

未部署入网的Mesh设备在上电后开始广播,部署方扫描到未部署设备并与之建立标准的BLE连接(假定使用PB-GATT)。随后,部署方使用椭圆曲线Diffie-Hellman(ECDH)协议交换密钥(ECDH交换密钥是一种国际认可的密钥交换方式)。

接下来,两个设备使用交换的密钥创建会话密钥。会话密钥用于加密网络密钥、设备密钥(密钥类型将在本文的后续内容中讨论)、IV指数和单播地址。所有这些信息都被发送到被部署入网的蓝牙Mesh节点。在成功地完成入网部署后,Mesh节点还需完成设置过程,将Mesh节点的功能共享给部署方,然后部署方将应用密钥分配给经过设置的节点。每个Mesh节点都可能有多个应用密钥,因此,每个应用密钥必须使用密钥绑定流程与具体的Mesh模型绑定,这样Mesh堆栈就知道针对具体的Mesh模型应使用哪个应用密钥。

图1所示的是安装了iOS Mesh助手APP的智能手机在部署入网可调光灯泡(使用CYBT-213043-MESH评估套件实现)时的入网流程。

图1:可调光灯泡的入网部署过程。

如图所示,可调光灯泡发送未入网部署设备beacon广播。在部署方尝试添加设备时,可调光灯泡出现在未部署入网设备列表中。用户在iOS Mesh App中点击可调光灯泡,启动入网部署过程。

手机发出入网邀请,可调光灯泡做出响应,回应该节点支持的元素数量、支持的安全算法、是否具有开箱即用(OOB)的功能,以及输入/输出功能。根据可调光灯泡的功能支持类型,使用OOB方法或使用交换ECDH密钥,完成入网认证。

在可调光灯泡完成认证后,部署方通过AES-CCM加密链路发送入网部署数据。当部署数据(网络密钥、设备密钥、IV指数、单播地址等)发送给可调光灯泡后,入网部署过程即告完成,部署方现在可以通过手机控制可调光灯泡(未显示在部署流程图中)。

网络密钥、应用密钥及设备密钥

获得网络密钥后,节点就能解密并认证到网络层,从而能在网络中传递消息。网络加密密钥和私有密钥可从网络密钥中提取。需要注意的是,虽然网络中的所有节点都能接收并转发Mesh中继消息,但实际的传输数据不能使用网络密钥解密。只有拥有正确的应用密钥的设备才能解密应用数据。

网络密钥:一个节点可以拥有一个或多个网络密钥。这样就能在Mesh网络下创建多个子网。例如多层停车系统,将每层划分到自己的子网下,这种划分可以避免跨层传递消息,而是将中继的消息限制在所需的层上。

应用密钥:应用密钥可被Mesh网络内的设备子集共享。这些设备通常是具有类似的功能。例如,起居室内的所有灯泡可以共享相同的应用密钥,而运动传感器或电子锁则使用单独的应用密钥。用于改变灯泡状态的Mesh消息只能由起居室内的灯泡解密(即仅限那些内置所需应用密钥的设备)。

设备密钥:设备密钥由部署方分配给每一个被部署入网的Mesh节点。这有助于确定Mesh节点的唯一标识。设备密钥仅由部署方在节点设置过程中使用。

节点移除(密钥刷新、黑名单)

Mesh网络需要防止黑客非法获得故障或弃置的Mesh节点安全密钥,对特定的Mesh网络发起攻击,这类攻击被称为垃圾箱攻击。为了避免此类攻击,蓝牙技术联盟定义了密钥刷新流程,该流程可由部署方发起,将特定的节点列入黑名单。密钥刷新流程不向黑名单中的设备发布新的网络密钥、应用密钥和相关信息。上了黑名单的设备曾持有的任何密钥都不可再用于访问曾经接入的Mesh网络。

隐私(消息模糊处理)

隐私是非常敏感的问题,蓝牙Mesh网络中使用加密方式处理隐私信息传递。正如前文所讨论的,隐私密钥来源于网络密钥。蓝牙Mesh使用隐私密钥模糊处理消息报文的源地址等信息。如果消息报文头地址被模糊化,就可以防止黑客根据源地址跟踪消息。

重放攻击

攻击者可在空中截取消息并多次重复发送相同的数据包,达到扰乱Mesh网络的目的。例如,如果攻击者能成功地在空中截取消息并打开电子门锁,就可以破门而入。很明显,这对人身和财产安全都将构成重大威胁。为了解决这一问题,蓝牙技术联盟为每条网络消息提供两个字段构成的内容:初始化矢量指数(IV指数)和顺序编号(SEQ)。

节点每发布一个消息,顺序编号就递增一次。如果Mesh消息的顺序编号等于或小于上次处理过的有效Mesh消息,Mesh节点就会弃置这条消息。要修改顺序编号,攻击者必须拥有所有必需的密钥才能解码,然后再加密消息,而这些密钥只提供给需要的设备。因此,即使攻击者试图答复消息,答复仍会被目标节点弃置。IV指数是Mesh网络消息中的另一个字段。消息中的IV指数值必须等于或大于上次处理过的Mesh消息,否则消息就会被弃置。

总之,蓝牙Mesh中的入网部署过程仅允许可信设备添加到网络中,这样可以避免任何中间人攻击;网络密钥支持子网创建(每个子网分别有网络密钥);应用密钥让Mesh消息仅由特定硬件进行解码;密钥刷新流程可实现安全的节点移除,并防止垃圾箱攻击;为每条消息添加顺序编号可以防止重放攻击;消息模糊处理能保护发送方的身份。所有这些特性使得蓝牙Mesh非常安全并可以保护隐私。

在本系列文章的下一章节,我们将讨论不同应用中选择蓝牙Mesh设备需要考虑的要点。

系列讲座的其它内容,可以访问以下链接

 

•在入网使用椭圆曲线Diffie-Hellman(ECDH)密钥交换协议过程中,防止中间人(MITM)攻击。

•使用顺序编号,防止“重放攻击”。

•使用密钥刷新(黑名单)流程,防止黑客利用弃置设备密钥的“垃圾桶攻击”。

蓝牙Mesh拓扑强制要求每一个节点设备使用安全加密功能,这些密钥可以在不同层面保护网络安全。下面逐一介绍每一层安全加密与其隐私特性。

入网部署:将未配置设备添加到蓝牙Mesh网络当中

入网部署流程是将蓝牙Mesh设备添加到Mesh网络的过程,准备入网的Mesh网络设备被称为节点,执行入网的设备被称为入网部署方,简称部署方。一般情况下将手机作为部署方。它创建Mesh网络,分配网络密钥和其他所需的密钥。使用部署流程将未入网的Mesh设备添加到蓝牙Mesh网络中。此外,部署方也对经部署入网的新Mesh节点进行设置并可以通过Mesh网络控制Mesh节点功能。

入网协议有两种部署方式:PB-ADV(ADV方式)或PB-GATT(GATT方式)。移动设备目前不支持PB-ADV方式。因此,部署入网过程通常采用PB-GATT方式完成。

未部署入网的Mesh设备在上电后开始广播,部署方扫描到未部署设备并与之建立标准的BLE连接(假定使用PB-GATT)。随后,部署方使用椭圆曲线Diffie-Hellman(ECDH)协议交换密钥(ECDH交换密钥是一种国际认可的密钥交换方式)。

接下来,两个设备使用交换的密钥创建会话密钥。会话密钥用于加密网络密钥、设备密钥(密钥类型将在本文的后续内容中讨论)、IV指数和单播地址。所有这些信息都被发送到被部署入网的蓝牙Mesh节点。在成功地完成入网部署后,Mesh节点还需完成设置过程,将Mesh节点的功能共享给部署方,然后部署方将应用密钥分配给经过设置的节点。每个Mesh节点都可能有多个应用密钥,因此,每个应用密钥必须使用密钥绑定流程与具体的Mesh模型绑定,这样Mesh堆栈就知道针对具体的Mesh模型应使用哪个应用密钥。

图1所示的是安装了iOS Mesh助手APP的智能手机在部署入网可调光灯泡(使用CYBT-213043-MESH评估套件实现)时的入网流程。

图1:可调光灯泡的入网部署过程。

如图所示,可调光灯泡发送未入网部署设备beacon广播。在部署方尝试添加设备时,可调光灯泡出现在未部署入网设备列表中。用户在iOS Mesh App中点击可调光灯泡,启动入网部署过程。

手机发出入网邀请,可调光灯泡做出响应,回应该节点支持的元素数量、支持的安全算法、是否具有开箱即用(OOB)的功能,以及输入/输出功能。根据可调光灯泡的功能支持类型,使用OOB方法或使用交换ECDH密钥,完成入网认证。

在可调光灯泡完成认证后,部署方通过AES-CCM加密链路发送入网部署数据。当部署数据(网络密钥、设备密钥、IV指数、单播地址等)发送给可调光灯泡后,入网部署过程即告完成,部署方现在可以通过手机控制可调光灯泡(未显示在部署流程图中)。

网络密钥、应用密钥及设备密钥

获得网络密钥后,节点就能解密并认证到网络层,从而能在网络中传递消息。网络加密密钥和私有密钥可从网络密钥中提取。需要注意的是,虽然网络中的所有节点都能接收并转发Mesh中继消息,但实际的传输数据不能使用网络密钥解密。只有拥有正确的应用密钥的设备才能解密应用数据。

网络密钥:一个节点可以拥有一个或多个网络密钥。这样就能在Mesh网络下创建多个子网。例如多层停车系统,将每层划分到自己的子网下,这种划分可以避免跨层传递消息,而是将中继的消息限制在所需的层上。

应用密钥:应用密钥可被Mesh网络内的设备子集共享。这些设备通常是具有类似的功能。例如,起居室内的所有灯泡可以共享相同的应用密钥,而运动传感器或电子锁则使用单独的应用密钥。用于改变灯泡状态的Mesh消息只能由起居室内的灯泡解密(即仅限那些内置所需应用密钥的设备)。

设备密钥:设备密钥由部署方分配给每一个被部署入网的Mesh节点。这有助于确定Mesh节点的唯一标识。设备密钥仅由部署方在节点设置过程中使用。

节点移除(密钥刷新、黑名单)

Mesh网络需要防止黑客非法获得故障或弃置的Mesh节点安全密钥,对特定的Mesh网络发起攻击,这类攻击被称为垃圾箱攻击。为了避免此类攻击,蓝牙技术联盟定义了密钥刷新流程,该流程可由部署方发起,将特定的节点列入黑名单。密钥刷新流程不向黑名单中的设备发布新的网络密钥、应用密钥和相关信息。上了黑名单的设备曾持有的任何密钥都不可再用于访问曾经接入的Mesh网络。

隐私(消息模糊处理)

隐私是非常敏感的问题,蓝牙Mesh网络中使用加密方式处理隐私信息传递。正如前文所讨论的,隐私密钥来源于网络密钥。蓝牙Mesh使用隐私密钥模糊处理消息报文的源地址等信息。如果消息报文头地址被模糊化,就可以防止黑客根据源地址跟踪消息。

重放攻击

攻击者可在空中截取消息并多次重复发送相同的数据包,达到扰乱Mesh网络的目的。例如,如果攻击者能成功地在空中截取消息并打开电子门锁,就可以破门而入。很明显,这对人身和财产安全都将构成重大威胁。为了解决这一问题,蓝牙技术联盟为每条网络消息提供两个字段构成的内容:初始化矢量指数(IV指数)和顺序编号(SEQ)。

节点每发布一个消息,顺序编号就递增一次。如果Mesh消息的顺序编号等于或小于上次处理过的有效Mesh消息,Mesh节点就会弃置这条消息。要修改顺序编号,攻击者必须拥有所有必需的密钥才能解码,然后再加密消息,而这些密钥只提供给需要的设备。因此,即使攻击者试图答复消息,答复仍会被目标节点弃置。IV指数是Mesh网络消息中的另一个字段。消息中的IV指数值必须等于或大于上次处理过的Mesh消息,否则消息就会被弃置。

总之,蓝牙Mesh中的入网部署过程仅允许可信设备添加到网络中,这样可以避免任何中间人攻击;网络密钥支持子网创建(每个子网分别有网络密钥);应用密钥让Mesh消息仅由特定硬件进行解码;密钥刷新流程可实现安全的节点移除,并防止垃圾箱攻击;为每条消息添加顺序编号可以防止重放攻击;消息模糊处理能保护发送方的身份。所有这些特性使得蓝牙Mesh非常安全并可以保护隐私。

在本系列文章的下一章节,我们将讨论不同应用中选择蓝牙Mesh设备需要考虑的要点。

系列讲座的其它内容,可以访问以下链接

 

文章来源于:电子工程专辑    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    蓝牙模块Mesh组网是什么?蓝牙模块Mesh组网和蓝牙网关的区别?;Mesh组网的核心是蓝牙协议栈。在蓝牙协议栈中,设备被分为不同的角色,如中心设备、外围设备和中间设备等。中心......
    成为家居自动化的首选技术,因为蓝牙Mesh网络能直接通过手机或平板电脑访问,无需使用网关。对于任何智能家居部署而言,互操作性都是成功的要诀,原因是智能家居可能用到多家厂商提供的产品。针对既定用例(模式)使用标准消息格式,能够......
    要路由与网络连接,使得连接设置复杂,安装费用高,推广难度大。   三、CSR Mesh蓝牙组网介绍   CSR Mesh的推出将改变智能家居无线技术格局:   CSR公司在今年2月宣......
    Mesh协议的出现,采用蓝牙协议的产品也更具优势,并且支持 OTA升级,作为联动智能家居单品的网关,还是尽量选择与家里多数设备协议一致的产品。 而小米智能音箱款式非常丰富,推荐带有蓝牙网关......
    能扩展版本。通过结合一个或两个nRF52840 SoC与nRF52833,网关可以支持高数据吞吐量或长距离无线传输、高网络并发容量、以及多种物联网通信协议 (例如低功耗蓝牙蓝牙mesh和Matter......
    Nordic助力网关提供蓝牙测向功能以定位物品和人员; 挪威奥斯陆 – 2023年5月22日 – 江苏蓝策电子科技有限公司推出一款使用测向(Bluetooth Direction Finding......
    与nRF52833,网关可以支持高数据吞吐量或长距离无线传输、高网络并发容量、以及多种物联网通信协议 (例如低功耗蓝牙蓝牙mesh和Matter)。nRF52840内嵌的2.4 GHz多协......
    nRF52833,网关可以支持高数据吞吐量或长距离无线传输、高网络并发容量、以及多种物联网通信协议 (例如低功耗蓝牙蓝牙mesh和Matter)。nRF52840内嵌的2.4 GHz多协......
    nRF52系列架构,支持蓝牙5.2、低功耗蓝牙和蓝牙mesh,以及测向、2 Mbps高吞吐量和长距离传输。这些SoC还能以单芯片解决方案支持Thread、Zigbee®和多种2.4-GHz专有......
    M33处理器,以及PSA 3级安全认证。以下是这些模块的其他主要功能:• BGM240P支持低功耗蓝牙5.3和蓝牙Mesh连接• MGM240P支持多协议连接(802.15.4、Matter和低功耗蓝牙......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>