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