一、實驗目的
1.瞭解配對與綁定過程的通訊概況
二、說明
1.連接:通訊的基礎,通訊數據爲明文;
2.配對:在連接的基礎上,通訊數據經過加密爲密文;
3.綁定:在每次重新連接後,不需要再次配對,通訊數據經過加密爲密文;
三、實驗平臺
1、藍牙協議棧:1.3.2
2、軟件平臺:IAR For 8051 8.10.3
3、抓包軟件:SmartRF Packet Sniffer 2.16.3
4、硬件平臺:Smart RF開發板(從機),BTOOL(主機),
四、實驗步驟
一、配對認證過程
1.連接未配對之前,通訊數據是明文
2..主機發送配對請求給從機,配對請求配對信息和簡單的密鑰信息
3.從機接收到配對請求後,根據主機的配對能力和自己的配對能力作比較,由於從機只有顯示能力,所以向主機發送密碼請求
4.主機接收到從機的密碼請求後,輸入密碼併發送給從機,從機設置的密碼是123456,而主機發送過來的是851415(下圖所示),所以密碼不正確,從機對接收到主機的密碼後,進行校驗,如果密碼不正確,直接觸發認證完成事件(認證狀態爲authstatus=0x04 密碼錯誤),從機請求斷開連接(個人設定);
空中抓包,密碼錯誤時的數據:
5.主機接收到從機的密碼請求後,輸入密碼併發送給從機,從機設置的密碼是123456,主機發送過來的是123456(下圖所示)
從機對接收到主機的密碼後,進行校驗,如果密碼正確,將發送當前認證信息(LTK等)給主機;
6.當主機接收到從機的認證信息(LTK)後,向從機發起加密請求,加密成功後,收到從機的回覆(success)
空中抓包,主機向從機發起加密請求
7.加密成功後,通訊數據位密文;
二、綁定後通訊過程
1.每次連接時,從機會向主機發送安全請求,如果主從機相互綁定過,主機不會發送配對請求,主機直接利用綁定時保存的LTK發送加密請求,從機也會利用綁定時保存的LTK來做加密回覆,三次握手成功後(加密成功,三次握手通訊由底層完成,用戶不可見),從機回覆主機加密狀態success
空中抓包,綁定後再次連接的加密通訊,開始加密請求後,都是密文了(表示加密成功)
2.如果從機在與主機綁定後,從機刪除綁定信息,再次連接時,主機利用綁定時保存的LTK發送加密請求,從機也會利用綁定時保存的LTK來做加密回覆,實際上從機已經刪除了綁定信息,所以加密不成功,從機回覆status=0x06代表綁定信息丟失
空中抓包,綁定後從機刪除綁定信息,再次連接時,開始加密請求後,加密失敗,errorcode=0x06
空中抓包,加密失敗後,不會斷開連接(連接跟加密沒有直接關係),通訊數據位明文
五、總結
1.配對認證:主從機一方提供密碼,一方輸入密碼,如果雙方密碼一致,那麼此密碼將作爲TK(臨時密碼);
2.加密鏈路:利用得到的TK(臨時密碼)等信息計算出STK(短期密碼)用來做加密認證;
3.綁定:加密認證通過後,利用STK等信息生成LTK(長期密碼),把LTK保存下來,用於下次連接時做加密認證,不需要再次配對就可以加密鏈路,這就是綁定了;
六、補充
1.此實驗用到BTOOL作爲主機,才能知道加密後的通訊數據,因爲加密後,空中抓包是密文,看不到數據,APP也看不到數據,所以只能用BTOOL;
2.上述空中抓包看不到密文是因爲版本是2.16.3的,現在官方最新版本2.18.1可以看到密文解析後的明文http://www.ti.com.cn/tool/cn/packet-sniffer#Technical
3.關於BTOOL的配對與綁定的操作,請參考文檔CC2541 Evaluation Module Kit 的4.6章節