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