新聞中心

        EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > ULP藍(lán)牙技術(shù)的安全設(shè)計(jì)

        ULP藍(lán)牙技術(shù)的安全設(shè)計(jì)

        作者: 時(shí)間:2011-10-09 來源:網(wǎng)絡(luò) 收藏

        3.2廣播工作模式中認(rèn)證
        系統(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ì)話密鑰的基礎(chǔ)。集合密鑰是在某些配對(duì)選擇中創(chuàng)建,這些密鑰只是用作保護(hù)(未來)廣播中密鑰的傳遞。

        加密模式中,通過廣播方式把創(chuàng)建的密鑰分派給需要連接的所有設(shè)備或?qū)嶓w,鑒權(quán)的一個(gè)應(yīng)用建立私有地址。因?yàn)殍b權(quán)每次只支持一個(gè)身份,所以許多申請(qǐng)者將獲得同樣的鑒權(quán)。廣播向設(shè)備提供標(biāo)識(shí)符的加密(伴隨16bit 標(biāo)識(shí)符),在加密模式中該設(shè)備是支持連接的設(shè)備。規(guī)范的基本概念有唯一的標(biāo)識(shí)符密鑰,被稱為“長(zhǎng)期密鑰”(Long Term Key),這個(gè)密鑰分配給每個(gè)申請(qǐng)者。此外,加密規(guī)則僅僅是推薦使用并且在廣播之外。長(zhǎng)期密鑰是不可見的,在原則上能使用任何映射在 16位和128位之間密鑰。加密標(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個(gè)字節(jié)的新隨機(jī)數(shù)組成,也是鏈路層(LL)傳輸給申請(qǐng)者的第一個(gè)可能的數(shù)據(jù)包。廣播設(shè)備初始化時(shí),到達(dá)一個(gè)連接請(qǐng)求。

        連接請(qǐng)求包括:SEC字段(表明是否是加密請(qǐng)求)、PI字段(表明申請(qǐng)者連接一個(gè)匹配認(rèn)證)。SEC=1,表示有2字節(jié)的加密區(qū)分標(biāo)識(shí)符(EDIV)和申請(qǐng)者6字節(jié)的隨機(jī)地址。

        如圖3所示,在SEC=1的條件下,廣播模式下的認(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,
        此具體過程是:
        由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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00)

        3.創(chuàng)建會(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)。。

        4.鏈路層設(shè)置會(huì)話密鑰和初始值:初始值為

        別發(fā)送命令HCI_Set_key(0x01,SK)和HCI_Set_IV(addr|addr[0…23])到鏈路層進(jìn)行設(shè)置,返回完成設(shè)置命令HCI_Command_Complete()。生成會(huì)話密鑰SK和IV,并在鏈路層設(shè)置(廣播地址AA = {A0,A1, …,A5})。


        3.3申請(qǐng)模式中加密會(huì)話設(shè)置
        申請(qǐng)者瀏覽廣播,找到相匹配的廣播地址AA={A0,A1,…,A5},初始使用6字節(jié)完全隨機(jī)地址(IRA)。

        1.創(chuàng)建隨機(jī)地址:發(fā)送HCI_Rand()命令到鏈路層(LL),返回HCI_Command_Complete(rand),

        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()。

        由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è)連接,該連接建立過程如圖4所示。

        1.如果請(qǐng)求加密連接,則SEC 字段一直等于1;如果在申請(qǐng)者和廣播設(shè)備間,擴(kuò)展匹配繼續(xù)進(jìn)行,即PI字段設(shè)置為1。

        2. 2字節(jié)的加密區(qū)分標(biāo)識(shí)符密鑰(EDIV),6字節(jié)的申請(qǐng)者隨機(jī)地址(IRA)。

        3.當(dāng)連接已經(jīng)建立,從廣播中申請(qǐng)者得到一個(gè)10字節(jié)的隨機(jī)向量(IRV)作為層協(xié)議數(shù)據(jù)單元PDU(類型0xFD),然后從長(zhǎng)期密鑰中,申請(qǐng)者創(chuàng)建會(huì)話密鑰SK和設(shè)置初始值(IV)。

        創(chuàng)建會(huì)話密鑰SK:發(fā)送設(shè)置長(zhǎng)期密鑰命令HCI_Set_key(0x00,LTK)到鏈路層,返回完成命令HCI_Command_Complete(),再發(fā)送加密請(qǐng)求命令HCI_encrypt,返回完成創(chuàng)建會(huì)話密鑰命令HCI_Command_Complete(SK),

        即可表示為:
        SK = (IRA,IRV),
        IV = {IRA,A0,A1,A2}。

        4.SK和IV被分配給鏈路層(LL),作為最后的步驟,LL操作中,申請(qǐng)者將初始化“連接模式變化”。
        鏈路層設(shè)置會(huì)話密鑰和初始值:分別發(fā)送命令HCI_Set_key(0x01,SK)和HCI_Set_IV(addr|addr[0…23])到鏈路層設(shè)置,返回完成設(shè)置命令HCI_Command_Complete()。



        3.4密鑰更新
        連接建立之后,不支持密鑰更新或者重建參數(shù)。唯一的例外就是匹配程序,在匹配的第一階段后,匹配程序中的會(huì)話加密密鑰和狀態(tài)發(fā)生改變。



        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 屏南县| 扎鲁特旗| 含山县| 左贡县| 郎溪县| 通城县| 黎平县| 正安县| 边坝县| 台湾省| 措勤县| 东兰县| 荆门市| 和林格尔县| 建阳市| 张家港市| 罗城| 武穴市| 淮北市| 贵南县| 山东省| 和顺县| 沂水县| 房山区| 师宗县| 翁牛特旗| 濮阳县| 若尔盖县| 东乡| 桐庐县| 社旗县| 四会市| 怀安县| 盘山县| 新巴尔虎右旗| 崇阳县| 贵溪市| 闸北区| 绥中县| 子洲县| 台山市|