第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參數。

相關文章
相關標籤/搜索