蓝牙™ Mesh子网 桥接

蓝牙™ 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.背景情况

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

1.1 子网

蓝牙™ 网状网络由所有单播地址的地址 空间组成。一个蓝牙网状网络可能由一个或多个子网组成,共享这个共同的地址 空间。每个子网 都有一个唯一的网络密钥 网络层密钥 ,如果一个节点在配置时获得了这个网络密钥 ,那么它就是该子网的成员。

一个节点可以拥有一个以上的网络密钥 ,因此也是一个以上子网的成员,但在蓝牙网格配置文件 规范的 1.0 版本中,信息无法从一个子网 传递到另一个子网 。子网之间是完全隔离的。

1.2 区域隔离

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

1.2.1 区域隔离和安全

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

图1

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

1.2.2 区域隔离和网络效率

子网还可用于将网络流量控制在建筑物的一个区域内。当信息需要中继才能到达所有目的地 节点和使用蓝牙网状网络泛洪 时,这一点尤其有用。子网可被视为在设备组周围设置了一个边界,使信息即使在中继时也不能越过这些边界,从而避免将无关信息中继到没有目标设备所在的网络部分。

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

图2

图 2 - 办公室内的子网

1.3 重放攻击和序列号

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

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

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

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

1.4 对蓝牙™ Mesh 1.0 中子网的评估

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

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

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

2.关于子网 桥接

有时,需要在不同子网的设备之间进行通信,但又不影响子网 提供的区域隔离。蓝牙子网 桥接功能使这成为可能。

2.1 能力和优势

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

2.1.1 启用子网 桥接

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

要使节点成为子网 桥接器,必须将名为子网 桥接器的状态 设置为启用。然后,还必须在名为桥接表(Bridging Table)的状态 中填入配置节点蓝牙子网 桥接功能的子网 。

2.1.2 桥接表状态

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

现场

大小(位)

费用项目

路线指引

8

桥接流量的允许方向

NetKeyIndex1

12

第一子网的子网密钥索引

NetKeyIndex2

12

第二子网的子网密钥索引

地址1

16

第一个子网中节点的地址

地址2

16

第二子网节点的地址

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

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

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

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

2.1.3子网 桥接和安全

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

蓝牙网格子网 桥接允许跨子网通信。但桥接表确保这只能发生在特定的源和目的地 地址 对以及特定的子网对之间。例如,在一家酒店里,客人可以按下一个按钮,向客房清洁团队发出他们希望房间得到清洁的信号,而客房清洁团队会通过蓝牙子网 桥接和蓝牙子网定向转发功能,从客人房间所属的子网 向整个酒店发送信息。但客人房间里的其他设备将无法与子网之外的任何其他节点通信。蓝牙网状子网 桥接允许在子网间进行选择性和受控通信,但保留了区域隔离带来的安全优势。

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

2.1.4子网 在行动中架设桥梁

蓝牙网格子网 桥接是在子网 桥接节点内的网络层 进行的。收到信息时,将检查桥接表中是否有地址 1 和地址 2 字段与信息的地址 和目的地 地址 相匹配的条目,或是否有地址 2 包含信息 SRC地址 ,地址 1 包含信息目的地址 地址 ,且 "方向 "字段表示支持双向桥接的条目。还需进一步检查,以核实报文网络 PDU 是否已使用子网源的网络密钥 加密。如果满足这些条件,信息将使用源子网络密钥解密,用目的地 子网 网络密钥重新加密,然后重新传输。如果子网 桥接节点的配置适当,则信息可被重传多次,并在多个子网中传播。

如果信息源和目的地 地址 不在桥接表中的单向或双向桥接条目格式中,则该信息不会被重新传输到其它子网。中继或蓝牙网格定向转发(Bluetooth Mesh Directed Forwarding)仍可能导致信息在当前子网 内重新传输。

2.1.5子网 桥接和定向转发

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

第一个依赖关系存在于第一个子网 中的源节点与作为第二个子网成员的子网 之间。第二个存在于作为第一个子网 成员的子网 与第二个子网中的目的地 节点之间。

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

3.关闭

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