第18.2节_地址类型与LL层设备过滤

1、地址类型html

2、白名单和Resolving List安全

3、LL层设备过滤dom

1、地址类型学习

学习资料:官方手册.net

Vol 6: Core System Package [Low Energy Controller volume]视频

       Part B: Link Layer Specificationhtm

              1.3 Device Addressblog

 

这篇文章总结得比较好:ci

蓝牙协议分析(6)_BLE地址类型get

http://www.wowotech.net/bluetooth/ble_address_type.html

 

BLE地址分为2大类:

1. 公有地址(Public Device Address):

这须要向IEEE购买,而且容易被伪造。

2. 随机地址(Random Device Address):

这又分为这2类:静态地址、随机地址。

2.1 静态地址(Static address):

每次上电周期,设备均可以选择一个随机数做为地址,在该上电周期中地址保持不变。

下一次上电时,设备能够继续使用上次的地址,也能够选择新的随机地址。

该类地址的最高2位为0b11。

 

不用购买,也容易被伪造。

 

2.2 私有地址(Private address):

这类地址每隔几分钟交换一次,通常建议是15分钟。

这又分为这2类:不可解析私有地址、可解析私有地址。

2.2.1 不可解析私有地址(Non-resolvable private address):

除最高2位是0b00外,其余46位都是随机数。

其应用场景并非很清晰,地址变来变去的,确实是迷惑了敌人,但本身人不也同样被迷惑了吗?所以,实际产品中,该地址类型并不经常使用。

 

2.2.2 可解析私有地址(Resolvable private address):

最高2位是0b01,其他部分见下图。

在上一节视频里讲解过该类地址。

 

 

随机地址这一类目下,有3种地址(看上图中的3个红色箭头),它们能够根据最高2位互相区分。

可是公有地址和随机地址之间,没法经过地址值来区分。

所以,在发送的数据中会有一位被用来标记地址类型。

好比广播数据包中,头部信息中有一位“TxAdd”或“RxAdd”,0表示公有地址,1表示随机地址:

 

 

以前咱们说过为了防止被冒充、为了隐私,建议使用“可解析私有地址”。

一个设备,它可能有公有地址,可是它仍可同时使用“可解析私有地址”。

一个设备,它上电后使用了静态地址,可是它仍可同时使用“可解析私有地址”。

也就是说,一个设备它可使用变来变去的“可解析私有地址”,可是咱们要称呼它时须要一个相对固定的地址。这个相对固定的地址,就叫“Identity Address”,它是公有地址或静态地址。

 

 

白名单里保存的都是“Identity Address”,“Identity Address”多是公有地址也多是静态随机地址,因此还须要“Address Type”来分辨它是哪一类。

2、白名单和Resolving List

学习资料:官方手册

Vol 2: Core System Package [BR/EDR Controller volume]

       Part E: Host Controller Interface Functional Specification

              7 HCI Commands and Events

                     7.8 LE Controller Commands

 

这篇文章总结得比较好:

蓝牙协议分析(8)_BLE安全机制之白名单

http://www.wowotech.net/bluetooth/ble_white_list.html

 

LL层能够根据设备的地址,过滤掉一些设备,省得频繁打扰Host致使浪费电量。

 

过滤设备,要借助于白名单。

白名单是一个列表,每个表项中含有“Device Identity Address”和“Address Type”:

Device Identity Address:设备的公有地址或静态地址;

Address Type:设备的地址类型

 

为了防止别的设备冒充白名单里的设备,可使用“可解析地址”。Controller为了可以解析地址,须要有一个“Resolving List”。

白名单和“Resolving List”的做用在上一节视频里介绍过,Host能够经过命令在白名单和“Resolving List”中增长、删减项目。

 

 

1. 白名单操做命令:

 

 

2. “Resolving List”操做命令:

 

 

3、LL层设备过滤

学习资料:官方手册

Vol 6: Core System Package [Low Energy Controller volume]

       Part B: Link Layer Specification

              4.3 Link Layer Device Filtering

Vol 2: Core System Package [BR/EDR Controller volume]

       Part E: Host Controller Interface Functional Specification

              7 HCI Commands and Events

                     7.8 LE Controller Commands

                            7.8.5 LE Set Advertising Parameters Command

                            7.8.10 LE Set Scan Parameters Command

                            7.8.12 LE Create Connection Command

LL层能够根据设备的地址,过滤掉一些设备,省得频繁打扰Host致使浪费电量。

LL层过滤设备的策略有以下3种,它们都使用同一个白名单:

1. 广播过滤策略(Advertising Filter Policy)

该策略用来决定广播设备的链路层,如何处理其余设备发来的扫描请求、链接请求。

Host能够发出下面的命令设置Controller的Advertising Filter Policy:

 

 

Advertising_Filter_Policy的含义以下:

0x00,禁用白名单机制,容许任何设备链接和扫描。

0x01,容许任何设备链接,但只容许白名单中的设备扫描。

0x02,容许任何设备扫描,但只容许白名单中的设备链接。

0x03,只容许白名单中的设备扫描和链接。

 

2. 扫描过滤策略(Scanner Filter Policy)

该策略用来决定处于扫描态的设备的链路层,如何处理其余设备发来的广播包。

Host能够发出下面的命令设置Controller的Scanner Filter Policy:

 

 

Scanning_Filter_Policy的含义以下:

0x00,禁用白名单机制,接受全部的广播包(除了那些目的地址不是该设备的directed advertising packets)。

0x01,只接受在白名单中的那些设备发送的广播包(除了那些目的地址不是该设备的directed advertising packets)。

0x02,Extended Scanner Filter policies相关,暂时不介绍。

0x03,Extended Scanner Filter policies相关,暂时不介绍。

 

3. 发起者过滤策略(Initiator Filter Policy)

该策略用来决定怎么去链接对端设备:要Host指定,仍是自动链接白名单中的设备。

Host能够发出下面的命令设置Controller的Initiator Filter Policy:

 

 

Initiator_Filter_Policy的含义以下:

0x00,禁用白名单机制,使用Host提供的Peer_Address_Type and Peer_Address指定须要链接的设备。

0x01,链接那些在白名单中的设备,不须要Host提供Peer_Address_Type and Peer_Address参数。

相关文章
相关标签/搜索