[BLE--Link Layer]設備藍牙地址
簡述
不論什麽網絡設備而言,都會有自己獨特的一個MAC地址,不然在設備量較大的情況下非常可能造成通信的混亂。藍牙是無線通信中使用非常廣泛的技術。當然其藍牙地址也是相當的重要的了。
藍牙地址簡述
種類劃分
- public地址
- random地址
藍牙地址長度,48bit,即6個byte。
Public地址
該地址是固定的,廠商設定:
public addr和resolvable random addr和unresolvable random addr
Random地址
Random地址事實上又分為兩種:
- Static地址
- Private地址
Static地址
這樣的地址是在藍牙設備上電初始化成功後,就不會再變化,而到關閉電源再重新啟動,才會使用一個新的值。
Private地址
這樣的是non resolvable的private地址,其值不能和public地址一樣。對於這樣的地址,假設都沒有辦法解析出,不知道須要這類地址有什麽作用?以後知道了再來補充吧。只是認為可能是對Public地址的一個補充。
這樣的是resolvable的private地址。prand部分是隨機生成的24bit數值。hash部分使用例如以下的方式生成:
hash = ah(IRK, prand)
ah是SMP部分的隨機地址生成函數,IRK是密鑰(Identity Resolving Key),先隨機生成prand部分,然後用這個算法生成hash,然後將hash和prand部分填入上圖中相應bit區域,就形成了resolvable private address(RPA)了。
由於上面這樣的地址是resolvable的,當然得有相應的地址解析的方法了,通過解密所獲得對方的藍牙地址,才幹夠進行某些通信,看來是BLE的新特性所提供安全性的一些手段了。
在拿到對方的resolvable private address(RPA)後。本地設備從RPA中取出prand部分,然後會依據上面hash的生成方式生成一個叫localhash的:
localHash = ah(IRK, prand)
然後將這個localHash和從RPA中取出的hash部分進行比較,假設同樣,那麽對方設備就被識別了。
感覺這裏的識別作用就是確定應當用哪個IRK和對方設備交互。對於這樣的random地址的方式,後面還得再看看。應當是比較新的特性。
[BLE--Link Layer]設備藍牙地址