李穎川 姚偉 王仲輝
摘 要:低功耗藍(lán)牙技術(shù)是為了支持計(jì)算和存儲(chǔ)受限的設(shè)備而發(fā)展出來(lái)的一種新的工作模式,其安全特性與傳統(tǒng)藍(lán)牙技術(shù)不同。通過(guò)對(duì)低功耗藍(lán)牙的安全模式、配對(duì)方式、密鑰結(jié)構(gòu)等方面進(jìn)行研究,使用戶(hù)和組織能夠掌握其安全機(jī)制,保證用戶(hù)和組織通過(guò)選用恰當(dāng)?shù)陌踩J胶完P(guān)聯(lián)模型實(shí)現(xiàn)防竊聽(tīng)攻擊和防中間人攻擊,提出藍(lán)牙使用的安全建議,促進(jìn)藍(lán)牙設(shè)備和藍(lán)牙信息系統(tǒng)的安全應(yīng)用。
關(guān)鍵詞:低功耗藍(lán)牙;藍(lán)牙配對(duì);安全模式;密鑰生成;數(shù)據(jù)傳輸;鏈接
中圖分類(lèi)號(hào):TP39;G482文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):2095-1302(2020)09-00-03
0 引 言
低功耗藍(lán)牙無(wú)線技術(shù)之前被稱(chēng)為“Wibree”和“超低功耗藍(lán)牙”,主要應(yīng)用在電池供電設(shè)備上,如醫(yī)療設(shè)備和其他傳感器。低功耗藍(lán)牙與傳統(tǒng)藍(lán)牙相比,具有更低的功耗、更少的內(nèi)存需求、更高效的發(fā)現(xiàn)和連接過(guò)程、更短的數(shù)據(jù)包長(zhǎng)度以及更簡(jiǎn)單的協(xié)議和服務(wù)。
隨著藍(lán)牙低功耗技術(shù)的廣泛應(yīng)用,其安全性也受到了廣泛關(guān)注,藍(lán)牙規(guī)范[1-5]中明確了藍(lán)牙安全機(jī)制的具體描述,美國(guó)NIST發(fā)布了藍(lán)牙安全指導(dǎo)[6]對(duì)藍(lán)牙規(guī)范4.2以前的安全機(jī)制做了較為系統(tǒng)的研究,文獻(xiàn)[7-10]分別對(duì)具體應(yīng)用中的藍(lán)牙安全進(jìn)行了分析。本文針對(duì)低功耗藍(lán)牙技術(shù)的特點(diǎn),結(jié)合藍(lán)牙規(guī)范中安全機(jī)制的最新變化,給出藍(lán)牙使用的安全建議,提高藍(lán)牙應(yīng)用的安全性。
1 低功耗藍(lán)牙安全概述
低功耗藍(lán)牙技術(shù)主要提供五項(xiàng)基本安全服務(wù),分別是基于設(shè)備地址的身份驗(yàn)證、基于AES-CCM加密算法的保密、基于服務(wù)控制的可授權(quán)性、基于AES-CMAC-128的消息完整性、獨(dú)特的配對(duì)(綁定)和隱私地址特性。低功耗藍(lán)牙技術(shù)根據(jù)相關(guān)安全模式和關(guān)聯(lián)模型能夠?qū)崿F(xiàn)防竊聽(tīng)和防中間人攻擊目的。
目前,低功耗藍(lán)牙技術(shù)共有3個(gè)安全模式和4個(gè)安全級(jí)別,見(jiàn)表1所列。
安全模式1具有與加密相關(guān)的多個(gè)級(jí)別;安全模式2具有與數(shù)據(jù)簽名相關(guān)的多個(gè)安全級(jí)別;安全模式3具有與LE Audio廣播模式進(jìn)行加密的多個(gè)安全級(jí)別。
低功耗藍(lán)牙技術(shù)的配對(duì)過(guò)程分為如下三個(gè)階段:
(1)第一階段交換設(shè)備特征;
(2)第二階段利用設(shè)備特征,通過(guò)傳統(tǒng)配對(duì)方式生成STK(短期密鑰),或通過(guò)安全連接配對(duì)生成LTK(長(zhǎng)期密鑰);
(3)第三階段分發(fā)密鑰IRK(身份解析密鑰),CSRK(鏈接簽名解析密鑰)或LTK。
2.1 配對(duì)方式
傳統(tǒng)配對(duì)方式首先從兩個(gè)設(shè)備相同的臨時(shí)密鑰(TK)開(kāi)始,再利用交換的隨機(jī)值和TK生成一個(gè)短期密鑰(STK)。使用STK對(duì)鏈接進(jìn)行加密,安全分發(fā)LTK,IRK和CSRK,但不提供竊聽(tīng)保護(hù)。
安全連接配對(duì)利用ECDH(基于P-256橢圓曲線的Diffle-Helman算法)密碼技術(shù),直接產(chǎn)生長(zhǎng)期密鑰LTK。使用LTK加密鏈接,安全分發(fā)IRK和CSRK,同時(shí)能夠提供防竊聽(tīng)保護(hù)。
2.2 關(guān)聯(lián)模型
關(guān)聯(lián)模型根據(jù)配對(duì)雙方的輸入輸出能力和保密需求來(lái)確定,并與配對(duì)方式有直接關(guān)系。傳統(tǒng)配對(duì)方式只有帶外傳輸、密鑰輸入和立即工作模型,安全連接配對(duì)增加了數(shù)字比較模型。
2.2.1 帶外傳輸(Out of Band)
如果兩個(gè)設(shè)備都支持一個(gè)通用的OOB技術(shù),例如NFC,它們將使用OOB方法進(jìn)行配對(duì)。
在傳統(tǒng)配對(duì)過(guò)程中,TK通過(guò)OOB技術(shù)傳遞。由于TK是唯一的、隨機(jī)的、128位的數(shù)字,所以攻擊者猜測(cè)正確的密鑰來(lái)執(zhí)行MITM攻擊的幾率是百萬(wàn)分之一。
在安全連接配對(duì)中,通過(guò)OOB傳遞設(shè)備地址,攻擊者無(wú)法獲取任何信息,可抵御MITM攻擊。
2.2.2 數(shù)值比較(Numeric Comparison)
如果兩個(gè)設(shè)備都能夠顯示6位數(shù)字,并且都能夠讓用戶(hù)輸入“yes”或“no”,那么就可以使用數(shù)字比較方式。
在配對(duì)過(guò)程中,每個(gè)顯示器向用戶(hù)顯示一個(gè)6位數(shù)字,如果數(shù)字匹配,用戶(hù)回答“yes”;否則,用戶(hù)回答“no”,配對(duì)失敗。
顯示的數(shù)字不用作生成鏈接密鑰的輸入,能夠查看(或以其他方式捕獲)顯示值的竊聽(tīng)者不能使用它來(lái)確定產(chǎn)生的鏈接或加密密鑰。數(shù)字比較提供了MITM保護(hù),并向用戶(hù)確認(rèn)他們正在對(duì)兩個(gè)設(shè)備進(jìn)行配對(duì)。
2.2.3 口令輸入(Passkey Entry)
如果至少一個(gè)設(shè)備支持鍵盤(pán)輸入,而另一個(gè)設(shè)備支持顯示輸出(或鍵盤(pán)輸入),則使用口令輸入模型進(jìn)行配對(duì)。
在傳統(tǒng)配對(duì)模型中,TK由輸入的密鑰生成。規(guī)范要求密鑰大小為6位數(shù)字,因此,其最多可以提供20位的熵。
安全連接配對(duì)在交換公鑰后,將生成的Passkey(6位數(shù)字)輸入每個(gè)設(shè)備。這些設(shè)備輪流發(fā)送密鑰的每個(gè)比特位、nonce和兩個(gè)公鑰的散列值(重復(fù)20次),直到Passkey發(fā)送完成并達(dá)成一致。
兩種配對(duì)方式均使用Passkey生成密鑰LTK,所以攻擊者猜測(cè)正確的密鑰來(lái)執(zhí)行MITM攻擊的幾率是百萬(wàn)分之一。
2.2.4 立即工作(Just Works)
由于設(shè)備輸入/輸出的限制,故考慮使用立即工作配對(duì)方法。從安全性的角度來(lái)看,立即工作配對(duì)方法是所有配對(duì)選項(xiàng)中最弱的一個(gè)。在傳統(tǒng)配對(duì)模型中,TK被設(shè)置為0 (0x00)。因此,竊聽(tīng)者或MITM攻擊者無(wú)需猜測(cè)TK來(lái)生成STK。
安全連接配對(duì)交換公鑰后,將使用數(shù)字比較過(guò)程,但不會(huì)向用戶(hù)顯示6位值。
立即工作配對(duì)方法會(huì)生成未經(jīng)身份驗(yàn)證的LTK,不提供MITM保護(hù)。
3 低功耗藍(lán)牙密鑰的生成
低功耗藍(lán)牙密鑰主要有LTK,IRK,CSRK三種,其中LTK為主密鑰,它通過(guò)變換能夠生成會(huì)話(huà)密鑰SK,可保證傳輸數(shù)據(jù)的安全性;IRK是靜態(tài)的,且與設(shè)備直接相關(guān),用來(lái)將公共地址變?yōu)殡S機(jī)地址,防止地址被追蹤;CSRK可以通過(guò)一個(gè)DIV(分散符)和靜態(tài)隨機(jī)值ER(加密根)來(lái)生成密鑰,主要用于未加密鏈接的數(shù)據(jù)簽名,不支持加密鏈接的使用。綜上可知,LTK較為重要。