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