藍牙4.2 安全連接

針對藍牙4.0傳統配對過程中存在的中間人攻擊和竊聽漏洞,藍牙4.2提出了安全連接的配對方式,藍牙4.0傳統配對方式可見https://blog.csdn.net/UFOfuck/article/details/102708853

1.藍牙4.0傳統配對方式存在的漏洞

1.1竊聽

傳統的配對中生成短期密鑰STK(用於鏈路數據加密)時使用了可預測的或易於確定的TK值,因此在配對過程中,沒有一種配對方法可提供針對被動竊聽者的保護。如果在沒有竊聽者的情況下分發配對信息,則所有配對方法都將提供機密性。

1.2中間人攻擊

藍牙主從設備身份認證過程中,身份確認值是明文傳輸的,所以會出現中間設備進行認證信息僞造進行中間人攻擊。

1.3鑑權DOS攻擊

藍牙配對過程中如果鑑權失敗,設備會成倍增加鑑權間隔時間,這段時間不允許任何設備與之配對。這就會出現鑑權DOS攻擊。
另外由於目前大多數無線設備都使用內置電池組,DoS攻擊會導致系統頻繁崩潰,並耗盡其電池電量。

2.安全連接解決漏洞的方法

藍牙4.2引入安全連接,採用符合聯邦信息處理標準(FIPS)的DCTH (Elliptic Curve Diffie-Hellman)算法生成密鑰。
藍牙4.2提供了強大的安全機制以確保安全的無線連接系統。儘管BLE 4.1和4.2都提供了MITM防護功能,但只有藍牙4.2能夠實現真正安全的BLE系統。當使用藍牙4.1 的LE傳統配對時,只有OOB關聯模型提供了被動竊聽的防護,而藍牙4.2還提供數值比較關聯模型和ECDH算法以確保隱私和數據安全。下表彙總了傳統配對和安全連接配對方法的保護級別。

     
2.1安全連接配對流程

 

如上圖,安全連接過程分爲三個階段,第1階段是主從雙方交換配對特徵並計算Diffie-Hellman 密鑰(用於生成STK),該密鑰生成方式下面會講。
第2階段主從設備認證和STK的生成,安全連接中設置4種不同的認證方式,分別是分別是Just Work、Numeric Comparison(數字比較)、Passkey Entry(密碼輸入)和Out of Band(OOB)。當主從認證成功後,配對會使用第1階段計算得到的Diffie-Hellman 密鑰生成短期密鑰STK,進行鏈路加密。
第3階段爲綁定階段,該階段與傳統配對相同,主要是計算長期密鑰LTK並保存,該過程可參考傳統配對方式第3階段。

2.2安全連接認證方式及對MITM的防禦
藍牙4.2中,安全連接方式包括4種認證方式,分別是Just Work、Numeric Comparison(數字比較)、Passkey Entry(密碼輸入)和Out of Band(OOB)。
MITM 攻擊使用第三個設備僞裝成參與通信的每個設備的對等設備,從而可以修改兩個設備所交換的數據。數字比較、密鑰輸入和 OOB 關聯模型能夠提供更強的防禦 MITM 攻擊功能。下面將簡單說明這些關聯模型的認證流程和他們是如何防禦 MITM 攻擊。數字比較的配對過程比密鑰輸入的配對過程快,而且該方法不要求單獨的通信鏈接(OOB 方法需要)。
2.2.1 Just Work和數字比較認證
Just work和數字比較的流程如下圖:
       
交換公鑰後,每個設備都會選擇一個僞隨機的128位隨機數(步驟2)。該值用於防止重放攻擊,並且必須在每次配對時重新生成。
此後,響應設備(從設備)然後計算自己的身份確認值(步驟3c),並將其傳輸到啓動設備(步驟4)。
然後,發起和響應設備交換它們各自的隨機數值(步驟5和6),發起設備確認響應設備身份確認值(步驟6a)。此時的失敗表示存在攻擊者或其他傳輸錯誤,並導致協議中止。無論是否生成新的公私鑰對,都可以重複該協議,但是如果重複該協議,則必鬚生成新的隨機數。
使用Just Works時,不會執行承諾檢查(步驟7a和7b),並且不會向用戶顯示6位數字的值。
當使用數值比較時,假定身份檢查成功,則兩個設備各自計算在其各自設備上顯示給用戶的6位確認值(步驟7a,7b和8)。要求用戶檢查這些6位數字值是否匹配。如果沒有匹配項,則該協議將中止,並且如前所述,如果要重複該協議,則必鬚生成新的隨機數。
數字比較關聯模型使用以下認證措施來防禦 MITM 攻擊:
1)    在接收發起設備的隨機數值(Na)前,響應設備必須提供使用響應設備隨機數值(Nb)和兩個 BLE 設備的公有密。
2)    鑰計算得到的約定值(Cb)。
3)    接收響應設備的隨機數值(Nb)前,發起設備必須分享它的隨機數值(Na)。
4)    接收到響應設備的隨機數值(Nb)後,發起設備需要檢查約定值(Cb)。
 
MITM 攻擊設備依次與響應設備和發起設備交換密鑰
上圖顯示的是 MITM 攻擊設備依次與響應設備和發起設備交換隨機值的情況。在獲得響應設備的隨機值(Nb)前,攻擊設備需要爲響應設備提供它的隨機值(Nc)。這樣,用戶檢查 BLE 設備所顯示的值時會發現不同的 6 數字值,因而認證失敗。
 
MITM 攻擊設備依次與發起設備和響應設備交換密鑰
上圖顯示的是 MITM 攻擊設備依次與發起設備和響應設備交換隨機值的情況。在獲得發起設備的隨機值(Na)前,攻擊設備需要爲發起設備提供它的約定值(Cc)。發起設備將檢查約定值,從而可以防止攻擊設備修改它的隨機值。用戶檢查 BLE 設備顯示的值時將會發現不同的 6 數字值,因而認證失敗。
2.2.2密碼輸入認證
密碼輸入的認證流程如下圖所示:
       
密鑰輸入關聯模型使用以下認證措施來防禦 MITM 攻擊:
1)    兩個 BLE 設備都接收到用戶輸入的公有 6 數字或 20 位密鑰(ra 和 rb)。
2)    對於密鑰中的每一位都需要重複執行第 3 到第 7 步(例如, i = 1, 2,….20)。
3)    兩個 BLE 設備選擇 128 位隨機值(Nai 和 Nbi)。
4)    發起設備提供使用兩個 BLE 設備的公有密鑰(PKa 和 PKb)計算得到的約定值(Cai)、 128 位隨機值(Nai)以及密鑰的第 i 位(rai)。
5)    發起設備提供使用兩個 BLE 設備的公有密鑰(PKa 和 PKb)計算得到的約定值(Cai)、 128 位隨機值(Nai)以及密鑰的第 i 位(rai)。
6)    發起設備爲響應設備提供它的 128 位隨機值(Nai)。
7)    響應設備使用發起設備的 128 位隨機值(Nai)來檢查收到的約定值(Cai)。如果該約定值正確,則發起設備將爲響應設備提供它的 128 位隨機值(Nai)。
8)    發起設備使用響應設備的 128 位隨機值(Nai)來檢查收到的約定值(Cai)。如果兩個值相互匹配,則發起設備繼續進行配對流程。
密鑰輸入關聯模型的中心是密鑰逐漸或逐位被公開。 MITM 攻擊設備與發起和響應設備接合時,它只能獲得密鑰的兩位,然後 BLE 設備會檢測到約定值不正確,並中止配對流程。與數字比較關聯模型相比,該模型的缺點是需要進行k次認證(密鑰的每一位需要進行一次),因此很耗時。
2.2.3 OOB認證
OOB認證流程如下圖所示:
       
4.3安全連接對竊聽的防禦
被動竊聽器是第三個設備,用於監控兩個 BLE 設備間的通信。被動竊聽器需要獲得通過 BLE 鏈接提供的密鑰,從而監控加密通信。
主從設備認證前會計算短期密鑰STK,該密鑰用於鏈路中數據的加密,傳統的匹配過程中通過TK計算得到STK值,TK一般爲簡單的或有規律的數字,容易泄漏,不能有效的防禦被動竊聽。
安全連接中使用橢圓曲線Diffie Hellman(Elliptic Curve Diffie Hellman,簡稱ECDH)密碼體制生成密鑰,達到了政府級美國聯邦信息處理標準(Federal Information Processing Standard,簡稱FIPS)。該算法可以不需要通過 BLE 鏈接交換密鑰而計算出一個公用的 Diffie-Hellman 密鑰,設備使用該密鑰計算生成用於鏈路數據加密的短期密鑰STK,這樣就有效的防禦了藍牙的被動竊聽。
橢圓曲線 Diffie-Hellman(ECDH)算法允許兩個 BLE 設備在進行基於 LE 安全連接的配對時建立一個共享密鑰。配對過程的第二個階段(認證階段 2)將使用共享密鑰(即 Diffie-Hellman 密鑰)來生成長期密鑰(LTK),用以對 BLE 鏈接進行加密。 Diffie-Hellman 密鑰提供了隨機的 256 位,這些位不會被無線交換,如下圖所示。
       

參考資料

藍牙核心規範Core_v4.2.pdf

藍牙核心規範Core_v4.0.pdf

AN99209_-_PSoC_4_BLE_and_PRoC_BLE_Bluetooth_LE_4.2_Features_Chinese.pdf

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