Bluetooth技術學習筆記 ——GAP之安全(LE)

4-7-8呼吸法:先用舌頭抵住上顎,用瑜伽式呼吸,吸氣4秒,屏氣7秒,呼氣8秒。如此循環3到4次,有驚喜出現。
core_v5.0 vol 3. Part C
LTK:Long Term Key
STK:Short Term Key

目錄

  1. LE安全概述
  2. 安全模式
  3. 鑑權過程
  4. 隱私特性
1. LE安全概述

不同的設備、服務以及服務請求有着不同的安全模式和等級需求。LE安全模式分爲LE安全模式1LE安全模式2。安全模式1的安全等級包括:等級1、等級2,等級3和等級4。安全模式2的安全等級包括等級1和等級2。

LE安全過程爲:鑑權過程、授權過程、數據簽名連接過程。
 

2. 安全模式

(1)安全模式1
(2)安全模式2
(3)混合安全模式需求
(4)Secure Connections Only mode
 

3. 鑑權過程

鑑權過程發起時刻:在連接建立之後,發起或收到服務請求時。
鑑權過程通過使能加密實現。鑑權類型:authenticated pairing 、unauthenticated pairing。

  • authenticated pairing:配對過程中,鑑權設置爲“MITM protection”。
  • unauthenticated pairing:配對過程中,鑑權設置爲“No MITM protection”。

(1) 響應服務請求
當本地設備收到了服務請求,其行爲見下表:
在這裏插入圖片描述

(2) 發起服務請求
當本地設備發起服務請求,其行爲:

  • 本地設備的安全數據庫描述了發起服務請求的安全需求。若不需要加密,則不需要進行加密和配對。
  • 若需要加密,LTK無效,需發起配對過程。若配對失敗,則丟棄服務請求。
  • 若已配對,但安全祕鑰大小是無效的,則需要發起配對過程。
  • 若需要加密,LTK有效,則在發起服務請求前,使能安全。若遠程設備綁定不存在,或連接上了錯誤的設備,則需要在確認遠程設備後,進行重新綁定,執行服務發現和重配遠程設備。
  • 若需要authenticated pairing,且已存在unauthenticated pairing,鏈路已被加密,則需執行authenticated pairing的配對過程。
  • 若兩個設備處於綁定模式,任何重連都需要本地設備在發起服務請求前,發起加密請求。
  • 若本地設備在發起服務請求前未使能加密其安全需求依賴於錯誤碼,則在收到遠端設備的“Insufficient Authentication”時,不需要發起authenticated pairing
  • 在發起服務請求時,若滿足:①未使能加密;②收到了“Insufficient Authentication”或“Insufficient Encryption”;③ 本地設備存在一個LTK,則需要發起加密過程;若加密失敗或本地設備沒有LTK,則需要發起配對過程。
     
4. DATA SIGNING

數字簽名,略。
 

5.AUTHORIZATION PROCEDURE

略。
 

6.ENCRYPTION PROCEDURE

加密過程,略。
 

7. 隱私特性(Privacy feature)

隱私特性包括兩種模式:設備隱私模式和網絡隱私模式。

  • 設備隱私模式:若遠端設備的廣播數據攜帶Identity AddressPrivate Address,則處於該模式的設備可接收此廣播數據。若對端的GAP服務不支持Resolvable Private Address Only characteristic,則設備只能採用該模式。
  • 網絡隱私模式:若遠端設備廣播的identity Address相關IRK已被分發,則處於該模式的設備不接收該廣播消息。

設備支持的隱私類型:基於Host的隱私或基於Host和Controller的隱私。若設備支持基於Controller的隱私,需要滿足以下條件:

  • Host可能需要通過添加或刪除設備標識來維護一個可解析地址列表。設備標識包括:對端Identity Address本地/對端 IRK對
  • 若配對時遠端設備提供了一個全0的identity address,則Host需要選擇一個唯一的身份標識來替代對端提供的全0的identity address。即Host需要確保配置給Controller遠端設備標識的唯一性。

(1) 外圍設備的隱私特性

     若外圍設備處於連接模式,則使用可解析私有地址作爲廣播者的設備地址。
     若外圍設備處於非連接模式,則使用可解析私有地址不可解析私有地址作爲廣播者的設備地址。

     若已stored bond的設備收到了一個可解析私有地址,Host可執行resolvable private address resolution過程來解析該地址。若解析成功,Host可接收該連接;若解析失敗,Host斷開連接,或攜帶錯誤碼“Authentication failure”,或執行配對過程,或執行鑑權過程。

❤❤ 基於Controller的隱私特性:

  • 可使用非直連模式直連模式。只有當對端設備的Controller支持地址解析時,纔可使用直連模式。
  • 若私有地址被Controller解析或生成,則默認爲網絡隱私模式

❤❤ 基於Host的隱私特性:

  • 可使用非直連模式來進行連接。
  • 可使用**‘resolvable private address generation過程**或“‘non-resolvable private address generation過程”來生成解析地址。
  • Host設置定時器TGAP(pravited_addr_int)。當該定時器超時時,生成新的可解析私有地址或不可解析私有地址。若邊緣設備不發廣播,可不運行該定時器。

(2) 中心設備的隱私特性
     中心設備使用可解析私有地址作爲發起者的設備地址。
     主動掃描時,中心設備使用可解析私有地址不可解析私有地址

     若已stored bond的設備收到了一個可解析私有地址,Host可執行resolvable private address resolution過程來解析該地址。若解析成功,Host可接收該連接;若解析失敗,Host斷開連接,或攜帶錯誤碼“Authentication failure”,或執行配對過程,或執行鑑權過程。

❤❤ 基於Controller的隱私特性:

  • 若Controller使能了地址解析,則可使用任何連接過程進行連接。
  • 若私有地址被Controller解析或生成,則默認爲網絡隱私模式

❤❤ 基於Host的隱私特性:

  • 基於Host的隱私特性只能使用通用連接過程進行連接。
  • Host設置定時器TGAP(pravited_addr_int)。當該定時器超時時,生成新的可解析私有地址或不可解析私有地址。若中心設備未掃描或處於未連接狀態時,可不運行該定時器。

(3) 廣播者的隱私特性
     廣播者可使用可解析地址或不可解析地址。

     若Controller不支持或未使能地址解析功能,則Host設置定時器TGAP(pravited_addr_int)。當該定時器超時時,生成新的可解析私有地址或不可解析私有地址。若廣播者不發廣播,可不運行該定時器。

     廣播數據中不攜帶可識別設備的信息,如設備名字,標識。

(4) 觀察者的隱私特性
     主動掃描時,觀察者可使用可解析地址或不可解析地址。

     若Controller不支持或未使能地址解析功能,則Host設置定時器TGAP(pravited_addr_int)。當該定時器超時時,生成新的可解析私有地址或不可解析私有地址。若觀察者,可不運行該定時器。

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