【Android】藍牙開發——經典藍牙配對介紹(通過手機系統藍牙演示)

目錄

一、藍牙配對介紹

二、藍牙配對過程

三、藍牙配對方式展示


一、藍牙配對介紹

藍牙規範定義了兩種標準配對過程,LMP配對(也稱爲基於PIN碼)和SSP安全簡易配對。

LMP(Link Manager Protocol)配對,又名PIN碼配對,即pincode配對方式。

SSP(Secure simple pairing)安全簡易配對,一共有四種,其中Out of Band很少使用到,具體如下:

(1)Numeric Comparison (即confirm配對方式)

配對雙方都顯示一個6位的數字,由用戶來覈對數字是否一致,並輸入Yes/No,兩端Yes表示一致即可配對,可以防止中間攻擊。 使用場景:兩端設備可以彈出6位十進制數,並且有yes和no按鈕。

(2)Passkey Entry 

配對目標輸入一個在本地設備上顯示的6位數字,輸入正確即可配對,並可以防止中間人攻擊。 使用場景:一端設備可以顯示,另一端設備可以輸入。

(3)Just Works 

不會進行鑑權,不能防止中間人攻擊用於配對沒有顯示沒有輸入的設備,主動發起連接即可配對,用戶看不到配對過程,不可以防止中間人攻擊,例如連接藍牙耳機。 使用場景:用於即不能顯示6位隨機數,也不能輸入的設備。

(4)Out of Band 

兩設備的通過別的途徑交換配對信息,例如一些NFC藍牙音箱。

任何配對方法的結果都是一樣的:即創建共享的鏈路密鑰(Link Key)。

二、藍牙配對過程

配對設備的過程旨在在兩個藍牙設備之間創建共享密鑰:鏈路密鑰(Link Key)。然後,該鏈路密鑰(Link Key)用於彼此認證設備並加密交換的數據。數據實際上並沒有使用鏈路密鑰(Link Key)直接加密;臨時加密密鑰(Encryption Key)從鏈路密鑰(Link Key)和在加密通信流開始之前不久交換的隨機數導出。然後,該加密密鑰(Encryption Key)用於在兩個方向上加密數據。可以在連接處於活動狀態的任何時候更改它,一旦連接關閉,或者如果加密停止,將被丟棄。

一旦兩個設備擁有相同的鏈路密鑰(Link Key),該共享密鑰可以用於在稍後的時間將兩個設備重新認證。當重新連接時,設備通過交換從其派生的數字來快速驗證它們都具有相同的鏈路密鑰(Link Key)。如果鏈路密鑰(Link Key)匹配,則可以繼續創建會話密鑰(Session Key)。否則,配對過程(LMP配對或SSP)必須從一開始重新啓動,從而創建一個全新的鏈路密鑰(Link Key)。

三、藍牙配對方式展示

這裏主要展示pincode、confirm、passkey和justwork四種配對方式,看看藍牙設備在不同的配對方式下,在手機設置的系統藍牙中,配對藍牙設備,界面彈出的配對框是什麼樣子的。

(1)pincode 配對方式,配對碼一般爲0000或1234,只要手機端配對碼輸入正確,即可配對成功。

(2)confirm 配對方式,除了手機端確認配對碼之外,藍牙設備端也需要確認該配對碼,兩端同時確認正確之後才能配對成功。

(3)passkey 配對方式,手機端彈出配對碼顯示框,在藍牙設備端填入該配對碼確認,確認正確才能配對成功。

(4)justwork 配對方式,手機端、藍牙設備端不顯示任何配對相關信息,直接配對成功。

參考文章:

1、藍牙安全簡單配對的解釋 https://www.jianshu.com/p/683c287fee3e

2、藍牙配對過程分析(經典藍牙)https://blog.csdn.net/w1107845086/article/details/79636090

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章