在之前的藍(lán)牙配對(duì)系列博文中,提到了PassKey和Numeric Comparison等配對(duì)方法。今天我會(huì)介紹另外一種方法,即Out of Band,OOB。
OOB關(guān)聯(lián)模型適用于使用帶外(out of band)機(jī)制來發(fā)現(xiàn)設(shè)備、以及交換或傳送將在配對(duì)過程中使用的加密信息等場景。OOB對(duì)于開發(fā)者來說是一項(xiàng)靈活的選擇,能夠讓他們定義自己的配對(duì)機(jī)制,因此安全級(jí)別取決于帶外保護(hù)功能。今天就讓我們一起來深入探討吧!
1. 第1階段 - 配對(duì)特性交換
在我的博文《藍(lán)牙配對(duì)系列第四篇》中,有一個(gè)類似于表1的表格。這是配對(duì)請(qǐng)求/響應(yīng)(Pairing request/response)的框架結(jié)構(gòu)。在該表中,有一名為“OOB數(shù)據(jù)標(biāo)志”(OOB Data Flag)的字段,長度為1個(gè)字節(jié)。
Table 1, 配對(duì)請(qǐng)求/響應(yīng)
表1
關(guān)于“OOB數(shù)據(jù)標(biāo)志”的定義,請(qǐng)參考表2。
Table 2, OOB數(shù)據(jù)標(biāo)志位定義
表2
OOB數(shù)據(jù)標(biāo)志定義了用于指示OOB認(rèn)證數(shù)據(jù)是否可用的值。
2. 低功耗傳統(tǒng)配對(duì)
當(dāng)兩臺(tái)藍(lán)牙設(shè)備都使用低功耗傳統(tǒng)配對(duì)時(shí),這一過程就很容易理解。有關(guān)傳統(tǒng)配對(duì)方法選用的詳細(xì)信息,請(qǐng)查看表3。我已經(jīng)在此表中對(duì)選用OOB的單元格進(jìn)行了黃色標(biāo)注, 這樣就一目了然:
如果使用OOB進(jìn)行配對(duì),兩臺(tái)設(shè)備必須設(shè)置其OOB數(shù)據(jù)標(biāo)志;
如果其中一臺(tái)設(shè)備設(shè)置了OOB數(shù)據(jù)標(biāo)志,而另一臺(tái)設(shè)備未設(shè)置,則兩臺(tái)設(shè)備都需要檢查在表1中“AutheReq”字段中的MITM標(biāo)志(表1中綠色高亮部分)。如果其中任何一臺(tái)設(shè)備設(shè)置了MITM標(biāo)志,則可通過IO Capabilities與配對(duì)方法的映射來選擇配對(duì)方法。有關(guān)映射的詳細(xì)信息,請(qǐng)參閱藍(lán)牙5核心規(guī)格、第3卷、H部分、表2.8。
其他情況,則使用“直接連接(Just Works)”方法配對(duì)。
Table 3,OOB配對(duì)規(guī)則速查表
表3
Picture 1 OOB配對(duì)流程圖
圖1
在圖1中,高亮標(biāo)注的部分與《藍(lán)牙配對(duì)系列第三篇》傳統(tǒng)配對(duì)的PassKey相同。之后,兩臺(tái)設(shè)備的安全管理器(Security Manager)將:
首先,創(chuàng)建兩邊的隨機(jī)值Mrand和Srand。之后,帶外機(jī)制可用于交換信息,例如設(shè)備地址和128位臨時(shí)密鑰(TK)值,以助于設(shè)備發(fā)現(xiàn)。正如我在第三篇“傳統(tǒng)配對(duì)—PassKey”中所解釋的,TK值是由偽隨機(jī)數(shù)引擎產(chǎn)生的128位隨機(jī)數(shù),引擎應(yīng)符合藍(lán)牙核心規(guī)格的要求。
第1步
通過公式c1計(jì)算Mconfirm和Sconfirm,對(duì)于任何加密工具箱,均可參閱藍(lán)牙5核心規(guī)格、第三卷、H部分、第2.2節(jié)。
第2步
交換Mconfirm、Sconfirm和Mrand。
第3步
響應(yīng)設(shè)備通過發(fā)起設(shè)備傳送的Mrand值來再次執(zhí)行Mconfirm的計(jì)算,來驗(yàn)證計(jì)算出的值與Mconfirm值是否一致。
如果響應(yīng)設(shè)備計(jì)算得出的Mconfirm值與發(fā)起設(shè)備發(fā)來的Mconfirm值不匹配,則配對(duì)過程會(huì)中止,響應(yīng)設(shè)備會(huì)發(fā)送原因代碼為“確認(rèn)值失敗(Confirm Value Failed)”的配對(duì)失敗指令。
如果響應(yīng)設(shè)備計(jì)算得出的Mconfirm值與發(fā)起設(shè)備發(fā)來的Mconfirm值相匹配,則響應(yīng)設(shè)備會(huì)向發(fā)起設(shè)備發(fā)送Srand。
發(fā)起設(shè)備通過響應(yīng)設(shè)備傳送的Srand值來再次執(zhí)行Sconfirm的計(jì)算,來驗(yàn)證計(jì)算出的值和Sconfirm值是否一致。
如果發(fā)起設(shè)備計(jì)算得出的Sconfirm值與響應(yīng)設(shè)備發(fā)來的Sconfirm值不匹配,則配對(duì)過程或被中止,發(fā)起設(shè)備會(huì)發(fā)送原因代碼為“確認(rèn)值失敗(Confirm Value Failed)”的配對(duì)失敗指令。
如果發(fā)起設(shè)備計(jì)算得出的Sconfirm值與響應(yīng)設(shè)備發(fā)來的Sconfirm值相匹配,則發(fā)起設(shè)備會(huì)計(jì)算出短期密鑰(Short Term Key,簡稱STK ),并通知控制器(Controller)啟用加密。
3. OOB的簡便之處
目前,低功耗藍(lán)牙已經(jīng)成為智能手機(jī)和平板電腦的標(biāo)準(zhǔn)配置。設(shè)備間采用藍(lán)牙進(jìn)行連接的方法也是多種多樣的 。在這些方法當(dāng)中,還有一種通過藍(lán)牙連接設(shè)備的常用方法就是使用NFC進(jìn)行“一鍵配對(duì)”。由于NFC的傳輸范圍非常有限,一些開發(fā)者在設(shè)備之間借助NFC確保兩臺(tái)設(shè)備正確地進(jìn)行配對(duì)。因此,NFC可以為OOB配對(duì)提供良好的通信接口。當(dāng)使用OOB進(jìn)行配對(duì)時(shí),用戶的體驗(yàn)略有不同。例如,用戶的智能手機(jī)和手環(huán)兩臺(tái)設(shè)備都具有低功耗藍(lán)牙和NFC接口。用戶先讓兩臺(tái)設(shè)備相接觸,然后會(huì)看到配對(duì)選項(xiàng)。如果選擇“是”,則配對(duì)成功。所以這是一種一鍵式的體驗(yàn),交換的信息在兩臺(tái)設(shè)備中都能使用,是不是超酷呢?
-
藍(lán)牙
+關(guān)注
關(guān)注
115文章
5970瀏覽量
172631 -
藍(lán)牙配對(duì)
+關(guān)注
關(guān)注
3文章
6瀏覽量
3247 -
OOB
+關(guān)注
關(guān)注
0文章
6瀏覽量
3981
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
O-band與C-band DWDM光模塊:易飛揚(yáng)COLOR系列開啟高效傳輸新時(shí)代

請(qǐng)問一下HC-08應(yīng)該如何與CC2564配對(duì)成功?
易飛揚(yáng)O-BAND DWDM解決方案的優(yōu)勢
易飛揚(yáng)O-BAND DWDM:卓越性能,理想之選

藍(lán)牙耳機(jī)連接不上怎么辦
藍(lán)牙耳機(jī)配手機(jī)的方法
低功耗藍(lán)牙安全配對(duì)外設(shè)可能無法與中央器件連接

在例程 ”BLE_GATTS_SPP“中,手機(jī)第一次連接藍(lán)牙服務(wù)時(shí),怎么添加配對(duì)密碼?
配對(duì)過IOS13.5的手機(jī)無法連接刪除綁定信息的esp32藍(lán)牙,怎么解決?
安卓手機(jī)無法正常配對(duì)esp32藍(lán)牙怎么解決?
ESP32作為Server,手機(jī)作為Client,在藍(lán)牙配對(duì)連接時(shí),如何獲取手機(jī)的設(shè)備名稱?
芯科科技領(lǐng)先提供CBAP解決方案支持基于證書的身份驗(yàn)證和配對(duì)
藍(lán)牙模塊選型之藍(lán)牙功能

藍(lán)牙模塊配對(duì)機(jī)制基礎(chǔ)知識(shí)
左藍(lán)微電子發(fā)布高性能及小尺寸Band26、Band20雙工器

評(píng)論