9.BLE---安全機制之白名單


1. 白名單機制

  • 白名單(white list)是BLE協議中最簡單、直白的一種安全機制。
  • 所謂的白名單,就是一組藍牙地址。
  • 通過白名單,可以只允許特定的藍牙設備(白名單中列出的)掃描(Scan)、連接(connect)我們。
  • 也可以只掃描、連接特定的藍牙設備(白名單中列出的)。

2.HCI層操作白名單的命令

2.1 LE Read White List Size Command

該命令的格式為:

OCF

Command parameters

Return Parameters

0x000F

   

Status
White_List_Size

Status,命令執行的結果,0為success。

White_List_Size,size,范圍是1~255。

注2:由此可知,白名單是保存在controller中,由於size的范圍是1~255,因此controller必須實現白名單功能(最少保存一個)。

2.2 LE Clear White List Command,將controller中的白名單清空

該命令的格式為:

OCF

Command parameters

Return Parameters

0x0010

   

Status

Status,命令執行的結果,0為success。

2.3 LE Add Device To White List Command,將指定的設備添加到白名單

該命令的格式為:

OCF 

Command parameters

Return Parameters

0x0011

Address_type(1 byte)
Address(6 bytes)

Status

Address_type,設備的地址類型[1],0為Public Device Address,1為Random Device Address。

Address,設備的地址。

Status,命令執行的結果,0為success。

2.4 LE Remove Device From White List Command,將指定的設備從白名單中移除的命令

該命令的格式為:

OCF

Command parameters

Return Parameters

0x0012

Address_type(1 byte)
Address(6 bytes)

Status

Address_type,設備的地址類型[1],0為Public Device Address,1為Random Device Address。

Address,設備的地址。

Status,命令執行的結果,0為success。

最后需要說明的是,當controller處於以下三個狀態的時候,以上命令除"LE Read Resolving List Size Command"外,均不能執行:

正在advertising;

正在scanning;

正在connecting。

3. 白名單使用策略有關的命令

BLE設備在發起Advertising、Scanning或者Connecting操作的時候,可以通過Set Advertising Parameters、Set Scan Parameters或者LE Create Connection Command,設置Advertising、Scanning或者Connecting的過濾策略(Filter_Policy),具體如下:

3.1 Advertising時的白名單策略

LE Set Advertising Parameters Command的命令格式為:

OCF

Command parameters

Return Parameters

0x0006


Advertising_Filter_Policy(1 byte)

Status

該命令的其它參數請參考[2],Advertising_Filter_Policy的含義如下:

0x00,禁用白名單機制,允許任何設備連接和掃描。

0x01,允許任何設備連接,但只允許白名單中的設備掃描(scan data中有敏感信息?)。

0x02,允許任何設備掃描,但只允許白名單中的設備連接。

0x03,只允許白名單中的設備掃描和連接。

3.2 Scanning時的白名單策略

LE Set Scan Parameters Command的命令格式為:

OCF

Command parameters

Return Parameters

0x000B


Scanning_Filter_Policy(1 byte)

Status

Scanning_Filter_Policy的含義如下:

0x00,禁用白名單機制,接受所有的廣播包(除了那些不是給我的directed advertising packets)。

0x01,只接受在白名單中的那些設備發送的廣播包(除了那些不是給我的directed advertising packets)。

0x02,和白名單無關,不再介紹。

0x03,接受如下的廣播包:在白名單中的那些設備發送的廣播包;廣播者地址為resolvable private address的directed advertising packets;給我的給我的directed advertising packets。

注3:Scanning時的白名單策略有點奇怪,既然是主動發起的,要白名單的意義就不大了吧?

3.3 Connecting時的白名單策略

LE Create Connection Command的命令格式為:

OCF

Command parameters

Return Parameters

0x000D


Initiator_Filter_Policy(1 byte)

Status

Initiator_Filter_Policy的含義如下:

0x00,禁用白名單機制,使用Peer_Address_Type and Peer_Address指定需要連接的設備。

0x01,連接那些在白名單中的設備,不需要提供Peer_Address_Type and Peer_Address參數。

 

本文參考:http://www.wowotech.net/bluetooth/ble_white_list.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM