對于任何一個無線設備,無論是健康監測器還是付款系統,保護用戶的隱私信息都是非常重要的。隱私機制可防止設備受到不可信的設備追蹤。安全的通信保證了數據安全,防止未經授權的設備侵入數據導致觸發系統意外操作。BLE 4.2的新功能加強了隱私和安全,解決了早期BLE的缺陷并且提高了能效。 隱私 為了保護BLE設備的隱私,受信任的BLE設備使用共享的身份解析密鑰(IRK,Identity Resolving Key)生成和解析隨機的可解析私有地址(RPA,Resolvable Private Address)。只有一臺設備擁有另一臺廣播設備的IRK時,才能跟蹤該廣播設備的活動。 藍牙設備在配對期間共享IRK,并將其存儲在設備內置存儲器中的解析列表中。因此,早前綁定的設備依然可以解析對方設備的私有地址。 藍牙4.1中,該解析列表保存于主機并且由主機完成地址解析,也就是說每次收到RPA的廣告包時,都需要主機進行干預。在藍牙4.2中,該解析列表保存在控制器中,由控制器解析私有地址。如果設備主機使用單獨的CPU,則主機不需要被喚醒即可進行藍牙配對,從而降低了整體功耗。即使設備使用相同的CPU執行控制器和主機,因為地址不需要通過不同的協議層,減少了解析地址所需的CPU循環次數,也可降低功耗。 RPA會時刻變化,因此第三方更難以跟蹤私有設備。在Privacy 1.1(藍牙4.1)中,建議的RPA超時時間為15分鐘。然而,由于Privacy1.1對連接和功耗有一定影響,因此它的使用非常有限。此外,由于Privacy 1.1不支持地址在鏈路層解析,因此在使用RPA時不能實現設備過濾和定向連接廣播(DCA)之類的功能。 藍牙4.2中Privacy 1.2允許的RPA超時時間可以為1秒到11.5小時。因為BLE 4.2支持在鏈路層解析地址,故可使用DCA加速設備之間的連接并降低功耗。 被動竊聽 為了防止未經授權訪問通信,無線系統必須防止被動竊聽和中間人(MITM)攻擊。被動竊聽是指第三臺設備偷偷地竊聽兩個設備(見圖2)之間的私有通信。對于支付解決方案這樣的信息保密性(比如密碼)極其重要的應用來說,防止被動竊聽是非常重要的。 圖1:在被動竊聽攻擊中,第三臺設備偷偷竊聽兩個設備之間的通信。 通過使用密鑰對數據進行加密,系統可以防止被動竊聽。藍牙低功耗4.2引入LE安全連接,采用符合聯邦信息處理標準(FIPS)的DCTH (Elliptic Curve Diffie-Hellman)算法生成密鑰。該密鑰用于生成其它密鑰,如長期密鑰和DH密鑰,但其本身從不通過無線電共享。由于DH密鑰從不通過無線電交換,因此第三方設備很難猜出加密密鑰。在藍牙低功耗早期版本(藍牙4.1或更老版本)中,設備采用的是非常容易猜測到的臨時密鑰(TK)對連接進行首次加密,此后的長期密鑰和其他密鑰都會在這個不太安全的連接上進行。 中間人 MITM是指當兩個設備嘗試彼此通信時,第三設備插入到兩者之間并偽裝成對方設備(參見圖1)。通過認證可以確保系統所通信的設備是其實際預期的設備,而不是偽裝的非授權設備。 圖2:在中間人攻擊中,第三臺設備插入兩臺設備的連接之中,并且使通訊的兩端認為他們是在與對方直接對話。 在藍牙通信中,兩臺設備使用關聯模型實現相互驗證,然后安全地交換數據。藍牙配對是一個密鑰交換的過程;但是,交換密鑰之前,這兩個設備必須共享包括認證要求在內的配對參數。而為了實現認證,兩臺設備必須使用某種關聯模型進行相互驗證。模型的選擇基于三個參數: a. 是否需要MITM防護 b. 該設備是否可以從用戶接收數據(例如按鈕或鍵盤輸入)或是否可以向用戶輸出數據(例如LCD顯示6位十進制數)。將用戶納入到配對處理是數據安全傳輸的一個重要因素 c. 該設備是否能夠進行頻帶外(OOB)通信。例如,如果部分安全密鑰可以在兩個設備之間通過近場通訊(NFC)溝通,那么竊聽者就無法理解最終的數據意義。 BLE 4.2有四個關聯模型可供選擇: 數值比較-兩臺待匹配設備均顯示六位數字,如果兩個數字相同,那么用戶在設備上選擇“是”即可通過驗證。藍牙4.2 低功耗安全連接引入了這種關聯模型。在傳統配對(藍牙低功耗4.1或更老的版本)中,這些IO功能實現的是“即刻運行”關聯模型(無驗證)。 密鑰輸入-用戶在兩臺設備中輸入相同的密鑰,或其中一臺設備顯示密鑰,用戶在另一臺設備輸入相同的密鑰。在傳統密鑰輸入(藍牙4.1或更老的版本)中,整個密鑰以簡單的單次確認即可進入交換;而藍牙4.2中,一次交換一位密鑰,安全性有了很大提高。這種逐位公布保證了在協議的配對程序失敗之前,未猜測到的密鑰泄露不超過2位。 非藍牙傳輸(OOB)-OOB關聯模型適用于雙方設備中至少有一個具有OOB能力、能夠加密信息進行頻帶外交換的情況。此時,MITM防護取決于用于共享信息的OOB協議對MITM的抵抗力。在傳統配對(BLE 4.1或更老的版本)中,兩個設備都需要具有OOB能力才能使用OOB關聯模型。 即刻運行-在不需要MITM保護或者設備具有表1中提到的IO能力的時候,采用這種關聯模型。 表1顯示了不同IO情況下在LE安全連接配對時能夠使用的關聯模型。但是,如果不需要MITM保護或其中某臺BLE設備具有OOB功能時, 可以忽略IO。 表1:關聯模型的選擇取決于設備的I/O支持如何。 藍牙低功耗4.2提供三個支持MITM防護的關聯模型以及一個針對無需MITM防護應用的模型。4.1以及更老的BLE版本不支持數值關聯模型;如果OOB數據也不可用,則只能使用密鑰輸入關聯模型進行驗證配對。而密鑰關聯模型需要鍵盤實現密鑰輸入,這一點在許多系統中無法實現,限制了MITM防護的應用。但是,只要顯示能夠實現是/否選項時,可以使用數值比較模型,為更多的應用提供MITM保護。 配對 配對是密鑰交換和認證的過程。根據不同的藍牙低功耗版本,有兩種取決于的配對類型:LE安全連接(藍牙4.2新增)和LE傳統配對(藍牙4.0以后的版本支持)。與之前的版本相比,LE安全連接提供了顯著的改善。 藍牙低功耗的配對分為三個階段。在第一階段,設備交換其配對參數,其是能夠確定合適關聯模型的能力和安全要求。配對參數包括各種字段,如圖3。 圖3:BLE 4.2配對第一階段交換的配對參數 LE安全連接采用符合聯邦信息處理標準(FIPS)的ECDH算法,能夠在沒有防護的信道中建立安全的共享密鑰。使用ECDH形式是P-256,這意味著設備生成的私有密鑰長度為256位(或32字節)。 執行ECDH算法之前,兩個設備必須確定一組特定的域參數。在LE安全連接中,因為兩臺待連接設備都FIP的SP-256 ECDH機制,因此都知道一個默認的參數。隨后,兩臺設備各生成一對密鑰,一個稱為私有密鑰,該設備不會通過無線電進行共享或發送;另一個稱為公共密鑰,由設備密鑰和一個發生器函數(域參數的一部分)產生。 隨后,兩臺設備都將自己的公共密鑰發送給對方設備。使用這個接收到的公共密鑰、自己的公共密鑰以及自己的私有密鑰,兩臺設備都能夠生成一個共享密鑰。注意,被動竊聽者只能獲取設備之間交換的公共密鑰,但沒有雙方的私有密鑰,因此不能產生用于進一步加密的共享密鑰。通過這種方式,ECDH能夠在不安全的通道上生成共享密鑰并對連接進行加密。 圖4顯示了在有第三設備竊聽的情況下,兩臺設備是如何建立共享密鑰的。 圖4:當有第三設備竊聽時,兩臺設備正在建立共享密鑰 在第2階段中,ECDH密鑰生成后將公共密鑰分享給可信的設備并建立加密連接。為確保與設備進行通信的設備是預期的設備,需要使用關聯模型進行認證。該設備根據ECDH算法的共享密鑰生成一個長期密鑰(LTK)并繼續進行第二階段的認證檢查,包括檢查DH密鑰。 在第3階段,使用長期密鑰來對連接進行加密。一旦連接被加密,密鑰就可以通過配對參數中的啟動器密鑰分配/應答器密鑰分配標志進行共享(例如,如果采用RPA,則需要IRK)。 數據簽名 數據簽名是另一個能夠幫助增加安全級別的BLE功能。在沒有使用加密時,BLE可以使用連接簽名解析密鑰(CSRK,Connection Signature Resolving Key)對數據進行認證。簽名是由簽名算法和計數器產生的。計數器隨各數據PDU遞增,以避免任何重放攻擊。請注意,數據簽名并非用來防護被動竊聽,而是為接收設備驗證數據源的真實性。 藍牙低功耗4.2提供了強大的安全機制以確保安全的無線連接系統。盡管BLE 4.1和4.2都提供了MITM防護功能,但只有藍牙4.2能夠實現真正安全的BLE系統。當使用藍牙4.1 的LE傳統配對時,只有OOB關聯模型提供了被動竊聽的防護;而藍牙4.2還提供數值比較關聯模型和ECDH算法以確保隱私和數據安全。 有關藍牙4.2隱私和安全功能的詳細信息,請參考應用指南AN99209,有關藍牙4.2功能的詳細信息,請參考藍牙核心規格。 |