藍牙規范中說,兩個藍牙設備配對時,先交換各自的能力(有無鍵盤、有無開關輸入、有無輸出、有無顯示器),然后根據雙方的能力選擇配對策略。一般用在嵌入式設備中的低功耗藍牙設備都不具備輸入和輸出能力,按照藍牙規范,和這類藍牙設備配對然后通信,藍牙鏈路是不加密的,實際體驗就是用手機或者電腦藍牙掃描到就能連上,并沒有一個顯式的配對過程。這也和規范的描述一致。但是使用兩臺手機,手機和電腦,電腦和電腦直接做藍牙配對連接測試時,發現它們都是同樣的模式:一個設備提示連一個設備顯示的配對碼,一致便提示用戶同意連接。個人覺得按照藍牙規范,它們之間的配對連接過程應該是:一個設備顯示一個6位的數字(臨時密鑰),在另外一個設備上輸入這個6位數字,從而完成配對連接過程。但是實際上并不是這種情況。個人認為實際上的情況并沒有安全保障,而是僅僅從附近眾多藍牙設備中選出了一個做區分。這是為什么?為什么,現在手機、電腦相互之間的藍牙連接不需要輸入臨時密鑰?
2 回答

呼喚遠方
TA貢獻1856條經驗 獲得超11個贊
經過這端時間的學習,首先問題有錯誤:和不具備IO輸出輸出能力的設備連接配對鏈路是不加密的。這個說法是錯誤的。這是屬于藍牙配對模式的一種叫Just Work。這種方式只要再配對過程中沒有受到攻擊,后續的通信就是安全的。
配對的本質是密鑰分發交換。Just Work模式配對過程中密鑰明文傳輸(也可能是根據明文傳輸的數據使用一定的算法計算得到,不管怎樣,這個階段無法抵御中間人攻擊或竊聽攻擊)。
問題中描述的手機、電腦之間的配對測試比較雙方顯示的數字的方式,在藍牙配對模型中叫Numeric comparison。這種方式是可以抵御中間人攻擊的。原理是配對過程采用的公鑰密碼體制。大概原理就是:
雙方交換公鑰
各自根據雙方公鑰和其他信息,計算得出一個6位數字
人為比較是否一致,一致選擇Yes后配對成功。
一開始認為顯示的那個6位數字是雙方交換的,可以被竊聽所以認為不安全,其實雙方并沒有傳輸這個數字。交換的是各自的公鑰。
中間人偽造的公鑰理論上很難使雙方顯示的這個6位數字一樣。如果不偽造的話,一方用另一方的公鑰加密的信息,中間人由于缺少私鑰不能解密。無論怎樣說,這種方式都是安全的。
添加回答
舉報
0/150
提交
取消