《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > ULP藍(lán)牙技術(shù)的安全設(shè)計(jì)
ULP藍(lán)牙技術(shù)的安全設(shè)計(jì)
來(lái)源:電子技術(shù)應(yīng)用2010年第10期
金 純, 聶增麗
重慶郵電大學(xué) 通信與信息工程學(xué)院, 重慶400065
摘要: 介紹了ULP藍(lán)牙技術(shù)及系統(tǒng)結(jié)構(gòu),重點(diǎn)描述了ULP藍(lán)牙的安全機(jī)制,,詳細(xì)分析了其地址生成,、認(rèn)證過(guò)程、匹配和密鑰交換等關(guān)鍵技術(shù),。最后比較了ULP藍(lán)牙和傳統(tǒng)藍(lán)牙在安全方面的不同。
中圖分類(lèi)號(hào): TN918.8+2
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2010)10-0143-04
Design of ULP bluetooth security model
JIN Chun, NIE Zeng Li
College of Communication and Information Engineering, Chongqing University of Posts and Telecommunications, Chongqing 400065, China
Abstract: This paper introduces the ULP bluetooth technology and system architecture, which focuses on describing ULP bluetooth security mechanisms and analyses the core technologies of its the address generation, certification process, pairing and keys exchange. In conclusion, compare between bluetooth and bluetooth ULP.
Key words : ULP bluetooth addresses; keys; authentication; pairing

    2007年6月,,Wibree技術(shù)被納入藍(lán)牙技術(shù)聯(lián)盟(SIG),并更名為超低功耗藍(lán)牙(ULP)[1],。它繼承了傳統(tǒng)藍(lán)牙優(yōu)化運(yùn)用,、耗能更少、成本更低的優(yōu)點(diǎn),適用于小型設(shè)備件簡(jiǎn)單的數(shù)據(jù)傳輸,。
 Wibree作為一項(xiàng)耗電量極低的藍(lán)牙技術(shù)成為藍(lán)牙規(guī)格的一部分,,是一種新的低功率無(wú)線(xiàn)技術(shù), 為業(yè)界開(kāi)拓了新的市場(chǎng)機(jī)會(huì)及創(chuàng)新空間,。由于采用無(wú)線(xiàn)方式進(jìn)行通信,,因此,ULP藍(lán)牙與傳統(tǒng)藍(lán)牙一樣面臨傳輸數(shù)據(jù)被截獲的危險(xiǎn),。所以如何保證ULP藍(lán)牙運(yùn)用的安全,,是ULP藍(lán)牙技術(shù)設(shè)計(jì)的一個(gè)核心問(wèn)題。
 本文基于Bluetooth SIG的技術(shù)草案[2],,討論了ULP藍(lán)牙技術(shù)的安全結(jié)構(gòu),,介紹了ULP藍(lán)牙的地址生成及認(rèn)證密鑰生成和匹配原理的相關(guān)過(guò)程,。
1 ULP藍(lán)牙的安全構(gòu)架
  安全性是ULP藍(lán)牙協(xié)議中必不可少的一部分,,它提供使用保護(hù)和信息保密[3]。 如圖1所示,,ULP藍(lán)牙系統(tǒng)有三個(gè)邏輯組成部分:ULP控制器,、ULP主機(jī)和HCI(主機(jī)控制器接口,介于ULP控制器與ULP主機(jī)之間,提供通信服務(wù)),。ULP控制器由物理層和鏈路層組成,;ULP主機(jī)中主要是ULP的L2CAP協(xié)議;高層主要是應(yīng)用層協(xié)議,,多種剖面在高層中應(yīng)用,。而安全模塊位于ULP控制器中的鏈路層和ULP主機(jī)的L2CAP協(xié)議中,由主機(jī)控制器提供控制和數(shù)據(jù)。


  ULP藍(lán)牙工作在2.4 GHz的ISM(Industrial Scientific Medical)頻段,,其工作的中心頻率為2 402+K×2 MHz(K=0~39),,即工作頻帶寬度為2 MHz~3.5 MHz。劃分為40個(gè)物理信道,,其中包括3個(gè)廣播信道和37個(gè)數(shù)據(jù)信道,。
 結(jié)構(gòu)中的鏈路層有兩種工作狀態(tài):空閑狀態(tài)和連接狀態(tài),其鏈路層只能工作在一種工作狀態(tài)下,。同時(shí),,ULP藍(lán)牙設(shè)備還有五種工作模式:廣播模式、掃描模式,、申請(qǐng)模式,、主設(shè)備及從設(shè)備。
 ULP L2CAP(Logic Link Control and Adaptation Protocol)處于鏈路控制協(xié)議之上,,屬于數(shù)據(jù)鏈路層,。L2CAP對(duì)上層協(xié)議可以提供面向連接和無(wú)連接數(shù)據(jù)服務(wù),。L2CAP允許高層協(xié)議、應(yīng)用發(fā)送和接收最長(zhǎng)64 KB數(shù)據(jù)包,。
 鏈路層中的連接加密過(guò)程由ULP主機(jī)負(fù)責(zé),,其中包含一個(gè)由鏈路層獨(dú)立負(fù)責(zé)的加密子進(jìn)程。加密過(guò)程由HCI_Setup_Encryption命令初始化,。使用這個(gè)命令后,,主設(shè)備的ULP主機(jī)就表明了鏈路層連接了新的加密模式。只要有這樣一個(gè)來(lái)自于ULP主機(jī)的命令,,一個(gè)SEC_EMPTY_REQ數(shù)據(jù)包就會(huì)在鏈路層的連接上被傳送,。
   在HCI_Setup_Encryption命令之后, HCI_Command_Completed命令所表示的過(guò)程完成之前,,不允許有來(lái)自于ULP主機(jī)的任何數(shù)據(jù)包,。
2 ULP藍(lán)牙認(rèn)證及密鑰生成過(guò)程
2.1 ULP藍(lán)牙地址

 ULP藍(lán)牙使用兩種類(lèi)型的地址[4]:設(shè)備地址和存取地址,設(shè)備地址細(xì)分為公有和私有設(shè)備地址,。每個(gè)ULP設(shè)備應(yīng)該分配一個(gè)固定48 bit的ULP藍(lán)牙公共設(shè)備地址,,而私有設(shè)備設(shè)置的地址是可選的。ULP設(shè)備只有在證明設(shè)備可靠性后,,才顯示其私有地址,;每個(gè)鏈路層的連接有一個(gè)偽隨機(jī)32 bit的存取地址,由連接中的申請(qǐng)者產(chǎn)生,每個(gè)鏈路層連接不同的存取地址,。ULP藍(lán)牙系統(tǒng)中,,只能有一個(gè)數(shù)據(jù)包格式能在廣播通道數(shù)據(jù)包和數(shù)據(jù)通道數(shù)據(jù)包中同時(shí)使用。如圖2所示,每個(gè)數(shù)據(jù)包含4個(gè)實(shí)體:標(biāo)頭,、同步字,、PDU和CRC。廣播數(shù)據(jù)包中的同步字是固定的,,數(shù)據(jù)通道中的數(shù)據(jù)包同步字是鏈路層連接的存取地址,。


2.2 廣播工作模式中認(rèn)證
 ULP系統(tǒng)中,每一臺(tái)設(shè)備會(huì)產(chǎn)生并保持兩個(gè)隨機(jī)生成的密鑰:鑒權(quán)(identity root)和加密(encryption root),。鑒權(quán)用于連接中生成私有地址和區(qū)分標(biāo)識(shí)符密鑰連接中的標(biāo)識(shí)符,;加密用于確立密鑰標(biāo)識(shí)符的安全。在任何加密連接中,,廣播創(chuàng)建密鑰作為會(huì)話(huà)密鑰的基礎(chǔ),。集合密鑰是在某些配對(duì)選擇中創(chuàng)建,這些密鑰只是用作保護(hù)(未來(lái))廣播中密鑰的傳遞,。
  加密模式中,,通過(guò)廣播方式把創(chuàng)建的密鑰分派給需要連接的所有設(shè)備或?qū)嶓w,鑒權(quán)可用來(lái)建立私有地址,。因?yàn)殍b權(quán)每次只支持一個(gè)身份,,所以許多申請(qǐng)者將獲得同樣的鑒權(quán),。廣播向設(shè)備提供標(biāo)識(shí)符的加密(伴隨16 bit標(biāo)識(shí)符),在加密模式中該設(shè)備支持連接的設(shè)備,。規(guī)范的基本概念有唯一的標(biāo)識(shí)符密鑰,被稱(chēng)為“長(zhǎng)期密鑰”(long term key),這個(gè)密鑰分配給每個(gè)申請(qǐng)者,。此外,加密規(guī)則僅僅是推薦使用并且在廣播之外,。長(zhǎng)期密鑰是不可見(jiàn)的,,原則上能使用任何映射在16 bit~128 bit之間的密鑰。加密標(biāo)識(shí)符密鑰有以下幾種: IRK(Identity Resolving Key),、PIR(Pairing Identity Root),、DHK(Diversifier Hiding Key)、 PIRK(Pairing Identity Resolving Key),、PDHK (Pairing Diversifier Hiding Key),。
    在廣播模式條件下,廣播設(shè)備產(chǎn)生一個(gè)初始隨機(jī)向量(IRV),,該向量由10 B的新隨機(jī)數(shù)組成,,也是鏈路層(LL)傳輸給申請(qǐng)者的第一個(gè)可能的數(shù)據(jù)包。廣播設(shè)備初始化時(shí),,到達(dá)連接請(qǐng)求,。
  連接請(qǐng)求包括SEC字段(表明是否是加密請(qǐng)求)和PI字段(表明申請(qǐng)者連接一個(gè)匹配認(rèn)證)。SEC=1,,表示有2 B的加密區(qū)分標(biāo)識(shí)符(EDIV)和申請(qǐng)者6 B的隨機(jī)地址,。
  如圖3所示,在SEC=1的條件下,ULP藍(lán)牙廣播模式下的認(rèn)證步驟如下:


    (1)解密區(qū)分標(biāo)識(shí)符隱藏密鑰,。發(fā)送HCI_Set_key(0x00,DKH)命令到鏈路層,,返回HCI_Command_Complete(),并再發(fā)送加密請(qǐng)求命令HCI_encrypt(addmaster),PAL返回請(qǐng)求完成命令HCI_Command_Complete(),。
 由EDHK計(jì)算DIV:
    DIV=EDHK(addmaster[0…15]?茌DIVhidden)
 此具體過(guò)程是:
 由Y=EDHK
 (IRA(初始化隨機(jī)地址),
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00)
 DIV= {Y0, Y1} XOR {EDIV0, EDIV1}得出,。或者在PI=1的條件下,,即匹配連接中有:
 Y=EPDHK
(IRA,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00)
 得出DIV={Y0,Y1}XOR{EDIV0, EDIV1}
    (2)創(chuàng)建長(zhǎng)期密鑰,。發(fā)送設(shè)置加密命令到鏈路層HCI_Set_key(0x00,ER),返回完成命令HCI_Command_Complete(),再發(fā)送請(qǐng)求加密長(zhǎng)期密鑰命令HCI_encrypt(DIV),返回完成創(chuàng)建長(zhǎng)期密鑰命令HCI_Command_Complete(LTK),。
 按以下公式重新創(chuàng)建長(zhǎng)期密鑰LTK:
 LTK=EER(DIV/0)
   LTK=EER
(DIV,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00)
    (3) 創(chuàng)建會(huì)話(huà)密鑰命令,。HCI_Set_key(0x00,LTK),返回完成命令HCI_Command_Complete(),,再發(fā)送請(qǐng)求加密長(zhǎng)期密鑰命令HCI_Encrypt(addmaster/IRV),,返回完成創(chuàng)建長(zhǎng)期密鑰命令HCI_Command_Complete(SK)。
   SK=ELTK(addmaster/IRV)
 (4) 鏈路層設(shè)置會(huì)話(huà)密鑰和初始值,。初始值為
    IV=addmaster/addslave[0…23]
分別發(fā)送命令HCI_Set_key(0x01,SK)和HCI_Set_IV(addr|addr[0…23])到鏈路層進(jìn)行設(shè)置,,返回完成設(shè)置命令HCI_Command_Complete(),。生成會(huì)話(huà)密鑰SK和IV,并在鏈路層設(shè)置(廣播地址AA={A0,A1,…,A5}),。
2.3申請(qǐng)模式中加密會(huì)話(huà)設(shè)置
    申請(qǐng)者瀏覽廣播,,找到相匹配的廣播地址AA={A0,A1,,…,,A5},初始使用6 B完全隨機(jī)地址(IRA),。
  (1)創(chuàng)建隨機(jī)地址:發(fā)送HCI_Rand()命令到鏈路層(LL),,返回HCI_Command_Complete(rand), addmaster=rand[0…47]。
  (2)加密區(qū)分標(biāo)識(shí)符(diverfier)密鑰,。發(fā)送設(shè)置加密命令到鏈路層HCI_Set_key(0x00,DHR),,返回請(qǐng)求完成命令HCI_Command_Complete(),再發(fā)送加密請(qǐng)求命令HCI_Encrypt(addmaster),,返回請(qǐng)求完成命令HCI_Command_Complete(),。
    DIVhidden=EDHK(addmaster[0…15]?茌DIV)
   由DIV計(jì)算出EDIV。
   由Y=EDHK
(IRA,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00)
得出EDIV={Y0,Y1}XOR{DIV0,DIV1}
 或者在PI=1的條件下,,即匹配中由
 Y=EPDHK
(IRA,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00)
 得出EDIV={Y0, Y1}XOR{DIV0, DIV1}
 最后申請(qǐng)者請(qǐng)求一個(gè)連接。
?、偃绻?qǐng)求加密連接,,則SEC 字段一直等于1;如果在申請(qǐng)者和廣播設(shè)備間,擴(kuò)展匹配繼續(xù)進(jìn)行,,即PI字段設(shè)置為1,。
 ②2 B的加密區(qū)分標(biāo)識(shí)符密鑰(EDIV),6 B的申請(qǐng)者隨機(jī)地址(IRA),。
?、郛?dāng)連接已經(jīng)建立時(shí),申請(qǐng)者從廣播中得到一個(gè)10 B的隨機(jī)向量(IRV)作為層協(xié)議數(shù)據(jù)單元PDU(類(lèi)型0xFD),,然后從長(zhǎng)期密鑰中,,申請(qǐng)者創(chuàng)建會(huì)話(huà)密鑰SK和設(shè)置初始值(IV)。
    創(chuàng)建會(huì)話(huà)密鑰SK:發(fā)送設(shè)置長(zhǎng)期密鑰命令HCI_Set_
key(0x00,LTK)到鏈路層, 返回完成命令HCI_Command_
Complete(),,再發(fā)送加密請(qǐng)求命令HCI_encrypt(addmaster/IRV),返回完成創(chuàng)建會(huì)話(huà)密鑰命令HCI_Command_Complete(SK),,SK=ELTK(addmaster/IRV),IV=addmaster/addslave[0…23],即可表示為:
 SK=ELTK(IRA,IRV),IV={IRA,A0,A1,A2}。
?、躍K和IV被分配給鏈路層(LL)作為最后的步驟,。LL操作中,申請(qǐng)者將初始化“連接模式變化”,。
 鏈路層設(shè)置會(huì)話(huà)密鑰和初始值:分別發(fā)送命令HCI_Set_key(0x01,SK)和HCI_Set_IV(addr|addr[0…23])到鏈路層設(shè)置,,返回完成設(shè)置命令HCI_Command_Complete(),。
2.4密鑰更新
    安全連接建立之后,不支持密鑰更新或者重建安全參數(shù),。唯一的例外就是匹配程序,,在匹配的第一階段后,匹配程序中的會(huì)話(huà)加密密鑰和狀態(tài)發(fā)生改變,。
3 匹配和密鑰交換
 本文的匹配算法有兩個(gè)擴(kuò)展模式,,在前n個(gè)連接中密鑰改變(如果攻擊者錯(cuò)過(guò)一個(gè)更新,安全性提高),。第一個(gè)擴(kuò)展模式尤其適合于移動(dòng)設(shè)備;第二擴(kuò)展模式是假定兩個(gè)設(shè)備有相同的地址,,通過(guò)干擾硬件攻擊者,提高密鑰的安全性,,該模式適用于家庭等固定環(huán)境,。
   ULP藍(lán)牙的匹配分三個(gè)階段進(jìn)行,其流程如圖4所示。


    第一階段,,成功匹配功能交換后,,開(kāi)始執(zhí)行第一階段操作。這一階段不受加密保護(hù),,連接中直接進(jìn)入擴(kuò)展的狀態(tài)(伴隨著PI 字段設(shè)置為連接請(qǐng)求和SEC 字段關(guān)閉),。
    第二階段,在加密通道中執(zhí)行匹配,,受臨時(shí)密鑰或者第一階段的結(jié)果或是早期擴(kuò)展階段的保護(hù),。該階段的匹配可以直接輸入(PI字段設(shè)置為連接請(qǐng)求),在此保護(hù)通道中,下面之一被執(zhí)行:(1) 傳送長(zhǎng)期密鑰和認(rèn)證(從未來(lái)的廣播到未來(lái)的申請(qǐng)者),。(2) 傳送擴(kuò)展(臨時(shí))密鑰和認(rèn)證(從未來(lái)的廣播到未來(lái)的申請(qǐng)者),,在擴(kuò)展模式中,進(jìn)行有限的密鑰交換,。
 第三階段,,第三階段與匹配無(wú)關(guān),是正常的會(huì)話(huà),,并且使用了在第二階段同樣的密鑰保護(hù),。注:廣泛的與這個(gè)密鑰通信可能會(huì)導(dǎo)致(取決于匹配機(jī)制)攻擊。攻擊長(zhǎng)期密鑰可能導(dǎo)致在第二階段中提供的長(zhǎng)期密鑰長(zhǎng)度少于128 bit,。第三階段提供方便和實(shí)用性的擴(kuò)展模式,,以及可能簡(jiǎn)單的設(shè)備。
 總體層次規(guī)范定義了第三階段的用處,,如果沒(méi)有定義任何第三階段的用途,,匹配的設(shè)備將終止匹配會(huì)話(huà),用長(zhǎng)期密鑰建立新會(huì)話(huà)。
    ULP藍(lán)牙系統(tǒng)本身提供的安全系統(tǒng)具有相當(dāng)?shù)陌踩匦訹5],。在ULP藍(lán)牙用于商業(yè)或軍事等方面時(shí),,現(xiàn)有的點(diǎn)對(duì)點(diǎn)的密鑰分配和認(rèn)證機(jī)制將無(wú)法滿(mǎn)足安全要求,因而采用AES加密算法是必需的,。與傳統(tǒng)藍(lán)牙相比,,ULP藍(lán)牙在安全上有以下特點(diǎn):
 (1) 現(xiàn)有的藍(lán)牙認(rèn)證[6],主要是通過(guò)質(zhì)詢(xún)—響應(yīng)的方法進(jìn)行認(rèn)證,。ULP藍(lán)牙的認(rèn)證基本相同,,但是在ULP藍(lán)牙的認(rèn)證機(jī)制中,通過(guò)設(shè)置SEC和PI的值進(jìn)行不同的認(rèn)證。安全措施更明確,、簡(jiǎn)單,,易于實(shí)現(xiàn)。
 (2) 藍(lán)牙加密使用E0加密算法[7],,缺點(diǎn)在于若一個(gè)偽隨機(jī)序列發(fā)生錯(cuò)誤,,便會(huì)使整個(gè)密文發(fā)生錯(cuò)誤,致使在解密過(guò)程中無(wú)法還原回明文,。藍(lán)牙E0流加密中用到的 LFSR易受到相關(guān)攻擊和分割解決攻擊,,且用軟件實(shí)現(xiàn)效率非常低。
 ULP藍(lán)牙中使用AES加密模塊,。雖然傳輸速度有所降低,,但安全性更高。適合小器件設(shè)備,,如手表,、運(yùn)動(dòng)傳感器、醫(yī)療設(shè)備等,;傳統(tǒng)藍(lán)牙適用于傳輸大量數(shù)據(jù)的設(shè)備。ULP藍(lán)牙的加密的位置處于HCI 層,,在流量控制和重傳機(jī)制下,,可以避免多次加密無(wú)用的數(shù)據(jù)。針對(duì)性更強(qiáng),,對(duì)不需要加密的數(shù)據(jù)進(jìn)行了過(guò)濾(如命令分組,、事件分組),所以它的日常連接次數(shù)可達(dá)到50次;而傳統(tǒng)藍(lán)牙連接次數(shù)在5次以?xún)?nèi)。ULP藍(lán)牙加密方案采用低成本的可編程邏輯器件和現(xiàn)成可用的高級(jí)加密處理的智力產(chǎn)權(quán)產(chǎn)品實(shí)現(xiàn),,降低了系統(tǒng)的成本,。
參考文獻(xiàn)
[1] HEYDON R. ULP藍(lán)牙開(kāi)啟全新無(wú)線(xiàn)應(yīng)用[J]. 電子設(shè)計(jì)應(yīng)用,2007(9):34-35.
[2] B1uetooth special interest group(SIG). Ultra low power  bluetooth technology specification[S]. Controller and host volumes,2007.
[3] DU Sui Kang. Document for bluetooth and bluetooth ULP [J]. Seminar Eingebettette drahtlose System,2009,31(1):211-214.
[4] HAN Hui Hua,,YANG Xiao. Application of cryptographic  algorithm in bluetooth security mechanism[J]. Journal of  Northern Jiaotong, 2003,27(2):24-28.
[5] 金純,許光辰.藍(lán)牙技術(shù)[M].北京:電子工業(yè)出版社,2001.
[6] 榮新華,,楊壽保.藍(lán)牙安全體系結(jié)構(gòu)研究及其在雙向RKE系統(tǒng)中的應(yīng)用[J].小型計(jì)算機(jī)系統(tǒng),2003,24(8):
1451-1454.
[7]  劉漢華,吳銳,,全景才.藍(lán)牙安全機(jī)制[J].電子質(zhì)量,,2001(6):25-28.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。