ULP藍(lán)牙技術(shù)的安全設(shè)計(jì)
4匹配和密鑰交換
本文的匹配算法有兩個(gè)擴(kuò)展模式,在前n個(gè)連接中密鑰改變(如果攻擊者錯(cuò)過一個(gè)更新,安全性提高)。第一個(gè)擴(kuò)展模式尤其適合于移動(dòng)設(shè)備,第二擴(kuò)展模式是假定兩個(gè)設(shè)備有相同的地址,干擾硬件攻擊者,提高密鑰的安全性,該模式適用于家庭等固定環(huán)境。
匹配分兩個(gè)階段執(zhí)行。開始執(zhí)行功能交換,使用開始匹配請(qǐng)求和開始匹配響應(yīng)。第三階段沒有匹配。
4.1匹配和密鑰交換的步驟
ULP藍(lán)牙的匹配分三個(gè)階段進(jìn)行,其流程如圖5所示。
第一階段,成功匹配功能交換后,開始執(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)證(從未來的廣播到未來的申請(qǐng)者)。
2.傳送擴(kuò)展(臨時(shí))密鑰和認(rèn)證(從未來的廣播到未來的申請(qǐng)者),在擴(kuò)展模式中,進(jìn)行有限的密鑰交換。
第三階段,第三階段和匹配無關(guān),是正常的會(huì)話,并且使用了在第二階段同樣的密鑰保護(hù)。注:廣泛的與這個(gè)密鑰通信可能會(huì)導(dǎo)致(取決于匹配機(jī)制)攻擊。攻擊長(zhǎng)期密鑰可能導(dǎo)致在第二階段中提供的長(zhǎng)期密鑰長(zhǎng)度少于128 bit。第三階段提供方便和實(shí)用性的擴(kuò)展模式,以及可能簡(jiǎn)單的設(shè)備。
總體層次規(guī)范定義了第三階段的用處,如果沒有定義任何第三階段的用途,匹配的設(shè)備將終止匹配會(huì)話,用長(zhǎng)期密鑰建立新會(huì)話。
4.2匹配第一階段的具體實(shí)現(xiàn)
匹配的第一階段,建立一個(gè)共享密鑰,定義自己的程序。匹配的第一階段產(chǎn)生一個(gè)共享密鑰SK??赡茉谶M(jìn)入第一階段匹配時(shí)設(shè)置PI連接請(qǐng)求(SEC不設(shè)置)。
4.2.1明文密鑰匹配
最簡(jiǎn)單的匹配算法沒有設(shè)置防止攻擊的保護(hù),在規(guī)定的時(shí)間內(nèi)和地點(diǎn),進(jìn)行匹配,它包含兩條消息,一條是從申請(qǐng)者中一個(gè)16 bit的隨機(jī)向量RAND發(fā)送密鑰轉(zhuǎn)化為PDU,另一條是在廣播中發(fā)送一個(gè)密鑰檢驗(yàn)PDU作為響應(yīng)。兩個(gè)設(shè)備計(jì)算共享密鑰:
臨時(shí)密鑰(TK) =
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}
SK = ETK(RAND)
其匹配過程如圖6所示。
4.2.2預(yù)共享密鑰匹配
一個(gè)設(shè)備,由于某些其它的連接媒體、密鑰放入可能性或者其他原因有一個(gè)共享秘密,可作為種子用于匹配,那么使用預(yù)共享密鑰匹配,信令相當(dāng)于明文關(guān)鍵匹配,計(jì)算臨時(shí)密鑰TK,用AES加密模塊,創(chuàng)建,這里mx有16字節(jié)的消息模塊,最后生成TK,初始化H0定義為
H0=
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}
信令和隨機(jī)數(shù)RAND作為明文密鑰匹配處理。SK = ETK(RAND),共享密鑰有臨時(shí)密鑰加密隨機(jī)數(shù)生成。
4.3匹配第二階段的具體實(shí)現(xiàn)
經(jīng)過第一階段產(chǎn)生的共享密鑰SK,用于第二階段的初始化加密會(huì)話,連接請(qǐng)求中設(shè)置PI 字段和SEC 字段進(jìn)入第二階段。
申請(qǐng)者(如果有指示密鑰傳送給廣播)首先發(fā)送它的密鑰資料給廣播。廣播收到長(zhǎng)期密鑰LTK和IR后,它發(fā)送各自的參數(shù)給申請(qǐng)者。這條消息會(huì)有順序的傳送:長(zhǎng)期密鑰和身份根IR。
因此廣播接受申請(qǐng)者的認(rèn)證(如果廣播指明不顯示它的密鑰),或申請(qǐng)者接收到廣播,即完成第二階段。在階段三,設(shè)備可能繼續(xù)通信。
5.總結(jié)
綜上所述,ULP藍(lán)牙系統(tǒng)本身提供的安全系統(tǒng)具有相當(dāng)?shù)陌踩匦浴?】。在ULP藍(lán)牙用于商業(yè)或軍事等方面時(shí),現(xiàn)有的點(diǎn)對(duì)點(diǎn)的密鑰分配和認(rèn)證機(jī)制將無法滿足安全要求,采用AES加密算法是必需。文章介紹了ULP藍(lán)牙認(rèn)證、匹配,描述了它的體系結(jié)構(gòu)。相比藍(lán)牙而言,在安全上有以下特點(diǎn):
1.現(xiàn)有的藍(lán)牙認(rèn)證【6】,主要是通過質(zhì)詢—響應(yīng)的方法進(jìn)行認(rèn)證。ULP藍(lán)牙的認(rèn)證基本相同,但是ULP藍(lán)牙的認(rèn)證機(jī)制中,通過設(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ò)誤,致使在解密過程中無法還原回明文。藍(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ī)制下,可以避免多次加密無用的數(shù)據(jù)。針對(duì)性更強(qiáng),對(duì)不需要加密的數(shù)據(jù)進(jìn)行了過濾,如命令分組、事件分組。所以它的日常連接次數(shù)可達(dá)到50次,而傳統(tǒng)藍(lán)牙次數(shù)在5次以內(nèi)。并且加密方案采用低成本的可編程邏輯器件和現(xiàn)成可用的高級(jí)加密處理的智力產(chǎn)權(quán)產(chǎn)品實(shí)現(xiàn),降低了系統(tǒng)的成本。
評(píng)論