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