Bluetooth® Mesh 子网桥接

技术概览

发布 : 1.0.0
文件版本 :   1.0
最后更新 : 2023 年 9 月 19 日
作者 :   

马丁-伍利Bluetooth SIG
北欧半导体公司 Omkar Kulkarni
Silvair, Piotr Winiarczyk

修订历史

Version

Date

Author

Changes

1.0.0

September 19, 2023

Martin Woolley, Bluetooth SIG
Omkar Kulkarni, Nordic Semiconductor
Piotr Winiarczyk, Silvair

Initial version

 

备注

Bluetooth Mesh 配置文件 规范已更名,现称为Bluetooth Mesh 协议规范。本文件和相关文件在提及 1.1 版规范时将使用这一名称,但在提及 1.0 版规范时,仍将继续称其为Bluetooth Mesh 配置文件规范。

 

1.背景情况

子网桥接是在Bluetooth® Mesh 协议规范的 1.1 版本中引入的。要充分了解Bluetooth Mesh 子网桥接的功能和优势,有必要了解Bluetooth Mesh 版本 1.0 的某些方面。本节将提供相关背景信息,为研究Bluetooth Mesh 子网桥功能提供支持。

1.1 子网

Bluetooth® Mesh 网络构成所有单播地址的地址空间。Bluetooth Mesh 网络可由一个或多个子网组成,共享这一共同地址空间。每个子网都有一个唯一的网络密钥(NetKey),如果一个节点在配置时获得了这个 NetKey,那么它就是该子网的会员 。

一个节点可以拥有一个以上的 NetKey,因此可以是一个以上子网的会员 ,但在Bluetooth Mesh 配置文件 规范的 1.0 版本中,信息无法从一个子网传递到另一个子网。子网之间是完全隔离的。

1.2 区域隔离

通过将网络划分为几个不同的子网,将网络的一部分与另一部分隔离开来的能力具有许多好处。

1.2.1 区域隔离和安全

出于安全考虑,防止一个子网中的设备与其他子网中的设备进行交互可能是有用的,甚至是必要的。考虑到酒店客房,房间内的智能设备可以与同一房间内的其他设备通信,但不能与房间外的设备通信。将每个酒店客房内的设备置于各自的子网中,可以将每个房间内的设备与其他房间内的设备隔离开来,从而满足酒店客房的安全要求。

图1

图 1 - 酒店客房和子网区域隔离

1.2.2 区域隔离和网络效率

子网还可用于将网络流量限制在建筑物的一个区域内。当需要通过中继使信息到达所有预定目标节点,以及使用Bluetooth Mesh Managed Flooding 时,这一点尤其有用。子网可被视为在设备组周围设置了一个边界,这样,即使信息被中继,也无法跨越这些边界,从而避免将无关信息中继到没有目标设备所在的网络部分。

这种技术通常用于隔离办公室中的一个楼层与另一个楼层,如图 2 所示。三楼电灯开关发送的信息将由该楼层天花板上的中继节点转发,因为它们属于同一个子网,但上下楼层的中继节点可能会收到开关发送的信息,它们会立即丢弃信息,因此信息不会跨楼层传播。

图2

图 2 - 办公室内的子网

1.3 重放攻击和序列号

恶意设备可以被动接收信息,并在稍后时间重新传输,从而可能导致网络发生未经授权的变化。这种攻击称为重放攻击。Bluetooth® Mesh 定义了防止重放攻击的重放保护机制。

重放保护包括所有报文都有一个相关的nonce值,其中包括一个 24 位序列号(SEQ),源节点每发送一条新报文,都必须递增该序列号。如果一个节点每 5 秒钟发送一次信息,那么 SEQ 值将需要两年多的时间才能循环使用。不过,为了防止这种情况发生,SEQ 值由一个 32 位初始化向量(IV)值扩展,该值在整个网络中共享。每当 SEQ 值有可能耗尽时,IV 就会通过一个名为 IV 更新的程序自动更新。

32 位 IV 值本身并不包含在报文中。取而代之的是一个称为 IVI 的单个比特字段,该字段表示网络在同一时间可能使用的两个 IV 值中,哪一个与报文有关。

接收设备会跟踪每个源地址上次成功处理信息的 IV 和 SEQ 值。如果收到的信息的 IV 值和 SEQ 值组合在数值上不高于从同一源单播地址收到的最后一条信息,则该信息将被视为可能的重放攻击而被丢弃。

1.4 评估Bluetooth® Mesh 1.0 中的子网

Bluetooth Mesh 配置文件 规范 1.0 版本中定义的子网具有一些出色的安全性和网络利用效率优势。但是,由于子网造成的区域隔离的绝对性,有些要求很难满足。如果出于利用效率的考虑,需要使用子网来限制信息在网络无关部分的传输,那么网络规划人员就必须仔细考虑如何使用子网。安装人员必须在首次创建网络时设置所需的子网。

Bluetooth Mesh 定向转发(参见Bluetooth Mesh 定向转发技术概述文件)提供了一种将节点间的流量限制在网络相关部分的卓越方法。子网有时也能达到类似的效果,但子网区域隔离不能像Bluetooth Mesh 定向转发那样精确定向,只能限制选定的设备处理报文。Bluetooth Mesh 定向转发现在被推荐为解决网络利用效率要求的方法。

使用子网作为网络安全机制的区域隔离功能非常强大。但想象一下,一家酒店的每间客房都使用了子网区域隔离。酒店客房采用了智能技术,可以对设备和系统进行手动和自动控制,客人对此感到非常高兴。酒店管理层对一个房间的设备无法干扰其他房间的设备感到满意。但是,酒店管理层希望安装一个网关,让每个客房的传感器都能报告入住率数据,从而为基于 TCP/IP 的图形用户界面系统提供信息,该系统可无干扰地安排客房清洁和洗衣服务。在使用Bluetooth® Mesh 1.0 子网时,如果不在每个酒店房间安装网关节点,就无法实现这一目标。

2.关于子网桥接

有时,在一些用例中,不同子网中的设备之间需要通信,但又不能影响子网提供的区域隔离。Bluetooth Mesh 子网桥接功能使这种情况成为可能。

2.1 能力和优势

Bluetooth Mesh 子网桥接功能允许网络使用子网进行区域隔离,但也可选择性地允许不同的相邻子网中的特定设备之间进行通信。

2.1.1 启用子网桥接

网络规划人员必须决定网络中哪些节点可充当子网桥,允许两个相邻子网中的某些节点之间进行受控通信。网桥配置服务器模型的存在表明Bluetooth Mesh 子网桥接由节点支持。

要使节点成为子网桥,必须将名为子网桥的状态值设置为启用。然后,还必须在名为 "桥接表"的状态下填入配置节点Bluetooth Mesh 子网桥接功能的条目。

2.1.2 桥接表状态

桥接表是一种状态,其中包含的条目定义了将执行Bluetooth Mesh 子网桥接的源地址和目标地址。一个条目定义了从一个地址到另一个地址的桥接,可以是单向桥接,也可以是双向桥接。无论哪种情况,两个子网中每个子网的网络键的索引值也包含在每个桥接表项中。Bluetooth® Mesh 协议规范第 4.2.42 节提供了桥接表项的完整格式,并在图 3 中重复。

现场

大小(位)

说明

路线指引

8

桥接流量的允许方向

NetKeyIndex1

12

第一个子网的 NetKey 索引

NetKeyIndex2

12

第二个子网的 NetKey 索引

地址1

16

第一个子网中节点的地址

地址2

16

第二个子网中节点的地址

图 3 - 桥接表状态条目格式

方向字段的值为 0x01 或 0x02。

0x01 表示只允许单向桥接,对于源地址 (SRC) 等于地址 1 桥接表项、目的地址 (DST) 等于地址 2 的报文,允许报文从第一个子网转发到第二个子网。

0x02 表示对于源地址 (SRC) 等于地址 2、目的地址 (DST) 等于地址 1 的报文,可以在任一方向上进行桥接,包括从第二个子网到第一个子网。

2.1.3 子网桥接和安全

子网可以将网络的不同部分相互隔离,这在某些情况下具有安全优势,可以防止一个子网中的节点与另一个子网中的节点通信。

Bluetooth Mesh 子网桥接允许跨子网通信。但桥接表确保这种通信只能在特定的源地址和目标地址对以及特定的子网对之间进行。例如,在一家酒店中,客人可以按下一个按钮,向客房服务团队发出信号,表示希望打扫房间,该按钮使用Bluetooth Mesh 子网桥接和Bluetooth Mesh 定向转发功能,从客人房间所属的子网向客房服务团队发送信息。但客人房间内的其他设备将无法与该子网之外的任何其他节点通信。Bluetooth Mesh 子网桥接允许在子网间进行选择性和受控通信,但保留了区域隔离带来的安全优势。

子网桥以与目的节点相同的方式执行重放保护,根据子网桥处理的报文中的源地址跟踪 IV 和 SEQ 值。如果 IV 和 SEQ 值组合在数值上不高于从特定源地址收到的最后一次桥接值,则会被丢弃。这样,子网桥通过保护下一个子网免受拒绝服务 攻击,在下一个子网的目的节点前执行重放保护。

2.1.4 实际子网桥接

Bluetooth Mesh 子网桥接在子网桥接节点内的网络层执行。接收信息时,将检查桥接表中是否有地址 1 和地址 2 字段与信息的源地址和目标地址相匹配的条目,或者是否有地址 2 包含信息 SRC 地址、地址 1 包含信息 DST 地址且 "方向 "字段表示支持双向桥接的条目。还将进行进一步检查,以验证报文网络 PDU 是否使用源子网的 NetKey 加密。如果满足这些条件,则使用源子网 NetKey 对报文进行解密,然后使用目的子网 NetKey 重新加密,最后重新传输。如果准备了适当的子网桥接节点配置,信息可以多次重发,并在多个子网中传输。

如果报文的源地址和目标地址不在桥接表中的单向或双向桥接条目格式中,则该报文不会被重传到其他子网。中继或Bluetooth Mesh Directed Forwarding(定向转发)仍可能导致报文在当前子网内进行适当的重传。

2.1.5 子网桥接和定向转发

Bluetooth Mesh 定向转发(请参阅Bluetooth Mesh 定向转发技术概述文件)可与Bluetooth Mesh 子网桥接一起使用,并涉及两种节点依赖关系。

第一个依赖关系存在于第一个子网中的源节点和作为第二个子网会员 的子网桥之间。第二个依赖关系存在于作为第一个子网会员 的子网桥和第二个子网中的目标节点之间。

子网桥在节点依赖关系中充当支持节点,并代表其依赖节点执行路径发现和维护程序以及信息转发。

3.关闭

Bluetooth Mesh 子网桥接使需要跨子网的子网的使用更加灵活,更容易设置,同时又不影响安全性。

获得帮助