問題描述
藍牙廣泛應用於智能燈泡、智能門鎖中,藍牙協議本身包含安全協議SMP,但是目前市面上產品仍然存在很多安全隱患,下面是個通過破解技術使用非授權軟件控制智能燈泡的案裏。
【胖猴小玩鬧】智能門鎖與 BLE 設備安全 Part 2:對一款 BLE 燈泡的分析
從攻擊過程可以看出,智能燈泡和手機app之間並沒有利用藍牙本身的安全機制,導致攻擊者非常容易的找到控制指令,進而進行了非法控制。
分析
我們看下BLE協議棧
瞭解BLE的同學應該對此圖比較熟悉,而我們本篇文章之關係SMP部分,SMP我們可能不熟悉,但是一定用過藍牙的配對綁定功能,而配對綁定功能正是通過SMP來保護藍牙安全的主要功能。
藍牙的配對綁定過程分爲3個階段,階段1生成臨時密鑰TK,TK是配對過程中用戶的輸入數字(我們一定很瞭解這個,在被連接設備的屏幕上顯示,由用戶輸入到發起連接欸對設備上,還有其他方式,暫時先不展開);TK用於第二階段的身份認證以及派生短期密鑰STK,STK用來保護第三階段LTK等密鑰分發的的安全,當然是通過STK派生的會話密鑰SK保護的;一旦兩端擁有了LTK,之後的連接就可以採用LTK保護。
經歷了上述過程,破解案裏中使用BLE 調試工具向燈泡發送控制信息就會在連接的過程中失敗,因爲沒有ltk密鑰。
那麼拋開破解案裏,我們來分析下藍牙安全連接的一些薄弱點。
-
LTK存儲泄漏
LTK存儲在設備端和手機端、或者設備端和網關端,通常存放在非易失存儲區,黑客可以通過一定技術將其dump出來,存在風險 -
配對綁定過程中密鑰泄漏
如果配對綁定過程被監聽,並且TK被看到,那麼所有密鑰都會泄漏,這種對於部署環境複雜的情境中,會存在風險
解決方案
對於風險1,可以將LTK放進TEE中存儲
對於風險2,可以將TK通過產線放進TEE中保護,並可以採用動態密鑰技術進行保護
另外,可以將SMP部分邏輯放進TEE中
展望
目前藍牙基本採用了對稱密鑰方式來保護網絡安全,但是也具備公鑰密鑰方案,因爲性能問題,使用的比較少。所以對於存在在TEE中的密鑰方案,仍然需要性能評估