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