在本系列文章的第一部分,我們討論了藍牙低功耗(BLE)4.2的數據長度擴展(DLE)和低功耗。在本文中,我們將討論藍牙低功耗的隱私保護功能、藍牙4.2的新增功能以及為何這些變化能夠使BLE設備更加保護隱私和節能。
隱私保護是BLE設備防止被不受信任的設備追蹤的能力。BLE設備在廣播數據包內使用48比特地址,如果該地址被其他設備解碼了,那么根據這個地址就可以跟蹤該BLE設備的移動。為了保護BLE設備的隱私,受信任的BLE設備將使用共享密鑰“身份解析密鑰”(Identity Resolving Key, IRK)的共享密鑰。兩個具有此共享密鑰的BLE設備可以相互識別。一臺BLE設備先利用該共享密鑰生成一個隨機的“可解析私有地址”發送出來,另一臺設備則采用同一密鑰來解析該私有地址。
藍牙設備地址
藍牙設備使用48比特的設備地址。設備地址被分類為:
? 公有設備地址
? 隨機設備地址
1. 公有設備地址:公有設備地址由每臺設備的公司ID和公司分配ID組成,遵循IEEE 802-2001標準。公司ID和公司分配ID值均為24比特,構成總數為48比特的地址,如圖1所示。
圖1:公有設備地址
2. 隨機設備地址:顧名思義,隨機設備地址是隨機生成的地址。隨機設備地址分為兩種類型:
? 靜態隨機地址
? 私有隨機地址
2.1 靜態隨機地址:靜態隨機地址可以是出廠前在設備上預先設定好的,也可以在每次開關機循環后更改一個新值。然而,只有設備經過一次完整的開關機循環后才可以更改此地址。如果在運行期間更改了該地址,存儲在對端設備中的地址將失效,并且將不可再使用舊地址進行重新連接。靜態隨機地址有以下要求:
? 兩個最高有效位恒為1
? 所有隨機位數值都不能為0
? 所有隨機位數值都不能為1
圖2:靜態隨機地址
私有隨機地址分兩種類型 - 不可解析私有地址和可解析私有地址。
2.1.1不可解析的私有地址:不可解析的私有地址隨機生成,并且每次連接都會發生變化。不可解析的私有地址有以下要求:
? 兩個最高有效位恒為0
? 所有隨機位數值都不能為0
? 所有隨機位數值都不能為1
該地址不能和靜態地址或公有地址相同。
2.1.2可解析私有地址(RPA)
可解析私有地址(RPA)是BLE設備隱私保護的重要支柱。RPA是指使用隨機數字和身份解析密鑰(IRK)所生成的地址。兩個設備在配對期間共享IRK,其存儲在設備的內置存儲器中。兩臺配對設備除了共享IRK之外,還共享一個稱為身份地址的固定地址。該身份地址可以是公有的或是隨機的靜態地址類型。因較早進行綁定的設備存有IRK和身份地址,因此能夠解析配對設備的私有地址。圖3所示為可解析私有地址的格式。
在RPA中,24比特的Hash是IRK和prand的函數。Prand是24比特的數字,它包含22個隨機位數值以及2個固定的最高有效位數值;如圖3所示。
圖3:可解析私有地址
可解析私有地址的生成:可解析私有地址是與IRK和prand共同生成的。
Prand是隨機生成的,有以下要求:
? prand的兩個最高有效位數值應等于2b01
? prand的所有位元數值都不能為0
? prand的所有位元數值都不能為1
地址中的Hash部分則是利用prand和設備的128位IRK傳遞到加密函數“e”生成。此加密函數的輸出截斷為24個最低有效位數值,就是Hash數值。
Hash=e(IRK,prand *),截斷為24位
*為了使prand的長度與IRK相同,prand增加了104位數值為0的空白位,確保原有的最低有效位保持不變。
24比特prand和24比特Hash組合生成隨機地址。
可解析私有地址的解析: B設備如果具有A設備的IRK,則可以解析該A設備的可解析私有地址。可解析私有地址有24位的prand和24位的Hash。B設備通過A設備的prand和IRK來解析地址。當B設備接收到A設備的可解析私有地址后,會從該地址提取出Hash和prand,利用其生成本地Hash值。本地Hash的生成方式與在地址生成期間的方式完全相同。
本地Hash= e(A設備IRK、prand),截斷為24位
如果B設備生成的本地Hash值與從地址中提取的A設備 Hash值匹配,則該地址被成功解析。如果B設備有一個以上對端的IRK,則該設備將為每個存儲的IRK重復這一步驟,以確定接收到的可解析私有地址是否與存儲的某一個IRK相關,直到IRK中某一個地址匹配成功或者所有地址匹配結束。
B設備在配對過程中收到對端設備的IRK和身份地址后,會將其與本地IRK一起存儲在待解析列表中,用于將來解析私有地址。
在藍牙4.1中,該解析列表保存在主機上,由主機完成地址解析,這意味著在每次收到附有可解析私有地址的廣播包時,都需要主機參與解析地址。但在藍牙4.2中,該解析列表保存在控制器中,由控制器解析私有地址,無需主機干預;而如果主機使用單獨的CPU控制,則意味著不需要喚醒設備中的主機,從而降低了整體功耗。即使對于使用相同的CPU執行控制器和主機的設備,因為地址不再需要通過不同的協議層,也可以通過減少解析地址所需的CPU循環次數而降低功耗。此外,在沒有主機參與的情況下,地址在鏈路層解析,可提供更快的連接。當在鏈路層完成地址解析時,Privacy 1.2也被稱為鏈路層(LL)隱私。
可解析私有地址(RPA)超時
隨機私有地址每隔一段時間自動更新,進一步降低了設備被跟蹤的可能性。該時間間隔由主機設置,為RPA超時設置計時。當計時過期時,IRK和新的prand將會生成新的RPA。對于Privacy 1.1,RPA的超時時間固定為15分鐘。藍牙4.2中的Privacy 1.2將最小RPA超時時間減少為1秒,而最大超時時間可以為11.5小時。藍牙4.2中RPA不斷變化,私有設備難以被跟蹤,從而提高了隱私性。
雖然藍牙4.1和更舊的版本支持可解析私有地址,但由于對連接時間的影響和功耗的影響限制了可用性。在使用RPA時,不能在Privacy1.1中使用諸如設備過濾和定向連接廣播這樣的功能。
設備過濾
設備過濾是指減少其需要響應的同類設備數量,有助于減少功耗。設備在過濾功能啟用時需要響應的那些同類設備地址和地址類型,存儲在白名單中。該白名單由主機配置并保持在鏈路層。配置完成后,鏈路層用其來過濾對等設備。由于在藍牙4.1中使用RPA時地址只能由主機解析,因此鏈路層不能過濾該設備。因此,對于藍牙4.1,當使用RPA時不支持設備過濾。由于設備需響應每個對端設備,因此增加了私有藍牙4.1設備的功耗。
在藍牙4.2中,由于地址解析在鏈路層完成,即使使用RPA仍然可以過濾設備。現在,不在白名單上的設備不需要主機干預,因此降低了功耗。
定向連接廣播
該定向連接廣播PDU包含傳播器的RPA,也包括想要連接至的設備RPA。這使得兩個設備之間的連接變得更快。此外,輔助設備不需要與不打算連接的對等設備共享設備的具體詳細信息。當基于藍牙4.1的中央設備使用具備過濾隱私功能的設備時,定向連接廣播不可用,因為其不能在鏈路層解析地址。然而,藍牙4.2支持在鏈路層解析地址,因此支持定向廣播連接。藍牙4.2包括附加掃描過濾器政策設置,允許帶可解析私有地址的定向廣播。在輔助設備采用定向連接廣播之前,必須檢查對等設備的中央地址解析特性。中央地址解析特性告知設備對等設備是否支持地址解析。
綜上所述,使用可解析私有地址時,BLE設備很難被追蹤到;而RPA頻繁變換且使用定向廣播,則使得跟蹤私有藍牙4.2設備變得更加困難。在鏈路層的地址解析能夠加速連接且降低功耗。此外,在藍牙4.2中采用RPA時能夠進行設備過濾,與使用藍牙4.1或更舊版本的設備相比,可提高私有設備的功耗利用效率。
-
控制器
+關注
關注
112文章
16332瀏覽量
177813 -
藍牙
+關注
關注
114文章
5809瀏覽量
170193 -
低功耗
+關注
關注
10文章
2396瀏覽量
103675
發布評論請先 登錄
相關推薦
評論