使用BLE 4.2的系統(tǒng)設計:更快、更安全、更節(jié)能
如果一臺不支持數(shù)據(jù)長度擴展功能的設備接收到數(shù)據(jù)長度的更新請求時,將會返回一個未知的回復。該回復將通知發(fā)起請求的設備另一臺設備不支持DLE,該設備將繼續(xù)傳輸符合藍牙4.1 PDU尺寸的數(shù)據(jù)。也就是說,數(shù)據(jù)長度擴展支持向下兼容。
數(shù)據(jù)長度擴展在提高吞吐量的同時,也通過減少射頻活動時間從而有助于降低功耗。這是因為在藍牙4.2中,如果數(shù)據(jù)尺寸大于27字節(jié),所需的接收/發(fā)送數(shù)據(jù)包更少、射頻活動的時間更短)。比如說,需要傳輸 135個字節(jié),BLE4.1設備在連接時需要5個發(fā)送/接收數(shù)據(jù)包來傳輸數(shù)據(jù);然而BLE4.2設備在傳輸相同數(shù)量的數(shù)據(jù)時只需一個發(fā)送/接收數(shù)據(jù)包。在無線應用中,射頻通信消耗了大多數(shù)的系統(tǒng)電力。使用DLE,射頻通信活動時間減少,可以顯著延長電池壽命。
在本系列文章的第一部分,我們討論了藍牙低功耗(BLE)4.2的數(shù)據(jù)長度擴展(DLE)和低功耗。在本文中,我們將討論藍牙低功耗的隱私保護功能、藍牙4.2的新增功能以及為何這些變化能夠使BLE設備更加保護隱私和節(jié)能。
隱私保護是BLE設備防止被不受信任的設備追蹤的能力。BLE設備在廣播數(shù)據(jù)包內(nèi)使用48比特地址,如果該地址被其他設備解碼了,那么根據(jù)這個地址就可以跟蹤該BLE設備的移動。為了保護BLE設備的隱私,受信任的BLE設備將使用共享密鑰“身份解析密鑰”(Identity Resolving Key, IRK)的共享密鑰。兩個具有此共享密鑰的BLE設備可以相互識別。一臺BLE設備先利用該共享密鑰生成一個隨機的“可解析私有地址”發(fā)送出來,另一臺設備則采用同一密鑰來解析該私有地址。
藍牙設備地址
藍牙設備使用48比特的設備地址。設備地址被分類為:
• 公有設備地址
• 隨機設備地址
1. 公有設備地址:公有設備地址由每臺設備的公司ID和公司分配ID組成,遵循IEEE 802-2001標準。公司ID和公司分配ID值均為24比特,構成總數(shù)為48比特的地址,如圖1所示。
圖1:公有設備地址
2. 隨機設備地址:顧名思義,隨機設備地址是隨機生成的地址。隨機設備地址分為兩種類型:
• 靜態(tài)隨機地址
• 私有隨機地址
2.1 靜態(tài)隨機地址:靜態(tài)隨機地址可以是出廠前在設備上預先設定好的,也可以在每次開關機循環(huán)后更改一個新值。然而,只有設備經(jīng)過一次完整的開關機循環(huán)后才可以更改此地址。如果在運行期間更改了該地址,存儲在對端設備中的地址將失效,并且將不可再使用舊地址進行重新連接。靜態(tài)隨機地址有以下要求:
• 兩個最高有效位恒為1
• 所有隨機位數(shù)值都不能為0
• 所有隨機位數(shù)值都不能為1
圖2:靜態(tài)隨機地址
私有隨機地址分兩種類型 - 不可解析私有地址和可解析私有地址。
2.1.1不可解析的私有地址:不可解析的私有地址隨機生成,并且每次連接都會發(fā)生變化。不可解析的私有地址有以下要求:
• 兩個最高有效位恒為0
• 所有隨機位數(shù)值都不能為0
• 所有隨機位數(shù)值都不能為1
該地址不能和靜態(tài)地址或公有地址相同。
2.1.2可解析私有地址(RPA)
可解析私有地址(RPA)是BLE設備隱私保護的重要支柱。RPA是指使用隨機數(shù)字和身份解析密鑰(IRK)所生成的地址。兩個設備在配對期間共享IRK,其存儲在設備的內(nèi)置存儲器中。兩臺配對設備除了共享IRK之外,還共享一個稱為身份地址的固定地址。該身份地址可以是公有的或是隨機的靜態(tài)地址類型。因較早進行綁定的設備存有IRK和身份地址,因此能夠解析配對設備的私有地址。圖3所示為可解析私有地址的格式。
在RPA中,24比特的Hash是IRK和prand的函數(shù)。Prand是24比特的數(shù)字,它包含22個隨機位數(shù)值以及2個固定的最高有效位數(shù)值;如圖3所示。
圖3:可解析私有地址
可解析私有地址的生成:可解析私有地址是與IRK和prand共同生成的。
Prand是隨機生成的,有以下要求:
• prand的兩個最高有效位數(shù)值應等于2b01
• prand的所有位元數(shù)值都不能為0
• prand的所有位元數(shù)值都不能為1
地址中的Hash部分則是利用prand和設備的128位IRK傳遞到加密函數(shù)“e”生成。此加密函數(shù)的輸出截斷為24個最低有效位數(shù)值,就是Hash數(shù)值。
Hash=e(IRK,prand *),截斷為24位
*為了使prand的長度與IRK相同,prand增加了104位數(shù)值為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中某一個地址匹配成功或者所有地址匹配結(jié)束。
B設備在配對過程中收到對端設備的IRK和身份地址后,會將其與本地IRK一起存儲在待解析列表中,用于將來解析私有地址。
在藍牙4.1中,該解析列表保存在主機上,由主機完成地址解析,這意味著在每次收到附有可解析私有地址的廣播包時,都需要主機參與解析地址。但在藍牙4.2中,該解析列表保存在控制器中,由控制器解析私有地址,無需主機干預;而如果主機使用單獨的CPU控制,則意味著不需要喚醒設備中的主機,從而降低了整體功耗。即使對于使用相同的CPU執(zhí)行控制器和主機的設備,因為地址不再需要通過不同的協(xié)議層,也可以通過減少解析地址所需的CPU循環(huán)次數(shù)而降低功耗。此外,在沒有主機參與的情況下,地址在鏈路層解析,可提供更快的連接。當在鏈路層完成地址解析時,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中使用諸如設備過濾和定向連接廣播這樣的功能。
設備過濾
設備過濾是指減少其需要響應的同類設備數(shù)量,有助于減少功耗。設備在過濾功能啟用時需要響應的那些同類設備地址和地址類型,存儲在白名單中。該白名單由主機配置并保持在鏈路層。配置完成后,鏈路層用其來過濾對等設備。由于在藍牙4.1中使用RPA時地址只能由主機解析,因此鏈路層不能過濾該設備。因此,對于藍牙4.1,當使用RPA時不支持設備過濾。由于設備需響應每個對端設備,因此增加了私有藍牙4.1設備的功耗。
在藍牙4.2中,由于地址解析在鏈路層完成,即使使用RPA仍然可以過濾設備。現(xiàn)在,不在白名單上的設備不需要主機干預,因此降低了功耗。
定向連接廣播
該定向連接廣播PDU包含傳播器的RPA,也包括想要連接至的設備RPA。這使得兩個設備之間的連接變得更快。此外,輔助設備不需要與不打算連接的對等設備共享設備的具體詳細信息。當基于藍牙4.1的中央設備使用具備過濾隱私功能的設備時,定向連接廣播不可用,因為其不能在鏈路層解析地址。然而,藍牙4.2支持在鏈路層解析地址,因此支持定向廣播連接。藍牙4.2包括附加掃描過濾器政策設置,允許帶可解析私有地址的定向廣播。在輔助設備采用定向連接廣播之前,必須檢查對等設備的中央地址解析特性。中央地址解析特性告知設備對等設備是否支持地址解析。
綜上所述,使用可解析私有地址時,BLE設備很難被追蹤到;而RPA頻繁變換且使用定向廣播,則使得跟蹤私有藍牙4.2設備變得更加困難。在鏈路層的地址解析能夠加速連接且降低功耗。此外,在藍牙4.2中采用RPA時能夠進行設備過濾,與使用藍牙4.1或更舊版本的設備相比,可提高私有設備的功耗利用效率。
評論