低功耗藍(lán)牙的安全性研究
摘要:基于提高低功耗藍(lán)牙安全的目的,通過對其安全機(jī)制的深入分析發(fā)現(xiàn)所采用的高級加密標(biāo)準(zhǔn)(AES)加密密鑰存在安全隱患,結(jié)合RSA非對稱加密算法和AES對稱加密的特點(diǎn),提出一種兩者相結(jié)合的混合加密安全機(jī)制,該機(jī)制在密鑰分發(fā)前使用RSA加密AES的密鑰,使用AES加密雙方的通信信息,使攻擊者無法獲得AES的密鑰而無法解密信息,從而提高低功耗藍(lán)牙的安全性。通過模擬實(shí)驗(yàn)表明該機(jī)制的加密速度和耗時均在可接受范圍內(nèi)。
關(guān)鍵詞:低功耗藍(lán)牙;安全;RSA;AES
隨著藍(lán)牙4.0規(guī)范的發(fā)布,低功耗藍(lán)牙技術(shù)進(jìn)入大眾的視野。近年來物聯(lián)網(wǎng)技術(shù)的火熱發(fā)展,低功耗藍(lán)牙大量應(yīng)用到了可穿戴設(shè)備、智能手機(jī)和平板電腦中。在使用低功耗藍(lán)牙的同時,也面臨著大量安全威脅,不法分子和惡意攻擊者對低功耗藍(lán)牙網(wǎng)絡(luò)進(jìn)行攻擊,竊取用戶的隱私數(shù)據(jù),所以其安全機(jī)制的研究就顯得尤為重要。
1 低功耗藍(lán)牙的安全機(jī)制
低功耗藍(lán)牙的安全機(jī)制不同于傳統(tǒng)藍(lán)牙的安全機(jī)制,傳統(tǒng)藍(lán)牙采用安全簡單配對協(xié)議(Secure Simple Pairing),具有很強(qiáng)的安全保護(hù)機(jī)制。低功耗藍(lán)牙采用了類似的安全協(xié)議但是提供的保護(hù)程度卻有所不同,為了實(shí)現(xiàn)低功耗的目標(biāo),低功耗藍(lán)牙在安全性方面做出了一定的妥協(xié)。
低功耗藍(lán)牙的安全機(jī)制主要有5個方面:連接模式,密鑰生成功能,加密功能,數(shù)字簽名功能,隱私保護(hù)功能。
1.1 連接模式
低功耗藍(lán)牙設(shè)定了3種連接模式,分別是立即工作(Just Works)、萬能鑰匙進(jìn)入(Passkey Entry)和帶外連接(Out of Band)。每個連接模式與傳統(tǒng)藍(lán)牙的安全簡單配對各有相似的地方,但也有以下例外情況:立即工作和萬能鑰匙進(jìn)入未提供任何被動竊聽保護(hù)。這是因?yàn)榘踩唵闻鋵Σ捎昧藱E圓曲線密鑰協(xié)商方案,而低功耗藍(lán)牙沒有采用。每個連接模式是以設(shè)備的I/O功能為基礎(chǔ)進(jìn)行使用,與安全簡單配對方式類似。
1.2 密鑰生成功能
低功耗藍(lán)牙的密鑰是由各設(shè)備的主機(jī)生成,而該設(shè)備與任何其它低功耗藍(lán)牙設(shè)備相互獨(dú)立。低功耗藍(lán)牙會根據(jù)數(shù)據(jù)保密性、設(shè)備認(rèn)證、未加密數(shù)據(jù)認(rèn)證、設(shè)備識別等情況使用多個密鑰。就低功耗藍(lán)牙而言,單個鏈接密鑰是通過來自各設(shè)備的資源和配對過程中使用的鏈接密鑰整合而生成的。
1.3 加密功能
低功耗藍(lán)牙采用AES密碼技術(shù)進(jìn)行加密。低功耗藍(lán)牙有一個密碼塊,本質(zhì)為一個單向函數(shù),用于產(chǎn)生密鑰、加密和提供完整性檢查。該密碼塊采用128位的密鑰和128位的明文塊產(chǎn)生16字節(jié)的密碼塊。
1.4 數(shù)字簽名功能
低功耗藍(lán)牙可支持兩臺具有受信任關(guān)系的設(shè)備發(fā)送沒有保密性的認(rèn)證數(shù)據(jù)。這需要簽署帶有連接簽名解析密鑰(CSRK)的數(shù)據(jù)才能實(shí)現(xiàn)。發(fā)送設(shè)備在數(shù)據(jù)上進(jìn)行簽名。接收
設(shè)備會驗(yàn)證簽名,如果簽名通過驗(yàn)證,則假設(shè)數(shù)據(jù)是來自可信源。該簽名由屬性協(xié)議簽名算法生成的消息認(rèn)證碼和計數(shù)器構(gòu)成。計數(shù)器是用來防御重放攻擊,并且會添加至所發(fā)送的已簽名的數(shù)據(jù)上。
1.5 隱私保護(hù)功能
隱私保護(hù)功能是低功耗藍(lán)牙支持一項(xiàng)新功能,可在一段時間內(nèi)通過頻繁更換地址降低跟蹤低功耗藍(lán)牙設(shè)備的能力。
為了使設(shè)備能夠使用隱私保護(hù)功來重新連接已知設(shè)備,保密功能被激活時所使用的設(shè)備地址(私人地址)必須可分解至其他設(shè)備的身份。私人地址通過在綁定過程更換設(shè)備的識別密鑰生成。隱私保護(hù)功能定義了允許被綁定設(shè)備進(jìn)行重新連接的重新連接地址,同時也將設(shè)備過濾為已知設(shè)備。兩臺設(shè)備在每次連接時交換重新連接地址。由于重新連接地址僅在連接之間更改,所以設(shè)備過濾可以用來縮短處理過量請求的時間。
2 低功耗藍(lán)牙的安全問題
低功耗藍(lán)牙安全機(jī)制的最大問題是密鑰的安全性。由于使用AES對稱加密算法,低功耗藍(lán)牙設(shè)備雙方使用相同的密鑰進(jìn)行加密和解密。如果密鑰交換被破解,攻擊者就能持有設(shè)備雙方的密鑰;而如果那些設(shè)備是依賴低功耗藍(lán)牙原有的安全性機(jī)制,攻擊者就可以使用破解的密鑰解密設(shè)備發(fā)送的加密信息,同時可以偽裝成其他低功耗藍(lán)牙設(shè)備發(fā)送加密信息,這樣攻擊者就能竊取到低功耗藍(lán)牙設(shè)備的所有信息。
3 基于RSA和AES的混合加密機(jī)制
針對低功耗藍(lán)牙的安全問題,本文提出了一種新型的安全機(jī)制,采用RSA非對稱加密方法和AES對稱加密方法相結(jié)合的混合加密機(jī)制?;旌霞用軝C(jī)制的核心思想就是使用RSA加密AES的密鑰。RSA為非對稱加密算法,即在加密和解密時使用不同的密鑰:在加密時使用公鑰(Public Key);在解密是使用私鑰(Private Key)。在密鑰分配時使用RSA加密AES的密鑰從而使密鑰只能被指定的設(shè)備獲得。
考慮到RSA加密需要較大的計算和運(yùn)算內(nèi)存,這種機(jī)制將進(jìn)行通信的雙方分成強(qiáng)設(shè)備和弱設(shè)備,強(qiáng)設(shè)備具有將強(qiáng)的計算能力和運(yùn)算內(nèi)存,將負(fù)責(zé)主要的RSA加密,弱設(shè)備對計算能力和運(yùn)算內(nèi)存的要求較低。這種強(qiáng)、弱設(shè)備的區(qū)分方法也比較符合現(xiàn)實(shí)情況,進(jìn)行連接的藍(lán)牙設(shè)備大多是非對稱的,例如電腦和藍(lán)牙鍵盤、智能手機(jī)和藍(lán)牙耳機(jī)等,電腦和智能手機(jī)屬于強(qiáng)設(shè)備,藍(lán)牙鍵盤和藍(lán)牙耳機(jī)屬于弱設(shè)備。
混合加密機(jī)制的過程如圖1所示,主要分為4個階段:
階段一:RSA密鑰分配
這一階段主要在強(qiáng)設(shè)備端進(jìn)行。強(qiáng)設(shè)備使用RSA加密方式生成Public Key和Private Key,然后向弱設(shè)備發(fā)起連接請求,同時將Public Key傳輸給弱設(shè)備。弱設(shè)備收到連接請求和Public Key后,將Public Key保存,同時向強(qiáng)設(shè)備發(fā)送連接響應(yīng)。
階段二:認(rèn)證過程
雙方根據(jù)連接設(shè)備信息(如有無顯示屏、鍵盤等)選擇配對算法,設(shè)置個人識別碼(PIN),確定臨時密鑰(TK);設(shè)備雙方生成一個隨機(jī)數(shù)Rand,根據(jù) TK值、Rand和配對信息計算出確認(rèn)值,雙方依次交換確認(rèn)值和隨機(jī)數(shù);雙方根據(jù)交換的隨機(jī)數(shù)進(jìn)行計算,檢測確認(rèn)值是否匹配,如果匹配通過則認(rèn)證成功;根據(jù)隨機(jī)數(shù)和TK計算出短期密鑰(STK)和長期密鑰(LTK),并由弱設(shè)備存儲LTK。
階段三:密鑰分配
強(qiáng)設(shè)備發(fā)起加密請求;弱設(shè)備收到請求后使用Public Key對LTK進(jìn)行RSA加密得到加密信息,然后將其傳輸給強(qiáng)設(shè)備,響應(yīng)加密請求;強(qiáng)設(shè)備收到加密信息后使用Private Key進(jìn)行RSA解密得到LTK;為了確保低功耗藍(lán)牙通信的安全性,不能直接使用LTK作為AES的密鑰(Secret Key),雙方在加密請求和加密相應(yīng)時,交換了設(shè)備的密鑰分散器,根據(jù)LTK和雙方的密鑰分散器計算得出本次通信的AES的Secret Key,這樣每次加密請求的通信密鑰都是重新生成的,不能在兩次通信中重復(fù)使用。
階段四:加密通信
雙方使用Secret Key進(jìn)行AES加密通信。每次通信前,使用Secret Key對通信內(nèi)容進(jìn)行AES加密得到加密信息,然后將信息發(fā)送至對方;收到信息后,使用Secret Key對加密信息進(jìn)行AES解密,得到原始消息內(nèi)容。
4 混合加密機(jī)制分析
4.1 對稱加密體制的特點(diǎn)
在對稱加密體制中,通信雙方使用相同的密鑰進(jìn)行加密和解密,這就意味著對稱加密體制的安全主要取決于密鑰的安全性。對稱加密的優(yōu)點(diǎn)是算法簡單,具有較高的效率,加密速度快,可以滿足的大量信息的加密需求;缺點(diǎn)是通信前需要進(jìn)行密鑰交換,密鑰容易泄露而不能確保安全性。
4.2 非對稱加密體制的特點(diǎn)
在非對稱加密體制中存在兩個密鑰:公開密鑰和私有密鑰,公開密鑰用于加密,私有密鑰用于解密。在通信前需要將己方的公開密鑰傳遞給對方,對方使用公開密鑰加密,加密內(nèi)容只有用私有密鑰解密,這意味著只有已方能夠解密。非對稱加密具有密鑰分配簡單、安全性高的特點(diǎn);缺點(diǎn)是計算量大,加密速度慢。
4.3 混合加密的特點(diǎn)
混合加密機(jī)制結(jié)合了對稱加密體制和非對稱加密體制的特點(diǎn),如表1所示,具有如下優(yōu)點(diǎn):結(jié)合了AES加密具有運(yùn)算要求低,加密速度快的優(yōu)勢;利用RSA加密具有加密安全性高的優(yōu)勢,提高了AES密鑰的安全性;每次加密連接只進(jìn)行一次RSA加密解密,避免了RSA運(yùn)算開銷。
與低功耗藍(lán)牙的安全機(jī)制相比,混合加密機(jī)制有3點(diǎn)不同:設(shè)備發(fā)起連接請求前需要計算出RSA加密的Public Key和Private Key,并將Public Key傳輸給設(shè)備另一方來存儲;設(shè)備收到加密請求時,將LTK進(jìn)行加密后再進(jìn)行傳輸;設(shè)備并非直接接收到LTK,接收到的是經(jīng)RSA加密后的信息,需要經(jīng)過相應(yīng)解密后才能得到LTK。
5 實(shí)驗(yàn)與結(jié)果分析
分別使用臺式電腦、筆記本電腦和Android智能手機(jī)為實(shí)驗(yàn)平臺,使用Java語言模擬實(shí)現(xiàn)混合加密機(jī)制,每組進(jìn)行10次實(shí)驗(yàn)得到數(shù)據(jù)如表2所示。
通過表格中的數(shù)據(jù)可以發(fā)現(xiàn):
1)混合加密機(jī)制的主要耗時在階段1,即RSA生成Public Key和Private Key階段。耗時最長為Android智能手機(jī)端,平均耗時937.0 ms;耗時最短為臺式電腦端,平均耗時193.0 ms。
2)階段3的耗時比較短。耗時最長為Android智能手機(jī)端,平均耗時43.0 ms;耗時最短為臺式電腦端,平均耗時6.0 ms。
3)混合加密的整體耗時比較短,在1秒鐘以內(nèi)。
4)混合加密的耗時與設(shè)備的計算能力和運(yùn)算內(nèi)存成反比,Android智能手機(jī)CPU主頻最低,運(yùn)算內(nèi)存最小,耗時最長;臺式電腦的CPU主頻最高,運(yùn)算內(nèi)存最大,耗時最端。
分析以上表格可以得結(jié)論:使用混合加密機(jī)制總體耗時較小,用戶使用時不會產(chǎn)生延時感覺。隨著用戶使用的設(shè)備硬件配置的計算能力和運(yùn)行內(nèi)存的提高,相信這一數(shù)據(jù)將會越來越小。
6 結(jié)論
本文在分析低功耗藍(lán)牙安全機(jī)制的基礎(chǔ)上,發(fā)現(xiàn)了其中的密鑰的安全隱患,提出一種新的RSA和AES混合加密安全機(jī)制,以此來提高低功耗藍(lán)牙的安全性。
RSA算法具有算法簡單,易于實(shí)現(xiàn)的特點(diǎn),因此成為應(yīng)用最為廣泛的非對稱加密算法。但是它也存在著計算量過大缺點(diǎn),考慮到低功耗的目標(biāo),未來可考慮分析提高RSA算法
的效率或使用其他計算量較小的非對稱加密算法,例如橢圓曲線加密算法等。