新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > ULP藍牙技術的安全設計

        ULP藍牙技術的安全設計

        作者: 時間:2011-10-09 來源:網絡 收藏

        3.2廣播工作模式中認證
        系統中,每一臺設備會產生和保持兩個隨機生成的密鑰:鑒權(identity root)和加密(encryption root)。鑒權用于連接中生成私有地址和區分標識符密鑰連接中的標識符。加密用來確立密鑰標識符的。在任何加密連接中,廣播創建密鑰作為會話密鑰的基礎。集合密鑰是在某些配對選擇中創建,這些密鑰只是用作保護(未來)廣播中密鑰的傳遞。

        加密模式中,通過廣播方式把創建的密鑰分派給需要連接的所有設備或實體,鑒權的一個應用建立私有地址。因為鑒權每次只支持一個身份,所以許多申請者將獲得同樣的鑒權。廣播向設備提供標識符的加密(伴隨16bit 標識符),在加密模式中該設備是支持連接的設備。規范的基本概念有唯一的標識符密鑰,被稱為“長期密鑰”(Long Term Key),這個密鑰分配給每個申請者。此外,加密規則僅僅是推薦使用并且在廣播之外。長期密鑰是不可見的,在原則上能使用任何映射在 16位和128位之間密鑰。加密標識符密鑰有以下幾種:IRK(Identity Resolving Key)、PIR(Pairing Identity Root)、DHK(Diversifier Hiding Key)、 PIRK(Pairing Identity Resolving Key)、PDHK (Pairing Diversifier Hiding Key)。

        在廣播模式條件下,廣播設備產生一個初始隨機向量(IRV),該向量由10個字節的新隨機數組成,也是鏈路層(LL)傳輸給申請者的第一個可能的數據包。廣播設備初始化時,到達一個連接請求。

        連接請求包括:SEC字段(表明是否是加密請求)、PI字段(表明申請者連接一個匹配認證)。SEC=1,表示有2字節的加密區分標識符(EDIV)和申請者6字節的隨機地址。

        如圖3所示,在SEC=1的條件下,廣播模式下的認證步驟如下:
        1.解密區分標識符隱藏密鑰:發送HCI_Set_key(0x00,DKH)命令到鏈路層,返回HCI_Command_Complete(),并再發送加密請求命令HCI_encrypt(addmaster),PAL返回請求完成命令HCI_Command_Complete()。
        由EDHK計算DIV,
        此具體過程是:
        由Y = EDHK
        (IRA(初始化隨機地址),
        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.創建長期密鑰:發送設置加密命令到鏈路層HCI_Set_key(0x00,ER),返回完成命令HCI_Command_Complete(),再發送請求加密長期密鑰命令HCI_encrypt(DIV),返回完成創建長期密鑰命令HCI_Command_Complete(LTK)。

        按以下公式重新創建長期密鑰LTK,

        LTK=EER (DIV,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00)

        3.創建會話密鑰命令HCI_Set_key(0x00,LTK),返回完成命令HCI_Command_Complete(),再發送請求加密長期密鑰命令HCI_Encrypt(addmaster/IRV),返回完成創建長期密鑰命令HCI_Command_Complete(SK)。。

        4.鏈路層設置會話密鑰和初始值:初始值為

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


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

        1.創建隨機地址:發送HCI_Rand()命令到鏈路層(LL),返回HCI_Command_Complete(rand),

        2.加密區分標識符(diverfier)密鑰:發送設置加密命令到鏈路層HCI_Set_key(0x00,DHR),返回請求完成命令HCI_Command_Complete(),再發送加密請求命令HCI_Encrypt(addmaster),返回請求完成命令HCI_Command_Complete()。

        由DIV計算出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}

        最后申請者請求一個連接,該連接建立過程如圖4所示。

        1.如果請求加密連接,則SEC 字段一直等于1;如果在申請者和廣播設備間,擴展匹配繼續進行,即PI字段設置為1。

        2. 2字節的加密區分標識符密鑰(EDIV),6字節的申請者隨機地址(IRA)。

        3.當連接已經建立,從廣播中申請者得到一個10字節的隨機向量(IRV)作為層協議數據單元PDU(類型0xFD),然后從長期密鑰中,申請者創建會話密鑰SK和設置初始值(IV)。

        創建會話密鑰SK:發送設置長期密鑰命令HCI_Set_key(0x00,LTK)到鏈路層,返回完成命令HCI_Command_Complete(),再發送加密請求命令HCI_encrypt,返回完成創建會話密鑰命令HCI_Command_Complete(SK),

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

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



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



        關鍵詞: 設計 安全 技術 藍牙 ULP

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 色达县| 松潘县| 平凉市| 海南省| 宁阳县| 汾西县| 江达县| 鄂托克前旗| 宁远县| 青海省| 环江| 北安市| 铅山县| 仙居县| 获嘉县| 安吉县| 阳西县| 休宁县| 介休市| 绿春县| 武夷山市| 武义县| 深水埗区| 华蓥市| 淮北市| 汽车| 和平县| 牙克石市| 望谟县| 苏尼特左旗| 西丰县| 贵港市| 阿瓦提县| 万安县| 合山市| 绥江县| 富平县| 融水| 白河县| 洛浦县| 区。|