新聞中心

BLE 4.2:更高的安全性

作者: 時(shí)間:2016-10-18 來(lái)源:電子產(chǎn)品世界 收藏

  對(duì)于任何一個(gè)無(wú)線設(shè)備,無(wú)論是健康監(jiān)測(cè)器還是付款系統(tǒng),保護(hù)用戶的隱私信息都是非常重要的。隱私機(jī)制可防止設(shè)備受到不可信的設(shè)備追蹤。安全的通信保證了數(shù)據(jù)安全,防止未經(jīng)授權(quán)的設(shè)備侵入數(shù)據(jù)導(dǎo)致觸發(fā)系統(tǒng)意外操作。 4.2的新功能加強(qiáng)了隱私和安全,解決了早期的缺陷并且提高了能效。

本文引用地址:http://butianyuan.cn/article/201610/311476.htm

  隱私

  為了保護(hù)設(shè)備的隱私,受信任的BLE設(shè)備使用共享的身份解析密鑰(IRK,Identity Resolving Key)生成和解析隨機(jī)的可解析私有地址(RPA,Resolvable Private Address)。只有一臺(tái)設(shè)備擁有另一臺(tái)廣播設(shè)備的IRK時(shí),才能跟蹤該廣播設(shè)備的活動(dòng)。

  藍(lán)牙設(shè)備在配對(duì)期間共享IRK,并將其存儲(chǔ)在設(shè)備內(nèi)置存儲(chǔ)器中的解析列表中。因此,早前綁定的設(shè)備依然可以解析對(duì)方設(shè)備的私有地址。

  藍(lán)牙4.1中,該解析列表保存于主機(jī)并且由主機(jī)完成地址解析,也就是說(shuō)每次收到RPA的廣告包時(shí),都需要主機(jī)進(jìn)行干預(yù)。在藍(lán)牙4.2中,該解析列表保存在控制器中,由控制器解析私有地址。如果設(shè)備主機(jī)使用單獨(dú)的CPU,則主機(jī)不需要被喚醒即可進(jìn)行藍(lán)牙配對(duì),從而降低了整體功耗。即使設(shè)備使用相同的CPU執(zhí)行控制器和主機(jī),因?yàn)榈刂凡恍枰ㄟ^(guò)不同的協(xié)議層,減少了解析地址所需的CPU循環(huán)次數(shù),也可降低功耗。

  RPA會(huì)時(shí)刻變化,因此第三方更難以跟蹤私有設(shè)備。在Privacy 1.1(藍(lán)牙4.1)中,建議的RPA超時(shí)時(shí)間為15分鐘。然而,由于Privacy1.1對(duì)連接和功耗有一定影響,因此它的使用非常有限。此外,由于Privacy 1.1不支持地址在鏈路層解析,因此在使用RPA時(shí)不能實(shí)現(xiàn)設(shè)備過(guò)濾和定向連接廣播(DCA)之類的功能。

  藍(lán)牙4.2中Privacy 1.2允許的RPA超時(shí)時(shí)間可以為1秒到11.5小時(shí)。因?yàn)锽LE 4.2支持在鏈路層解析地址,故可使用DCA加速設(shè)備之間的連接并降低功耗。

  被動(dòng)竊聽

  為了防止未經(jīng)授權(quán)訪問(wèn)通信,無(wú)線系統(tǒng)必須防止被動(dòng)竊聽和中間人(MITM)攻擊。被動(dòng)竊聽是指第三臺(tái)設(shè)備偷偷地竊聽兩個(gè)設(shè)備(見圖2)之間的私有通信。對(duì)于支付解決方案這樣的信息保密性(比如密碼)極其重要的應(yīng)用來(lái)說(shuō),防止被動(dòng)竊聽是非常重要的。

  

“圖1:在被動(dòng)竊聽攻擊中,第三臺(tái)設(shè)備偷偷竊聽兩個(gè)設(shè)備之間的通信。”

 

  圖1:在被動(dòng)竊聽攻擊中,第三臺(tái)設(shè)備偷偷竊聽兩個(gè)設(shè)備之間的通信。

  通過(guò)使用密鑰對(duì)數(shù)據(jù)進(jìn)行加密,系統(tǒng)可以防止被動(dòng)竊聽。4.2引入LE安全連接,采用符合聯(lián)邦信息處理標(biāo)準(zhǔn)(FIPS)的DCTH (Elliptic Curve Diffie-Hellman)算法生成密鑰。該密鑰用于生成其它密鑰,如長(zhǎng)期密鑰和DH密鑰,但其本身從不通過(guò)無(wú)線電共享。由于DH密鑰從不通過(guò)無(wú)線電交換,因此第三方設(shè)備很難猜出加密密鑰。在早期版本(藍(lán)牙4.1或更老版本)中,設(shè)備采用的是非常容易猜測(cè)到的臨時(shí)密鑰(TK)對(duì)連接進(jìn)行首次加密,此后的長(zhǎng)期密鑰和其他密鑰都會(huì)在這個(gè)不太安全的連接上進(jìn)行。

  中間人

  MITM是指當(dāng)兩個(gè)設(shè)備嘗試彼此通信時(shí),第三設(shè)備插入到兩者之間并偽裝成對(duì)方設(shè)備(參見圖1)。通過(guò)認(rèn)證可以確保系統(tǒng)所通信的設(shè)備是其實(shí)際預(yù)期的設(shè)備,而不是偽裝的非授權(quán)設(shè)備。

  

“圖2:在中間人攻擊中,第三臺(tái)設(shè)備插入兩臺(tái)設(shè)備的連接之中,并且使通訊的兩端認(rèn)為他們是在與對(duì)方直接對(duì)話。”

 

  圖2:在中間人攻擊中,第三臺(tái)設(shè)備插入兩臺(tái)設(shè)備的連接之中,并且使通訊的兩端認(rèn)為他們是在與對(duì)方直接對(duì)話。

  在藍(lán)牙通信中,兩臺(tái)設(shè)備使用關(guān)聯(lián)模型實(shí)現(xiàn)相互驗(yàn)證,然后安全地交換數(shù)據(jù)。藍(lán)牙配對(duì)是一個(gè)密鑰交換的過(guò)程;但是,交換密鑰之前,這兩個(gè)設(shè)備必須共享包括認(rèn)證要求在內(nèi)的配對(duì)參數(shù)。而為了實(shí)現(xiàn)認(rèn)證,兩臺(tái)設(shè)備必須使用某種關(guān)聯(lián)模型進(jìn)行相互驗(yàn)證。模型的選擇基于三個(gè)參數(shù):

  a. 是否需要MITM防護(hù)

  b. 該設(shè)備是否可以從用戶接收數(shù)據(jù)(例如按鈕或鍵盤輸入)或是否可以向用戶輸出數(shù)據(jù)(例如LCD顯示6位十進(jìn)制數(shù))。將用戶納入到配對(duì)處理是數(shù)據(jù)安全傳輸?shù)囊粋€(gè)重要因素

  c. 該設(shè)備是否能夠進(jìn)行頻帶外(OOB)通信。例如,如果部分安全密鑰可以在兩個(gè)設(shè)備之間通過(guò)近場(chǎng)通訊(NFC)溝通,那么竊聽者就無(wú)法理解最終的數(shù)據(jù)意義。

  BLE 4.2有四個(gè)關(guān)聯(lián)模型可供選擇:

  數(shù)值比較-兩臺(tái)待匹配設(shè)備均顯示六位數(shù)字,如果兩個(gè)數(shù)字相同,那么用戶在設(shè)備上選擇“是”即可通過(guò)驗(yàn)證。藍(lán)牙4.2 低功耗安全連接引入了這種關(guān)聯(lián)模型。在傳統(tǒng)配對(duì)(4.1或更老的版本)中,這些IO功能實(shí)現(xiàn)的是“即刻運(yùn)行”關(guān)聯(lián)模型(無(wú)驗(yàn)證)。

  密鑰輸入-用戶在兩臺(tái)設(shè)備中輸入相同的密鑰,或其中一臺(tái)設(shè)備顯示密鑰,用戶在另一臺(tái)設(shè)備輸入相同的密鑰。在傳統(tǒng)密鑰輸入(藍(lán)牙4.1或更老的版本)中,整個(gè)密鑰以簡(jiǎn)單的單次確認(rèn)即可進(jìn)入交換;而藍(lán)牙4.2中,一次交換一位密鑰,安全性有了很大提高。這種逐位公布保證了在協(xié)議的配對(duì)程序失敗之前,未猜測(cè)到的密鑰泄露不超過(guò)2位。

  非藍(lán)牙傳輸(OOB)-OOB關(guān)聯(lián)模型適用于雙方設(shè)備中至少有一個(gè)具有OOB能力、能夠加密信息進(jìn)行頻帶外交換的情況。此時(shí),MITM防護(hù)取決于用于共享信息的OOB協(xié)議對(duì)MITM的抵抗力。在傳統(tǒng)配對(duì)(BLE 4.1或更老的版本)中,兩個(gè)設(shè)備都需要具有OOB能力才能使用OOB關(guān)聯(lián)模型。

  即刻運(yùn)行-在不需要MITM保護(hù)或者設(shè)備具有表1中提到的IO能力的時(shí)候,采用這種關(guān)聯(lián)模型。

  表1顯示了不同IO情況下在LE安全連接配對(duì)時(shí)能夠使用的關(guān)聯(lián)模型。但是,如果不需要MITM保護(hù)或其中某臺(tái)BLE設(shè)備具有OOB功能時(shí), 可以忽略IO。

  

“表1:關(guān)聯(lián)模型的選擇取決于設(shè)備的I/O支持如何。”

 

  表1:關(guān)聯(lián)模型的選擇取決于設(shè)備的I/O支持如何。

  藍(lán)牙低功耗4.2提供三個(gè)支持MITM防護(hù)的關(guān)聯(lián)模型以及一個(gè)針對(duì)無(wú)需MITM防護(hù)應(yīng)用的模型。4.1以及更老的BLE版本不支持?jǐn)?shù)值關(guān)聯(lián)模型;如果OOB數(shù)據(jù)也不可用,則只能使用密鑰輸入關(guān)聯(lián)模型進(jìn)行驗(yàn)證配對(duì)。而密鑰關(guān)聯(lián)模型需要鍵盤實(shí)現(xiàn)密鑰輸入,這一點(diǎn)在許多系統(tǒng)中無(wú)法實(shí)現(xiàn),限制了MITM防護(hù)的應(yīng)用。但是,只要顯示能夠?qū)崿F(xiàn)是/否選項(xiàng)時(shí),可以使用數(shù)值比較模型,為更多的應(yīng)用提供MITM保護(hù)。

  配對(duì)

  配對(duì)是密鑰交換和認(rèn)證的過(guò)程。根據(jù)不同的藍(lán)牙低功耗版本,有兩種取決于的配對(duì)類型:LE安全連接(藍(lán)牙4.2新增)和LE傳統(tǒng)配對(duì)(藍(lán)牙4.0以后的版本支持)。與之前的版本相比,LE安全連接提供了顯著的改善。

  藍(lán)牙低功耗的配對(duì)分為三個(gè)階段。在第一階段,設(shè)備交換其配對(duì)參數(shù),其是能夠確定合適關(guān)聯(lián)模型的能力和安全要求。配對(duì)參數(shù)包括各種字段,如圖3。

  

“圖3:BLE

 

  圖3:BLE 4.2配對(duì)第一階段交換的配對(duì)參數(shù)

  LE安全連接采用符合聯(lián)邦信息處理標(biāo)準(zhǔn)(FIPS)的ECDH算法,能夠在沒有防護(hù)的信道中建立安全的共享密鑰。使用ECDH形式是P-256,這意味著設(shè)備生成的私有密鑰長(zhǎng)度為256位(或32字節(jié))。

  執(zhí)行ECDH算法之前,兩個(gè)設(shè)備必須確定一組特定的域參數(shù)。在LE安全連接中,因?yàn)閮膳_(tái)待連接設(shè)備都FIP的SP-256 ECDH機(jī)制,因此都知道一個(gè)默認(rèn)的參數(shù)。隨后,兩臺(tái)設(shè)備各生成一對(duì)密鑰,一個(gè)稱為私有密鑰,該設(shè)備不會(huì)通過(guò)無(wú)線電進(jìn)行共享或發(fā)送;另一個(gè)稱為公共密鑰,由設(shè)備密鑰和一個(gè)發(fā)生器函數(shù)(域參數(shù)的一部分)產(chǎn)生。

  隨后,兩臺(tái)設(shè)備都將自己的公共密鑰發(fā)送給對(duì)方設(shè)備。使用這個(gè)接收到的公共密鑰、自己的公共密鑰以及自己的私有密鑰,兩臺(tái)設(shè)備都能夠生成一個(gè)共享密鑰。注意,被動(dòng)竊聽者只能獲取設(shè)備之間交換的公共密鑰,但沒有雙方的私有密鑰,因此不能產(chǎn)生用于進(jìn)一步加密的共享密鑰。通過(guò)這種方式,ECDH能夠在不安全的通道上生成共享密鑰并對(duì)連接進(jìn)行加密。

  圖4顯示了在有第三設(shè)備竊聽的情況下,兩臺(tái)設(shè)備是如何建立共享密鑰的。

  

“圖4:當(dāng)有第三設(shè)備竊聽時(shí),兩臺(tái)設(shè)備正在建立共享密鑰”

 

  圖4:當(dāng)有第三設(shè)備竊聽時(shí),兩臺(tái)設(shè)備正在建立共享密鑰

  在第2階段中,ECDH密鑰生成后將公共密鑰分享給可信的設(shè)備并建立加密連接。為確保與設(shè)備進(jìn)行通信的設(shè)備是預(yù)期的設(shè)備,需要使用關(guān)聯(lián)模型進(jìn)行認(rèn)證。該設(shè)備根據(jù)ECDH算法的共享密鑰生成一個(gè)長(zhǎng)期密鑰(LTK)并繼續(xù)進(jìn)行第二階段的認(rèn)證檢查,包括檢查DH密鑰。

  在第3階段,使用長(zhǎng)期密鑰來(lái)對(duì)連接進(jìn)行加密。一旦連接被加密,密鑰就可以通過(guò)配對(duì)參數(shù)中的啟動(dòng)器密鑰分配/應(yīng)答器密鑰分配標(biāo)志進(jìn)行共享(例如,如果采用RPA,則需要IRK)。

  數(shù)據(jù)簽名

  數(shù)據(jù)簽名是另一個(gè)能夠幫助增加安全級(jí)別的BLE功能。在沒有使用加密時(shí),BLE可以使用連接簽名解析密鑰(CSRK,Connection Signature Resolving Key)對(duì)數(shù)據(jù)進(jìn)行認(rèn)證。簽名是由簽名算法和計(jì)數(shù)器產(chǎn)生的。計(jì)數(shù)器隨各數(shù)據(jù)PDU遞增,以避免任何重放攻擊。請(qǐng)注意,數(shù)據(jù)簽名并非用來(lái)防護(hù)被動(dòng)竊聽,而是為接收設(shè)備驗(yàn)證數(shù)據(jù)源的真實(shí)性。

  藍(lán)牙低功耗4.2提供了強(qiáng)大的安全機(jī)制以確保安全的無(wú)線連接系統(tǒng)。盡管BLE 4.1和4.2都提供了MITM防護(hù)功能,但只有藍(lán)牙4.2能夠?qū)崿F(xiàn)真正安全的BLE系統(tǒng)。當(dāng)使用藍(lán)牙4.1 的LE傳統(tǒng)配對(duì)時(shí),只有OOB關(guān)聯(lián)模型提供了被動(dòng)竊聽的防護(hù);而藍(lán)牙4.2還提供數(shù)值比較關(guān)聯(lián)模型和ECDH算法以確保隱私和數(shù)據(jù)安全。

  有關(guān)藍(lán)牙4.2隱私和安全功能的詳細(xì)信息,請(qǐng)參考應(yīng)用指南AN99209,有關(guān)藍(lán)牙4.2功能的詳細(xì)信息,請(qǐng)參考藍(lán)牙核心規(guī)格。



關(guān)鍵詞: BLE 藍(lán)牙低功耗

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉