近年來(lái)出現(xiàn)了越來(lái)越多的低功耗藍(lán)牙應(yīng)用,即BLE(Bluetooth Low Energy),比如說(shuō)智能手環(huán)、防丟器等,對(duì)藍(lán)牙的安全要求也越來(lái)越高。這篇文章將深入淺出說(shuō)明BLE4.0~4.2中的一些安全攻擊反制措施,從而引出BLE中最主要的兩個(gè)安全機(jī)制“加密”和“認(rèn)證”。
1. 加密(Encryption)
兩個(gè)設(shè)備正常通信,Device1往Device2發(fā)送123,Device2往Device1發(fā)送456,這種通信方式非常危險(xiǎn),因?yàn)樵诳罩械臄?shù)據(jù)包都是明文。竊聽(tīng)設(shè)備Device3很容易就能獲取Device1和Device2的通信內(nèi)容。
圖1
針對(duì)以上攻擊,BLE4.0提供以下反制方法,Device1和Device2首先協(xié)商出一個(gè)密鑰key,Device1將加密過(guò)后的數(shù)據(jù)Text1發(fā)送給Device2,Device2得到Text1之后根據(jù)之前協(xié)商的key解出Device1真正發(fā)送的內(nèi)容123。第三方能夠偷聽(tīng)到Text1和Text2,但是沒(méi)有key就沒(méi)辦法解出Device1和Device2真正的通信內(nèi)容。
圖2
從上圖可以知道,鏈路是否安全取決于密鑰key會(huì)不會(huì)被Device3獲取到。對(duì)于BLE4.0來(lái)說(shuō),其實(shí)只要Device3竊聽(tīng)Device1和Device2協(xié)商密鑰過(guò)程,就能夠獲取密鑰key,所以這是BLE4.0的一個(gè)漏洞,只有保證協(xié)商密鑰過(guò)程中不被別人竊聽(tīng),才認(rèn)為鏈路是安全的。
針對(duì)BLE4.0的漏洞,BLE4.2增加了基于橢圓曲線的DH密鑰交換協(xié)議(ECDH),使用該交換協(xié)議目的就是在Device3竊聽(tīng)的情況下,仍然能夠協(xié)商出Device3不知道的密鑰key。在舉例子前,我們需要了解以下知識(shí):
對(duì)于橢圓曲線的離散對(duì)數(shù)數(shù)學(xué)難題可用如下簡(jiǎn)單的話描述:
k為正整數(shù),p是橢圓曲線上的點(diǎn)(稱為基點(diǎn))。
Q = k * p
已知k和p,很容易推導(dǎo)出Q;已知Q和p,很難推導(dǎo)出k。
對(duì)于該數(shù)學(xué)難題這里不展開(kāi)說(shuō)明,只說(shuō)明它們是如何和BLE關(guān)聯(lián)起來(lái)的,這里的‘*’不是普通乘法符號(hào),看成是一種特殊的運(yùn)算法則即可。
圖3
經(jīng)過(guò)ECDH之后,Device1和Device2就能得到共享密鑰key,基于該共享密鑰key可以衍生出LTK密鑰,用于后續(xù)對(duì)稱加密。至此,BLE的加密部分已到尾聲,下一節(jié)將會(huì)從另一個(gè)攻擊角度,引出BLE的另一個(gè)安全機(jī)制:認(rèn)證。
2. 認(rèn)證
Device1希望與Device2建立直接連接。但是,存在Device3屏蔽掉真實(shí)的信號(hào),同時(shí)偽裝成Device1和Device2,導(dǎo)致空間中實(shí)際存在兩個(gè)連接,而不是一個(gè)連接,這樣的攻擊叫做中間人攻擊。正常情況下, Device2和Device1建立連接之后會(huì)進(jìn)行ECDH,形成第三方無(wú)法解密的安全鏈路,這一點(diǎn)我們?cè)谏弦还?jié)提到過(guò);但是在中間人攻擊下,實(shí)際是Device3分別和Device1和Device2進(jìn)行ECDH,所以對(duì)于Device3來(lái)說(shuō),Device1和Device2發(fā)送的數(shù)據(jù)都是沒(méi)有秘密的。
圖4
為了防止中間人攻擊,BLE在連接之后加入了“認(rèn)證”機(jī)制,目的就是在設(shè)備Device3存在的情況下,Device1知道自己連接上的是Device2還是設(shè)備Device3。
正常認(rèn)證過(guò)程如下:
第一步:Device1和Device2交換公鑰;
第二步:Device1和Device2用藍(lán)牙以外的交流方式達(dá)成共識(shí),使用相同的配對(duì)碼;
第三步:Device1生成隨機(jī)數(shù)Nai,Device2生成隨機(jī)數(shù)Nbi;
第四步:Device1將相關(guān)參數(shù)代入函數(shù)f得出Cai,發(fā)給Device2;
第五步:Device2將相關(guān)參數(shù)代入函數(shù)f得出Cbi,發(fā)給Device1;
第六步:Device1將Nai發(fā)給Device2;
第七步:Device2用剛剛收到的Nai校驗(yàn)第四步收到的Cai;
第八步:Device2校驗(yàn)Cai成功,將Nbi發(fā)給Device1;
第九步:Device1用剛剛收到的Nbi校驗(yàn)第五步收到的Cbi。
圖5
下圖是中間人攻擊下的認(rèn)證過(guò)程,通過(guò)對(duì)比正常認(rèn)證過(guò)程可以發(fā)現(xiàn)問(wèn)題會(huì)出現(xiàn)在第五步。
為了讓Device2第七步能夠校驗(yàn)通過(guò),Device3在第五步一定要發(fā)送給Device2恰當(dāng)?shù)腃ai。
所以第五步似乎有兩種方案:
將第四步收到的Cai,直接發(fā)給Device2。
因?yàn)閜k1不等于pk2,所以第七步校驗(yàn)會(huì)出錯(cuò)。
私自捏造Cai發(fā)給Device2。
由于不知道Nai和passkey兩個(gè)參數(shù),所以無(wú)法確認(rèn)Cai的值是多少。
也就是說(shuō),無(wú)論Device3怎么樣做都沒(méi)辦法通過(guò)第七步校驗(yàn),導(dǎo)致認(rèn)證不通過(guò)。所以通過(guò)“認(rèn)證”機(jī)制可以給連接提供中間人攻擊保護(hù)。
圖6
為了方便理解上面用到的例子是經(jīng)過(guò)簡(jiǎn)化的,有些地方會(huì)與標(biāo)準(zhǔn)協(xié)議有出入,但是原理是一樣的。
ZLG52810P0-1-TC是基于nrf52810的無(wú)線透?jìng)髂K,串口AT指令控制,使用簡(jiǎn)單方便。除了支持BLE的加密和認(rèn)證安全機(jī)制外,還支持BLE4.2的LE Data Packet Length Extension與BLE5的2M PHY特性,大大提高了傳輸速率。
-
藍(lán)牙
+關(guān)注
關(guān)注
114文章
5878瀏覽量
171320 -
智能手環(huán)
+關(guān)注
關(guān)注
47文章
796瀏覽量
73120 -
藍(lán)牙BLE
+關(guān)注
關(guān)注
4文章
64瀏覽量
24136
原文標(biāo)題:安全加密(二):BLE安全攻擊反制措施
文章出處:【微信號(hào):Zlgmcu7890,微信公眾號(hào):周立功單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
汽車(chē)網(wǎng)絡(luò)安全攻擊實(shí)例解析(二)
![汽車(chē)網(wǎng)絡(luò)<b class='flag-5'>安全攻擊</b>實(shí)例解析(二)](https://file1.elecfans.com//web2/M00/8F/C0/wKgaomTR6-6AB4tOAADNpi4TZhc510.png)
震撼發(fā)布!知語(yǔ)云智能科技引領(lǐng)革新,全景反制無(wú)人機(jī)系統(tǒng)破繭而出!
第二集 知語(yǔ)云智能科技無(wú)人機(jī)反制技術(shù)與應(yīng)用--無(wú)人機(jī)的發(fā)展歷程
![](https://file1.elecfans.com/web2/M00/88/15/wKgaomRmoaOABe2QAAAjK3RAGBo546.png)
針對(duì)非接觸式安全微控制器的攻擊方式及防范措施
基于超低功耗處理器防止側(cè)信道攻擊
RFID應(yīng)用系統(tǒng)沒(méi)有的安全問(wèn)題怎么解決?
專家計(jì)劃保護(hù)電動(dòng)汽車(chē)充電站免受網(wǎng)絡(luò)攻擊
新唐對(duì)應(yīng)四大物聯(lián)網(wǎng)安全攻擊的保護(hù)措施
智能卡的邊頻攻擊及安全防范
如何采取安全措施防止物聯(lián)網(wǎng)攻擊影響您的數(shù)據(jù)
美國(guó)最大的實(shí)體書(shū)店Barnes?&?Noble遭到網(wǎng)絡(luò)安全攻擊
汽車(chē)網(wǎng)絡(luò)安全攻擊實(shí)例解析
![汽車(chē)網(wǎng)絡(luò)<b class='flag-5'>安全攻擊</b>實(shí)例解析](https://file.elecfans.com/web2/M00/9A/53/poYBAGQdGhqABvCEAAEUgpV2cl4542.png)
評(píng)論