深入理解低功耗藍牙的配對過程- Part 3 LE legacy Pairing Passkey Entry


在前一篇文章深入理解低功耗藍牙的配對過程- Part 2 Key Generation Methods中,討論了密鑰生成方法,如果配對發起設備和響應設備滿足一些IO功能的條件,它們將選擇LE legacy Bluetooth配對Passkey Entry方法。

在此文中,我將研究legacy pairing with Passkey Entry的配對以及它是如何工作的。

 

Figure 1: LE Legacy Pairing, Passkey Entry

臨時密鑰(TK)和隨機數生成

當您使用LE legacy pairing時,該配對雙方各自將生成一個臨時密鑰(TK)。

  • 如果設備的IO功能(無論是配對發起設備還是響應設備)具有顯示功能,那么它將顯示隨機生成的介於“000000”和“999999”之間的密鑰值。而另外的設備應該具有類似鍵盤的輸入功能,這樣用戶就可以通過鍵盤輸入這個TK顯示的值。例如手機和手環的配對方式,手環的屏幕可以顯示TK值,而手機可通過鍵盤輸入手環上顯示的TK值完成配對。
  • 如果配對發起設行和響應設備的IO功能都沒有顯示功能,但都是“Keyboard Only”,那么用戶需要確保發起設備和響應設備之間的臨時密鑰(TKs)是相同的。這是Passkey Entry的一個特殊情況。

下面是一個名為“Authentication”的設備,它希望與iOS設備配對,並在其輸出接口上顯示TK。然后iOS設備彈出一個對話框,要求用戶輸入TK值。

 

Picture 2: Passkey Entry on iOS Device

  • 當TK值准備好時,配對發起設備和響應設備生成一個128位的隨機數: Mrand是發起設備產生的(“主隨機”),Srand是由響應設備產生的(“從隨機”)。

Mconfirm and Sconfirm

Mconfirm和Sconfirm是128位的確認值,可以使用確認值生成函數c1來計算。這個功能的詳細信息可以在這里找到:藍牙核心規范V4.2, Vol.3, Part H, Section 2.2.3。

c1函數的輸入參數包括:

  • TK   Mrand for Mconfirm; or Srand for Sconfirm calculation
  • Pairing Request command 
  • Pairing Response command 
  • Initiating device address type
  • Initiating device address 
  • Responding device address type  
  • Responding device address 

驗證

  • 當Mconfirm和Sconfirm就緒時,配對發起設備將Mconfirm發送給響應設備。當響應設備接收Mconfirm時,它將Sconfirm發送給發起設備。當發起設備接收到Sconfirm時,它將Mrand發送到響應設備。
  • 響應設備通過重復計算發起設備接收到的Mrand值得出的計算結果來驗證Mconfirm值。
  • 如果響應設備計算的Mconfirm值與發起設備接收到的Mconfirm值不匹配,則配對過程將中止,響應設備將發送配對失敗命令,並給出失改原因代碼“Confirm value Failed”。
  • 如果響應設備計算的Mconfirm值與從發起設備接收到的Mconfirm值匹配,則響應設備將Srand傳輸給發起設備。
  • 發起設備通過重復使用接收到的Srand值執行響應設備的計算來驗證接收到的Sconfirm值
  • 如果配對發起設備計算的Sconfirm值與從響應設備接收到的Sconfirm值不匹配,則配對過程將中止,發起設備將發送配對失敗命令,並給出其中的失敗原因代碼為“Confirm value Failed”。
  • 如果發起設備計算的Sconfirm值與從響應設備接收到的Sconfirm值匹配,則發起設備計算短期密鑰(STK)並告訴控制器啟用加密。

短期密鑰產生

您可以查閱藍牙核心規范V4.2, Vol.3, Part H, Section 2.2.4,此章節中詳細介紹的密鑰生成函數s1來生成STK。

對於s1函數,輸入參數包括:

  • TK
  • Srand
  • Mrand

已配對的設備用STK建立一個加密鏈接。

以下是Ellisys抓取的空中數據包,從中可以清楚的看到STK產生流程 ,如下:

在接下來的第4部分中,我介紹了LE Secure Connection中的一種新的配對算法: Numeric Comparison.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM