BLE位址型別概述

2021-08-19 16:31:34 字數 2236 閱讀 7406

為方便自己記憶和理解進行了稍微改動。

ble裝置可以同時擁有:public device address和random device address位址

random device address 又可以分為:static device address和private device address

private device address又可以分為non-resolvable private address和resolvable private address(不加密&加密)。

1.在傳統藍芽中藍芽的位址由48bits的數字位址,又叫"48-bit universal lan mac addresses"(和電腦的mac位址一樣),但是這個是需要購買的,對於現在數量龐大的ble裝置而言,顯然不夠用,且成本太高。所以在ble協議提出的時候,既保留了傳統的位址分配方法,即public device address,從安全因素上考慮,ble很大一部分的應用場景是廣播通訊,如果使用該位址的話,這意味著只要知道裝置的位址,就可以獲取所有的資訊,這是不安全的。因此固定的裝置位址,加大了資訊洩露的風險。因此在ble協議中增加了random device addressd的方法,即位址是裝置通電後隨機分配的。

2.根據目的的不同random device address又可以分為:

static device address和private device address

(1)static device address:

static device address是裝置在上電時隨機生成的位址

特徵:1)最高兩個bit為「11」。

2)剩下的46bits是乙個隨機數,不能全部為0或1。

3)在斷電前該位址保持不變。

4)下一次上電的時候可以改變。也可不變,若改變則之前的儲存連線等資訊將不再有效。

(2)private device address:

定時更新位址&加密位址

跟新的週期由gap控制

根據是否加密又分為:

non-resolvable private address和resolvable private address

non-resolvable private address:

1)最高位「00」

2)剩餘的46bits是乙個隨機數,不能全部為0,也不能全部為1。

resolvable private address:

該方法比較有用,它通過乙個隨機數和乙個稱作identity resolving key (irk) 的密碼生成,因此只能被擁有相同irk的裝置掃瞄到,可以防止被未知裝置掃瞄和追蹤。

低位24bits是隨機數和irk經過hash運算得到的hash值,運算的公式為hash = ah(irk, prand)。

2)當對端ble裝置掃瞄到該型別的藍芽位址後,會使用儲存在本機的irk,和該位址中的prand,進行同樣的hash運算,並將運算結果和位址中的hash欄位比較,相同的時候,才進行後續的操作。這個過程稱作resolve(解析),這也是non-resolvable private address/resolvable private address命名的由來。

3)以t_gap(private_addr_int)為週期,定時更新。哪怕在廣播、掃瞄、已連線等過程中,也可能改變。

4)resolvable private address不能單獨使用,因此需要使用該型別的位址的話,裝置要同時具備public device address或者static device address中的一種。

ble resolvable private address的解析和過濾操作是在鏈路層實現的,因而為ble的廣播通訊提供了乙個相對安全的加密環境。鏈路層以resolving list的形式,通過hci向host提供相關的控制api,以實現相應的功能,相關的hci命令介紹如下:

2)如果本地裝置需要和某乙個使用resolvable private address的裝置通訊(掃瞄、連線等),則需要將該裝置新增到resolving list中,並使能位址解析功能。只有位址解析正確的時候,鏈路層才會繼續後續的通訊動作。

3)如果位址解析不正確,本地裝置向對方傳送的所有的資料報(掃瞄請求、連線請求等),都不能被正確接收(因為目的位址不正確)。但有乙個例外,如果本地裝置直接關閉位址解析功能,還是能收到對方的廣播包,因此,resolvable private address並不能保護廣播包的資料。如果有敏感資訊,放到scan response packet中應該是乙個不錯的選擇。

BLE 位址型別

乙個ble裝置,可以使用兩種型別的位址 乙個ble裝置可同時具備兩種位址 public device address和random device address。而random device address又分為static device address和private device address...

BLE協議架構概述(1)

控制器controller controller實現射頻相關的模擬和數字部分,完成最基本的資料傳送和接收,controller對外介面是天線,對內介面是主機控制器介面hci host controller inte ce 控制器包含物理層phy physical layer 鏈路層ll linker...

BLE NRF51822教程15 BLE位址

51822的 ble的裝置位址 可以通過如下函式函式來獲得 位址的設定可以呼叫如下函式設定。官方的demo工程中,都是沒有主動呼叫過 sd ble gap address set函式來設定裝置位址的。所以 demo工程中使用的都是預設位址。這個預設位址就是 晶元出廠是設定的,出廠時燒寫在ficr暫存...