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