前述文章《藍(lán)牙5.4引入PAwR,電子價(jià)簽迎來新機(jī)遇》中我們介紹了藍(lán)牙5.4的PAwR特性,該特性的引入使得電子價(jià)簽領(lǐng)域迎來了新的機(jī)遇,但其實(shí)藍(lán)牙5.4一共引入了4個(gè)特性,本文將逐一進(jìn)行介紹后面3個(gè)特性。
首先來回顧一下藍(lán)牙5.4的幾個(gè)新特性:
1)支持帶響應(yīng)的周期性廣播(PAwR)
PAwR是一個(gè)新的BLE邏輯傳輸層,是一種支持無連接的、雙向的、一對(duì)多的、一種低功耗拓?fù)浼夹g(shù)。
2)支持帶加密的廣播數(shù)據(jù)(EAD)
該特性提供了一種標(biāo)準(zhǔn)化的方法來加密廣播包中的數(shù)據(jù),加密后的廣播數(shù)據(jù)只能被擁有相同密鑰的設(shè)備解密。廣播包的加密是需要兩個(gè)設(shè)備建立gatt連接之后,才會(huì)生成加密廣播包的密鑰。
3)支持標(biāo)記安全等級(jí)(GATT)
設(shè)備現(xiàn)在可以支持使用GATT安全等級(jí)特性來表示設(shè)備的安全模式和安全等級(jí)。
4)支持選擇動(dòng)態(tài)廣播編碼(CSSA)
當(dāng)發(fā)送BLE擴(kuò)展廣播的時(shí)候,現(xiàn)在可以選擇使用哪種Codec編碼方式來發(fā)送。
PAwR特性上一篇文章已經(jīng)介紹過,本文主要介紹支持加密的廣播數(shù)據(jù)(EAD)、LE GATT 安全級(jí)別特征、廣播編碼選擇這三個(gè)特性。
1.加密廣播(EAD)特性介紹
加密廣播特性為廣播包、掃描響應(yīng)包和EIR數(shù)據(jù)包中的加密數(shù)據(jù)傳輸提供了一種標(biāo)準(zhǔn)化的、普遍適用的機(jī)制,并安全地共享相關(guān)的加密密鑰材料。這使得無連接通信可以用于一對(duì)多或一對(duì)一場(chǎng)景中的安全應(yīng)用程序數(shù)據(jù)傳輸。
加密廣播特性的實(shí)現(xiàn)基于BLE的廣播通道,類似于經(jīng)典藍(lán)牙,您可以參考藍(lán)牙核心規(guī)范以了解更多詳細(xì)信息。
1.1共享密鑰材料
共享密鑰材料的傳輸需要廣播方設(shè)備,該設(shè)備可以接收連接請(qǐng)求命令并建立GATT連接。廣播方扮演GAP外圍設(shè)備角色,并且該設(shè)備的GATT服務(wù)中需要包含GAP服務(wù)。
藍(lán)牙5.4規(guī)定了一個(gè)新的特征,稱為Encrypted Data Key Material,該特征為加密廣播數(shù)據(jù)的接收者共享密鑰材料提供了基礎(chǔ)。加密數(shù)據(jù)密鑰材料特征包含一個(gè)24字節(jié)的值,由16字節(jié)的會(huì)話密鑰和8字節(jié)的IV值組成。GATT客戶端只能通過加密和驗(yàn)證的GATT連接讀取該值,因此廣播設(shè)備和所有打算成為加密廣播數(shù)據(jù)接收者的設(shè)備必須已經(jīng)配對(duì)。該特性不允許寫入,還可以支持GATT指示,但只能通過安全鏈接。
當(dāng)外圍設(shè)備與中央設(shè)備建立連接后,當(dāng)設(shè)備的密鑰材料產(chǎn)生變化時(shí),外圍設(shè)備可以使用GATT指示命令通知中央設(shè)備。
圖 1客戶端讀取加密數(shù)據(jù)密鑰
圖 2服務(wù)器端發(fā)起加密數(shù)據(jù)密鑰指示
如果設(shè)備需要容納多個(gè)加密密鑰材料值,加密數(shù)據(jù)密鑰材料特性可以不用包含在GAP服務(wù)中,可以直接包含在自定義的服務(wù)中。
1.2廣播數(shù)據(jù)加密
為了保證數(shù)據(jù)的安全傳輸,所有需要進(jìn)行安全傳輸?shù)臄?shù)據(jù)都必須首先封裝在適當(dāng)?shù)腁D結(jié)構(gòu)中。通過將需要加密的多個(gè)AD結(jié)構(gòu)集合連接成一個(gè)序列,可以支持加密多個(gè)AD結(jié)構(gòu)。實(shí)際上,進(jìn)行加密的正是這個(gè)AD結(jié)構(gòu)序列,其中可能包含一個(gè)或多個(gè)AD結(jié)構(gòu)。
1.3加密數(shù)據(jù)傳輸
藍(lán)牙5.4引入了一種新的廣播類型,可通過加密來保護(hù)需要保密的數(shù)據(jù)。一個(gè)廣播包可以包含一個(gè)或多個(gè)加密類型的數(shù)據(jù),這些加密數(shù)據(jù)AD類型會(huì)被包含在適當(dāng)?shù)臄?shù)據(jù)包中,而已經(jīng)加密的AD類型則不會(huì)以原始純文本形式出現(xiàn)在數(shù)據(jù)包中。其他未加密的AD類型可能會(huì)包含在包含加密數(shù)據(jù)AD類型的數(shù)據(jù)包中。
除了密文有效載荷外,加密數(shù)據(jù)AD結(jié)構(gòu)的數(shù)據(jù)字段還包括一個(gè)40位的隨機(jī)化器字段和一個(gè)32位的消息完整性檢查(MIC)。下圖展示了一個(gè)示例廣播負(fù)載,其中包含兩種已加密并封裝在加密數(shù)據(jù)AD類型中的AD類型(ESL和本地名稱)以及一種未加密的AD類型(標(biāo)志)。
Randomizer字段包含一個(gè)5字節(jié)的隨機(jī)數(shù),按照藍(lán)牙核心規(guī)范中的要求生成。每次有效載荷值發(fā)生變化時(shí),都需要生成一個(gè)新的隨機(jī)發(fā)生器值。Randomizer值用于生成CCM算法所需的隨機(jī)數(shù)。
如果使用的是隨機(jī)設(shè)備地址,只要設(shè)備更改其地址,Randomizer字段也必須更改。這會(huì)導(dǎo)致在設(shè)備地址更改時(shí)廣播數(shù)據(jù)包的內(nèi)容也會(huì)更改,從而降低竊聽者跟蹤設(shè)備的能力。
圖 3帶加密數(shù)據(jù)AD類型的廣播負(fù)載
配置文件負(fù)責(zé)定義如何預(yù)共享由會(huì)話密鑰和IV組成的加密密鑰材料,以使用加密廣播數(shù)據(jù)功能。加密數(shù)據(jù)密鑰材料特性可以包含在通用訪問配置文件GATT服務(wù)或其他一些服務(wù)中,具體取決于與配置文件相關(guān)的其他考慮因素,例如設(shè)備角色。
2.安全等級(jí)(GATT)特性介紹
通用屬性配置文件(GATT)提供了一種方法,通過該方法可以在由GATT服務(wù)、特性和描述符組成的結(jié)構(gòu)中表示設(shè)備數(shù)據(jù)和功能。GATT服務(wù)、特征、描述符,這三個(gè)類型每個(gè)都是一個(gè)屬性(attribute),屬性是在屬性表中宏定義的,屬性表中的每一個(gè)屬性都有一個(gè)唯一的標(biāo)識(shí)符,這個(gè)標(biāo)識(shí)符稱為句柄(handle)。
設(shè)備使用稱為屬性協(xié)議(ATT)訪問對(duì)端藍(lán)牙設(shè)備屬性表中的屬性,遵循各種 GATT 程序定義的規(guī)則,例如特征值讀取和特征值寫入。
GATT 定義了兩個(gè)角色,GATT客戶端和GATT服務(wù)端。 GATT 客戶端向 GATT 服務(wù)器發(fā)送 ATT 命令,命令分為需要響應(yīng)的和不需要響應(yīng)的。 GATT 服務(wù)器接受并處理從GATT 客戶端接收到的命令和請(qǐng)求。 GATT 服務(wù)器也可以向 GATT 客戶端發(fā)送各種類型的 ATT PDU,命令包括通知和指示,通知是不需要響應(yīng)的,指示是需要響應(yīng)確認(rèn)的。
屬性表中的每個(gè)屬性都包含一組屬性權(quán)限。屬性權(quán)限定義了客戶端對(duì)該屬性的訪問類型(例如,讀特征值的能力)以及在授予該訪問權(quán)限之前可能需要條件。例如,一個(gè)屬性的權(quán)限可能表明客戶端可以讀取它的值,但只能通過經(jīng)過身份驗(yàn)證和加密的鏈接。屬性權(quán)限也適用于ATT 服務(wù)器及其使用通知和指示與客戶端的通信。
ATT PDU 通過GATT連接傳輸?shù)摹MǔT诮⑦B接后,GATT 客戶端會(huì)先執(zhí)行服務(wù)發(fā)現(xiàn)流程,來發(fā)現(xiàn)涉及服務(wù)、特征和描述符及其相關(guān)屬性(例如句柄值、類型和權(quán)限),來確定設(shè)備屬性表的內(nèi)容。需要注意的是,屬性權(quán)限不限制客戶端執(zhí)行發(fā)現(xiàn)過程的能力。
圖 4服務(wù)、特征和描述符
如果客戶端嘗試訪問某個(gè)屬性,但不滿足相關(guān)屬性權(quán)限的條件,則屬性協(xié)議定義了幾個(gè)要返回的錯(cuò)誤代碼,以向客戶端設(shè)備指示訪問請(qǐng)求被拒絕以及拒絕的原因。示例包括加密不足、身份驗(yàn)證不足和加密密鑰大小不足等。
2.1GATT 安全和用戶體驗(yàn)
當(dāng)客戶端嘗試訪問該屬性時(shí),會(huì)檢查該屬性的權(quán)限。如果不滿足屬性權(quán)限所規(guī)定的安全條件,將拒絕客戶端訪問,并在ATT_ERROR_RSP PDU中返回包含錯(cuò)誤代碼的響應(yīng)。
當(dāng)服務(wù)器拒絕訪問某個(gè)屬性時(shí),通常不會(huì)直接斷開GATT連接。此時(shí),客戶端通常會(huì)升級(jí)安全等級(jí),來達(dá)到訪問標(biāo)準(zhǔn)。例如,如果嘗試讀取特征值導(dǎo)致返回加密不足錯(cuò)誤,則客戶端可能會(huì)通過啟動(dòng)配對(duì)流程,配對(duì)完成后,就可以使用加密鏈路來訪問,只是此時(shí)需要用戶重發(fā)上次訪問失敗的數(shù)據(jù)。
正是由于不滿足訪問安全權(quán)限導(dǎo)致錯(cuò)誤,就算客戶端升級(jí)了安全等級(jí),也會(huì)導(dǎo)致用戶需要手動(dòng)重發(fā)該數(shù)據(jù),這就非常影響用戶的體驗(yàn),然而,直到 5.3 版的藍(lán)牙核心規(guī)范依然沒有提供此安全錯(cuò)誤處理策略的替代方案。當(dāng)然,這也是藍(lán)牙5.4 支持 GATT安全級(jí)別特征的意義所在。
2.2關(guān)于 LE GATT安全等級(jí)特征
藍(lán)牙核心規(guī)范 5.4 版定義了一個(gè)稱為L(zhǎng)E GATT 安全級(jí)別特征 (SLC) 的新特征。SLC 特性允許客戶端確定 GATT 服務(wù)器安全條件,如果要授予對(duì)所有 GATT 功能的訪問權(quán)限,則必須滿足這些條件。更重要的是,它允許在訪問GATT 使用的屬性之前確定這一點(diǎn)。這種提前檢查訪問要求可以提供更好的用戶體驗(yàn),因?yàn)椴粫?huì)因安全級(jí)別問題導(dǎo)致應(yīng)用程序臨時(shí)中斷。
設(shè)備可以在GAP服務(wù)中包含 SLC 特性,客戶端在發(fā)現(xiàn)服務(wù)的時(shí)候,發(fā)現(xiàn)該特征值后,就會(huì)根據(jù)該特征值的安全條件,來選擇合適的安全級(jí)別,比如發(fā)起配對(duì)。
2.3 BLE的安全配對(duì)模式和等級(jí)
安全模式1:無安全(不加密 不鑒權(quán));加密的不鑒權(quán)配對(duì);加密的鑒權(quán)配對(duì);BLE的安全連接,加密的鑒權(quán)配對(duì);
安全模式2:帶數(shù)字簽名的不鑒權(quán)配對(duì);帶數(shù)字簽名的鑒權(quán)配對(duì);
安全模式3:無安全(不加密 不鑒權(quán));使用不鑒權(quán)的Broadcast_Code;使用鑒權(quán)的Broadcast_Code;
客戶端通過讀取其值并根據(jù)安全級(jí)別要求字段指示的值評(píng)估當(dāng)前安全模式和級(jí)別來使用 SLC 特性。如果發(fā)現(xiàn)當(dāng)前的安全模式和級(jí)別不足以允許服務(wù)器支持的所有GATT 功能,此時(shí)客戶端應(yīng)用程序?qū)⒉扇〈胧﹣斫鉀Q這個(gè)問題,通常是調(diào)用程序來升級(jí)鏈接安全性。
3.動(dòng)態(tài)廣播編碼(CSSA)特性介紹
藍(lán)牙 LE 物理層定義了三種變體,統(tǒng)稱為PHY。這三個(gè) PHY 分別稱為 LE 1M、LE 2M 和 LE Coded。
使用 LE Coded PHY 時(shí),前向糾錯(cuò) (FEC) 算法和模式映射器將根據(jù)配置應(yīng)用于傳輸前的有效載荷。這導(dǎo)致附加的糾錯(cuò)數(shù)據(jù)被包含在傳輸?shù)臄?shù)據(jù)包中。使用 FEC 算法可以保證在距離發(fā)射端比較遠(yuǎn)的設(shè)備也可以正確的接收數(shù)據(jù)(也就是具有較低的信噪比)。
Coded PHY 編碼有兩種方式,根據(jù)配置S=2或者S=8,可以控制生成多少糾錯(cuò)數(shù)據(jù),以及將通訊距離增加到什么程度。
如下圖比較了這三種PHY:
圖 5不同PHY下數(shù)據(jù)對(duì)比
雖然之前Host端已經(jīng)定義了如何使用HCI接口來發(fā)送命令,來改變Control端的編碼,但是在藍(lán)牙5.4之前,當(dāng)擴(kuò)展廣播選擇LE CODEC編碼的時(shí)候,是不能指定S的值是選擇2還是選擇8, 也不能進(jìn)行動(dòng)態(tài)的切換。 而藍(lán)牙5.4更改了HCI 命令,以允許在使用 LE 編碼 PHY 時(shí)指定 FEC 參數(shù) S 的值。
HCI命令如下圖:
圖 6HCI命令
3.總結(jié)
藍(lán)牙核心規(guī)范 5.4 版在 PAwR 中添加了一項(xiàng)重要的全新雙向無連接功能,使在廣播數(shù)據(jù)包中安全地廣播機(jī)密數(shù)據(jù)成為可能。除了這些相當(dāng)大的改進(jìn)之外,使用 GATT 的應(yīng)用程序現(xiàn)在可以在處理屬性安全要求時(shí)提供比以前更好的用戶體驗(yàn),并且設(shè)備可以在使用LE Coded PHY 進(jìn)行擴(kuò)展廣播時(shí)對(duì)重要參數(shù)(S) 進(jìn)行控制。
總的來說,藍(lán)牙5.4這些新的特性,比較明確的應(yīng)用場(chǎng)景就是電子價(jià)簽,這也是藍(lán)牙技術(shù)聯(lián)盟想要獲取的一塊市場(chǎng)。當(dāng)然這些特性也可以嵌入到其他的藍(lán)牙產(chǎn)品中,來提高產(chǎn)品的用戶體驗(yàn)。
原廠SoC支持方面,NordicnRF52系列SoC、Silicon Labs EFR32BG22、EFR32xG24系列SoC都可以直接藍(lán)牙5.4。藍(lán)牙模塊方面,信馳達(dá)科技基于nRF52840、nRF52833、nRF52832、nRF52811、nRF52810系列藍(lán)牙無線模塊、基于EFR32BG22、EFR32BG24、EFR32MG24系列藍(lán)牙無線模塊都可以支持藍(lán)牙5.4。
關(guān)于信馳達(dá)
深圳市信馳達(dá)科技有限公司(RF-star)是一家專注于物聯(lián)網(wǎng)射頻通信方案的高新技術(shù)企業(yè),車聯(lián)網(wǎng)聯(lián)盟(CCC)和智慧車聯(lián)產(chǎn)業(yè)生態(tài)聯(lián)盟(ICCE)會(huì)員,通過ISO9001和IATF16949質(zhì)量體系認(rèn)證。2010年成立之初即成為美國(guó)TI公司官方授權(quán)方案商,之后陸續(xù)得到Silicon Labs、Nordic、Realtek、Espressif、ASR、卓勝微等海內(nèi)外知名芯片企業(yè)的認(rèn)可和支持。公司提供物聯(lián)網(wǎng)無線模塊和應(yīng)用方案,包括BLE、Wi-Fi、UWB、Zigbee、Thread、Matter、Sub-1G、Wi-SUN、LoRa等。
審核編輯 黃宇
-
藍(lán)牙
+關(guān)注
關(guān)注
114文章
5823瀏覽量
170324 -
AD
+關(guān)注
關(guān)注
27文章
868瀏覽量
150328 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2909文章
44635瀏覽量
373354
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論