參考鏈接(https://macaddresschanger.com/what-is-bluetooth-address-BD_ADDR)
1. 前言
藍牙是什么?藍牙是一種支持設(shè)備短距離通信(一般 10m 以內(nèi))的無線電技術(shù),被廣泛應用于手機、電腦、鼠標、鍵盤、藍牙音箱,當下非常流行。從 1999 年的藍牙 1.0 進化到 2016 年的藍牙 5.0,從經(jīng)典藍牙到低功耗藍牙,這項技術(shù)一直在進步,市場也在不斷擴大。在未來,藍牙也是我們生活之中不可缺少的一部分,正逐步改變我們的生活方式。本文主要對藍牙地址做一下解析,方便我們在分析藍牙數(shù)據(jù)包時不至于太盲目。
2. 藍牙地址組成
Bluetooth Device Address 藍牙設(shè)備地址可分為兩類:公開設(shè)備地址
(public device address)和隨機地址
(random device address)。
2.1 Public address
Bluetooth Address 即 Public address ,并不針對 BLE 的 random address。公開設(shè)備地址需要向 IEEE 協(xié)會申請,是需要購買的,但是可以保證地址的唯一性。Bluetooth Address(BD_ADDR):是制造商分配給每個藍牙設(shè)備的唯一 48 位。它是用來唯一識別一個物理設(shè)備的標識。正常情況下,該地址需要向IEEE 申請(購買),可以確保地址的唯一性。藍牙地址通常顯示為 6 個字節(jié),以 16 進制表示,用冒號分隔(示例:- 00:11:22:33:FF:EE )。其中,藍牙地址的 upper part(即most-significant 24 bits)被稱為 Organizationally Unique Identifier(OUI)。它可以用來確定設(shè)備的制造商。OUI 是由電氣和電子工程師協(xié)會IEEE 分配。另外,藍牙設(shè)備地址還被用來在藍牙設(shè)備之間的無線通信中確定跳頻模式。
藍牙地址結(jié)構(gòu)由三部分組成:NAP、UAP 和 LAP。NAP 非有效地址部分(2 個字節(jié))。包含 OUI 的前 16 位。NAP 值用于跳頻同步幀。UAP 高地址部分(1 個字節(jié))。包含 OUI 的剩余 8 位。UAP 值用于在各種藍牙規(guī)范算法中。LAP 低地址部分(3 個字節(jié))。這部分藍牙地址由設(shè)備供應商分配。LAP 值將藍牙設(shè)備唯一標識為每個傳輸幀中訪問代碼的一部分。LAP 和 UAP 構(gòu)成藍牙地址的重要地址部分 (SAP)。
2.2 Random Address
因為 Random Address 的設(shè)備地址不是固定分配的,而是在設(shè)備啟動后隨機生成的,而且會根據(jù)一定的周期發(fā)生變化。它的出現(xiàn)正是為了規(guī)避 Public Address申請/維護成本高、復雜等的問題的,當然這主要是可以保證地址可變,更安全。
3. 藍牙嗅探
通過ubertooth one設(shè)備運行ubertooth-rx命令嗅探到的藍牙數(shù)據(jù)信息如下圖: