乙個ble裝置,可以使用兩種型別的位址(乙個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。它們的關係如下所示:
由24-bit的company_id和24-bit的company_assigned組成,需要向ieee購買。格式如下:
選用原因:
1)public device address購買、維護,增加成本。
2)安全因素。ble很大一部分的應用場景是廣播通訊,這意味著只要知道裝置的位址,就可以獲取所有的資訊,這是不安全的。
random device address,是在裝置裝置啟動後隨機生成的。根據不同的目的,random device address分為static device address和private device address兩類。
3.1 static device address
static device address是在裝置上電時隨機生成的,格式如下圖:
特性如下:
1)最高兩個bit為「11」。
2)剩餘的46bits是乙個隨機數,不能全部為0,也不能全部為1。
3)在乙個上電週期內保持不變。
4)下一次上電的時候可以改變,但不是強制的,如果改變,上次儲存的連線等資訊,將不再有效。
3.2 private device address
static device address通過位址隨機生成的方式,解決了部分問題,private device address則更進一步,通過定時更新和位址加密兩種方法,提高藍芽位址的可靠性和安全性。根據位址是否加密,private device address又分為兩類,non-resolvable private address和resolvable private address。
(1)non-resolvable private address會定時更新。更新的週期是由gap規定的,稱作t_gap(private_addr_int) ,建議值是15分鐘。其格式如下:
特性如下:
1)最高兩個bit為「00」。
2)剩餘的46bits是乙個隨機數,不能全部為0,也不能全部為1。
3)以t_gap(private_addr_int)為週期,定時更新。
note:位址一直隨機變來變去,不知道真實場景應該如何使用。
(2)resolvable private address比較有用,它通過乙個隨機數和乙個稱作identity resolving key (irk) 的密碼生成,因此只能被擁有相同irk的裝置掃瞄到,可以防止被未知裝置掃瞄和追蹤。其格式如下:
特性如下:
1)由兩部分組成:
高位24bits是隨機數部分,其中最高兩個bit為「10」,用於標識位址型別;
低位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)為週期,定時更新。哪怕在廣播、掃瞄、已連線等過程中,也可能改變。
BLE位址型別概述
為方便自己記憶和理解進行了稍微改動。ble裝置可以同時擁有 public device address和random device address位址 random device address 又可以分為 static device address和private device address p...
BLE NRF51822教程15 BLE位址
51822的 ble的裝置位址 可以通過如下函式函式來獲得 位址的設定可以呼叫如下函式設定。官方的demo工程中,都是沒有主動呼叫過 sd ble gap address set函式來設定裝置位址的。所以 demo工程中使用的都是預設位址。這個預設位址就是 晶元出廠是設定的,出廠時燒寫在ficr暫存...
BLE(17) BLE 工程簡述
前面,link layer 敘述了一部分,這裡也聊聊做 ble 的大致的方向,以及做乙個這個東西,大致需要哪些元件 工具等。簡單的聊聊我的認識和看法。見解如有不對,請大神們指正 既然是要做 ble,那麼肯定是先需要熟讀 ble spec,從而了解其的基本特性 物理特性和軟體規範 在每個版本的 cor...