ULP藍(lán)牙技術(shù)的安全設(shè)計
2007年6月,Wibree技術(shù)被納入藍(lán)牙技術(shù)聯(lián)盟(SIG),并更名為ULP(超低功耗)藍(lán)牙【1】。它繼承了傳統(tǒng)藍(lán)牙規(guī)范的優(yōu)點(diǎn),優(yōu)化運(yùn)用,且耗能更少,成本更低,用于小型設(shè)備件的簡單的數(shù)據(jù)傳輸。
Wibree作為一項極低耗電量藍(lán)牙技術(shù)成為藍(lán)牙規(guī)格的一部分,是一種新的低功率無線技術(shù), 為業(yè)界開拓了新的市場機(jī)會及創(chuàng)新空間。由于采用無線方式進(jìn)行通信,因此,ULP藍(lán)牙跟傳統(tǒng)藍(lán)牙一樣面臨傳輸數(shù)據(jù)被截獲的危險。所以如何保證ULP藍(lán)牙運(yùn)用的安全,是ULP藍(lán)牙技術(shù)設(shè)計的一個核心問題。
本文基于Bluetooth SIG的技術(shù)草案【2】,討論了ULP藍(lán)牙技術(shù)安全結(jié)構(gòu),介紹ULP藍(lán)牙的地址生成,具體研究了ULP藍(lán)牙的認(rèn)證、密鑰生成和匹配原理及相關(guān)過程。
2.ULP藍(lán)牙的安全構(gòu)架【3】
安全性是ULP藍(lán)牙協(xié)議中必不可少的一部分,它提供使用的保護(hù)和信息保密。如圖1所示,ULP藍(lán)牙系統(tǒng)有三個邏輯組成部分:UIP控制器、ULP主機(jī)、HCI(主機(jī)控制器接口:介于UIP控制器與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.4GHz的ISM(Industrial Scientific Medical)頻段,其工作的中心頻率為2402+K*2MHz(K=0~39),即,工作頻帶寬度為2~3.5MHz。劃分為40個物理信道,其中包括3個廣播信道和37個數(shù)據(jù)信道。
結(jié)構(gòu)中的鏈路層有兩種工作狀態(tài):空閑狀態(tài)和連接狀態(tài),并且,其鏈路層只能工作在一種工作狀態(tài)下。同時,ULP藍(lán)牙設(shè)備還有5種工作模式:廣播模式,掃描模式,申請模式,主設(shè)備,從設(shè)備。
ULP L2CAP(Logic link control and adaptation protocol)處于鏈路控制協(xié)議之上,屬于數(shù)據(jù)鏈路層。L2CAP對上層協(xié)議可以提供面向連接和無連接數(shù)據(jù)服務(wù)。L2CAP允許高層協(xié)議和應(yīng)用發(fā)送和接收最長64K字節(jié)數(shù)據(jù)包(L2CAP服務(wù)數(shù)據(jù)單元,SDU)。
鏈路層中的連接加密過程由ULP主機(jī)負(fù)責(zé),而且它還包含一個由鏈路層獨(dú)立負(fù)責(zé)的加密子進(jìn)程。加密過程由HCI_Setup_Encryption命令來初始化。使用這個命令后,主設(shè)備的ULP主機(jī)就表明了鏈路層連接了新的加密模式。只要有這樣一個來自于ULP主機(jī)的命令,一個SEC_EMPTY_REQ數(shù)據(jù)包就會在鏈路層的連接上被傳送.
在被用HCI_Command_Completed命令所表示的過程完成之前的時間當(dāng)中,在HCI_Setup_Encryption命令之后,不允許有來自于ULP主機(jī)的任何數(shù)據(jù)包。
3.ULP藍(lán)牙認(rèn)證及密鑰生成過程
3.1 ULP藍(lán)牙地址【4】
ULP藍(lán)牙使用兩種類型的地址:設(shè)備地址和存取地址,設(shè)備地址細(xì)分為公有和私有設(shè)備地址。每個ULP設(shè)備應(yīng)該分配一個固定48bit的ULP藍(lán)牙公共設(shè)備地址,而私有設(shè)備設(shè)置的地址是可選的。一個ULP設(shè)備只有在證明設(shè)備可靠性后,才顯示其私有地址。每個鏈路層的連接有一個偽隨機(jī)32bit的存取地址,由連接中的申請者產(chǎn)生,每個鏈路層連接有不同的存取地址。ULP藍(lán)牙系統(tǒng)中,只能有一個數(shù)據(jù)包格式能在廣播通道數(shù)據(jù)包和數(shù)據(jù)通道數(shù)據(jù)包中同時使用。如圖2所示,每個數(shù)據(jù)包含4個實(shí)體:標(biāo)頭,同步字,PDU,和CRC。廣播數(shù)據(jù)包中的同步字是固定的,數(shù)據(jù)通道中的數(shù)據(jù)包同步字是鏈路層連接的存取地址。
評論