一種藍(lán)牙主從設(shè)備及兩者建立安全通道的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息安全領(lǐng)域,特別涉及一種藍(lán)牙主從設(shè)備及兩者建立安全通道的方法。
【背景技術(shù)】
[0002]藍(lán)牙技術(shù)利用短距離、低成本的無線連接替代了電纜連接,廣泛的應(yīng)用于包括移動(dòng)電話、無線耳機(jī)、筆記本電腦、相關(guān)外設(shè)等眾多設(shè)備之間,實(shí)現(xiàn)了藍(lán)牙設(shè)備間的無線通信;藍(lán)牙設(shè)備是一種利用藍(lán)牙技術(shù)設(shè)計(jì)的無線通信電子產(chǎn)品,支持短距離無線通信,具有延遲時(shí)間短、連接穩(wěn)定性強(qiáng)等特點(diǎn)。
[0003]當(dāng)藍(lán)牙設(shè)備間建立安全通道時(shí),由于現(xiàn)階段藍(lán)牙設(shè)備之間大都采用無驗(yàn)證連接方式,這增加了連接的不確定性,存在惡意連接的問題;當(dāng)藍(lán)牙設(shè)備向具有藍(lán)牙功能的設(shè)備發(fā)送數(shù)據(jù)時(shí),由于通信數(shù)據(jù)不會(huì)加密,通信數(shù)據(jù)易受到竊聽、中間人攻擊、消息修改及資源濫用等問題。
【發(fā)明內(nèi)容】
[0004]本發(fā)明目的是為了克服現(xiàn)有技術(shù)的缺陷,提出一種藍(lán)牙主從設(shè)備及兩者建立安全通道的方法。
[0005]本發(fā)明方法是通過下述技術(shù)方案實(shí)現(xiàn)的
[0006]一種藍(lán)牙主從設(shè)備間建立安全通道的方法,包括:
[0007]步驟101、藍(lán)牙主設(shè)備與周圍有效范圍內(nèi)的藍(lán)牙設(shè)備交換各自的設(shè)備信息;
[0008]具體的,所述設(shè)備信息具體為設(shè)備地址類型和設(shè)備地址。
[0009]步驟102、所述藍(lán)牙主設(shè)備向用戶選擇的藍(lán)牙設(shè)備發(fā)送配對(duì)請(qǐng)求指令,所述用戶選擇的藍(lán)牙設(shè)備作為藍(lán)牙從設(shè)備;
[0010]步驟103、藍(lán)牙從設(shè)備接收所述藍(lán)牙主設(shè)備發(fā)送的配對(duì)請(qǐng)求指令,產(chǎn)生并顯示第一初始密鑰,并向所述藍(lán)牙主設(shè)備發(fā)送配對(duì)響應(yīng)指令;
[0011]步驟104、所述藍(lán)牙主設(shè)備接收用戶根據(jù)所述第一初始密鑰輸入的第二初始密鑰;所述藍(lán)牙主設(shè)備產(chǎn)生第一隨機(jī)數(shù),并根據(jù)所述藍(lán)牙主設(shè)備的設(shè)備信息、所述藍(lán)牙從設(shè)備的設(shè)備信息、所述第一隨機(jī)數(shù)、所述配對(duì)請(qǐng)求指令中的第一通信參數(shù)、所述配對(duì)響應(yīng)指令中的第二通信參數(shù)以及所述第二初始密鑰生成第一認(rèn)證密鑰;所述藍(lán)牙從設(shè)備產(chǎn)生第二隨機(jī)數(shù),并根據(jù)所述藍(lán)牙主設(shè)備的設(shè)備信息、所述藍(lán)牙從設(shè)備的設(shè)備信息、所述第二隨機(jī)數(shù)、所述第一通信參數(shù)、所述第二通信參數(shù)以及所述第一初始密鑰生成第二認(rèn)證密鑰;所述藍(lán)牙主從設(shè)備交換各自生成的第一認(rèn)證密鑰和第二認(rèn)證密鑰;所述藍(lán)牙主設(shè)備還向所述藍(lán)牙從設(shè)備發(fā)送第一隨機(jī)數(shù);
[0012]所述藍(lán)牙主設(shè)備根據(jù)所述藍(lán)牙主設(shè)備的設(shè)備信息、所述藍(lán)牙從設(shè)備的設(shè)備信息、所述第一隨機(jī)數(shù)、所述第一通信參數(shù)、所述第二通信參數(shù)以及所述第二初始密鑰生成第一認(rèn)證密鑰,具體包括:
[0013]步驟301、所述藍(lán)牙主設(shè)備根據(jù)所述藍(lán)牙主設(shè)備的所述設(shè)備地址類型、所述藍(lán)牙從設(shè)備的設(shè)備地址類型、所述第一通信參數(shù)以及所述第二通信參數(shù)生成第一數(shù)據(jù);
[0014]具體的,所述藍(lán)牙主設(shè)備根據(jù)所述藍(lán)牙主設(shè)備的所述設(shè)備地址類型、所述藍(lán)牙從設(shè)備的設(shè)備地址類型、所述第一通信參數(shù)以及所述第二通信參數(shù)生成第一數(shù)據(jù)具體包括:所述藍(lán)牙主設(shè)備獲取所述藍(lán)牙主設(shè)備的設(shè)備地址類型的預(yù)設(shè)字節(jié);獲取所述藍(lán)牙從設(shè)備的設(shè)備地址類型的預(yù)設(shè)字節(jié);將所述藍(lán)牙主設(shè)備的設(shè)備地址類型的預(yù)設(shè)字節(jié)、所述藍(lán)牙從設(shè)備的設(shè)備地址類型的預(yù)設(shè)字節(jié)、所述第一通信參數(shù)、所述第二通信參數(shù)的預(yù)設(shè)數(shù)據(jù)順序拼接得到第一數(shù)據(jù)。
[0015]步驟302、所述藍(lán)牙主設(shè)備將所述第二初始密鑰轉(zhuǎn)換為第二臨時(shí)密鑰;
[0016]步驟303、所述藍(lán)牙主設(shè)備將所述第一隨機(jī)數(shù)與所述第一數(shù)據(jù)經(jīng)過預(yù)設(shè)運(yùn)算得到的結(jié)果與所述第二臨時(shí)密鑰進(jìn)行預(yù)設(shè)加密運(yùn)算得到第二數(shù)據(jù);
[0017]具體的,所述藍(lán)牙主設(shè)備將所述第一隨機(jī)數(shù)與所述第一數(shù)據(jù)經(jīng)過預(yù)設(shè)運(yùn)算得到的結(jié)果與所述第二臨時(shí)密鑰進(jìn)行預(yù)設(shè)加密運(yùn)算得到第二數(shù)據(jù)具體包括:所述藍(lán)牙主設(shè)備將所述第一隨機(jī)數(shù)與所述第一數(shù)據(jù)進(jìn)行異或運(yùn)算,并將運(yùn)算得到的結(jié)果與所述第二臨時(shí)密鑰進(jìn)行128比特的AES運(yùn)算得到第二數(shù)據(jù)。
[0018]步驟304、所述藍(lán)牙主設(shè)備根據(jù)所述藍(lán)牙主設(shè)備的設(shè)備地址和所述藍(lán)牙從設(shè)備的設(shè)備地址得到第三數(shù)據(jù);
[0019]具體的,所述藍(lán)牙主設(shè)備根據(jù)所述藍(lán)牙主設(shè)備的設(shè)備地址和所述藍(lán)牙從設(shè)備的設(shè)備地址得到第三數(shù)據(jù)具體包括:所述藍(lán)牙主設(shè)備將所述藍(lán)牙主設(shè)備的設(shè)備地址與所述藍(lán)牙從設(shè)備的設(shè)備地址順序拼接得到第三數(shù)據(jù)。
[0020]步驟305、所述藍(lán)牙主設(shè)備將所述第二數(shù)據(jù)與所述第三數(shù)據(jù)經(jīng)過所述預(yù)設(shè)運(yùn)算得到的結(jié)果與所述第二臨時(shí)密鑰進(jìn)行所述預(yù)設(shè)加密運(yùn)算得到第一認(rèn)證密鑰。
[0021]具體的,所述藍(lán)牙主設(shè)備將所述第二數(shù)據(jù)與所述第三數(shù)據(jù)經(jīng)過所述預(yù)設(shè)運(yùn)算得到的結(jié)果與所述第二臨時(shí)密鑰進(jìn)行所述預(yù)設(shè)加密運(yùn)算得到第一認(rèn)證密鑰具體包括:所述藍(lán)牙主設(shè)備將所述第二數(shù)據(jù)與所述第三數(shù)據(jù)進(jìn)行異或運(yùn)算,并將運(yùn)算得到結(jié)果與所述第二臨時(shí)密鑰進(jìn)行128比特的AES運(yùn)算得到第一認(rèn)證密鑰。
[0022]步驟105、所述藍(lán)牙從設(shè)備根據(jù)所述藍(lán)牙主設(shè)備的設(shè)備信息、所述藍(lán)牙從設(shè)備的設(shè)備信息、所述第一隨機(jī)數(shù)、所述配對(duì)請(qǐng)求指令中的第一通信參數(shù)、所述配對(duì)響應(yīng)指令中的第二通信參數(shù)以及所述第一初始密鑰生成第三認(rèn)證密鑰,并判斷所述第一認(rèn)證密鑰是否等于所述第三認(rèn)證密鑰;是則所述藍(lán)牙從設(shè)備向所述藍(lán)牙主設(shè)備發(fā)送所述第二隨機(jī)數(shù)執(zhí)行步驟106,否則建立安全通道失敗;
[0023]步驟106、所述藍(lán)牙主設(shè)備根據(jù)所述設(shè)備信息、所述第二隨機(jī)數(shù)、所述配對(duì)請(qǐng)求指令中的第一通信參數(shù)、所述配對(duì)響應(yīng)指令中的第二通信參數(shù)以及所述第二初始密鑰生成第四認(rèn)證密鑰,并判斷所述第二認(rèn)證密鑰是否等于所述第四認(rèn)證密鑰,是則所述藍(lán)牙主設(shè)備向所述藍(lán)牙從設(shè)備發(fā)送比對(duì)成功指令,執(zhí)行步驟107,否則建立安全通道失敗;
[0024]步驟107、所述藍(lán)牙主設(shè)備根據(jù)所述第二初始密鑰、所述第一隨機(jī)數(shù)和所述第二隨機(jī)數(shù)生成第二通信加密密鑰;所述藍(lán)牙從設(shè)備根據(jù)所述第一初始密鑰、所述第一隨機(jī)數(shù)和所述第二隨機(jī)數(shù)生成第一通信加密密鑰。
[0025]具體的,所述藍(lán)牙主設(shè)備根據(jù)第二初始密鑰、第一隨機(jī)數(shù)和第二隨機(jī)數(shù)生成第二通信加密密鑰,具體包括:
[0026]步驟801、所述藍(lán)牙主設(shè)備將所述第一隨機(jī)數(shù)的預(yù)設(shè)數(shù)據(jù)、第二隨機(jī)數(shù)的預(yù)設(shè)數(shù)據(jù)順序拼接得到第四數(shù)據(jù);
[0027]步驟802、所述藍(lán)牙主設(shè)備將第二初始密鑰轉(zhuǎn)換的第二臨時(shí)密鑰,并將所述第四數(shù)據(jù)與所述第二臨時(shí)密鑰進(jìn)行所述預(yù)設(shè)加密運(yùn)算得到第二通信加密密鑰。
[0028]優(yōu)選的,所述藍(lán)牙主設(shè)備向用戶選擇的藍(lán)牙設(shè)備發(fā)送配對(duì)請(qǐng)求指令之后還包括:所述藍(lán)牙從設(shè)備解析配對(duì)請(qǐng)求指令,判斷配對(duì)方式是否為簡單配對(duì),是則所述藍(lán)牙從設(shè)備等待接收所述藍(lán)牙主設(shè)備的通信數(shù)據(jù),否則產(chǎn)生并顯示第一初始密鑰。
[0029]優(yōu)選的,所述藍(lán)牙從設(shè)備向所述藍(lán)牙主設(shè)備發(fā)送第一初始密鑰,所述藍(lán)牙主設(shè)備接收并顯示所述藍(lán)牙從設(shè)備發(fā)送的第一初始密鑰,等待用戶觸發(fā)確認(rèn)信息。
[0030]一種藍(lán)牙從設(shè)備建立安全通道的方法,包括:
[0031]步驟A、藍(lán)牙從設(shè)備接收藍(lán)牙主設(shè)備的設(shè)備信息并向所述藍(lán)牙主設(shè)備發(fā)送所述藍(lán)牙從設(shè)備的設(shè)備信息;
[0032]步驟B、所述藍(lán)牙從設(shè)備接收所述藍(lán)牙主設(shè)備發(fā)送的配對(duì)請(qǐng)求指令,產(chǎn)生并顯示第一初始密鑰,并向所述藍(lán)牙主設(shè)備發(fā)送配對(duì)響應(yīng)指令;
[0033]步驟C、所述藍(lán)牙從設(shè)備產(chǎn)生第二隨機(jī)數(shù),根據(jù)所述設(shè)備信息、所述第二隨機(jī)數(shù)、所述配對(duì)請(qǐng)求指令中的第一通信參數(shù)、所述配對(duì)響應(yīng)指令中的第二通信參數(shù)以及所述第一初始密鑰生成第二認(rèn)證密鑰;并向所述藍(lán)牙主設(shè)備發(fā)送所述第二認(rèn)證密鑰;
[0034]步驟D、所述藍(lán)牙從設(shè)備接收所述藍(lán)牙主設(shè)備發(fā)送的第一認(rèn)證密鑰和第一隨機(jī)數(shù),并根據(jù)所述藍(lán)牙主設(shè)備的設(shè)備信息、所述藍(lán)牙從設(shè)備的設(shè)備信息、所述第一隨機(jī)數(shù)、所述第一通信參數(shù)、所述第二通信參數(shù)以及所述第一初始密鑰生成第三認(rèn)證密鑰;
[0035]步驟E、所述藍(lán)牙從設(shè)備判斷所述第一認(rèn)證密鑰是否與所述第三認(rèn)證密鑰相等,是則向所述藍(lán)牙主設(shè)備發(fā)送所述第二隨機(jī)數(shù),執(zhí)行步驟F,否則所述藍(lán)牙主設(shè)備身份不合法,建立安全通道失?。?br>[0036]步驟F、所述藍(lán)牙從設(shè)備接收所述藍(lán)牙主設(shè)備發(fā)送的認(rèn)證結(jié)果,若所述認(rèn)證結(jié)果為成功則所述藍(lán)牙從設(shè)備根據(jù)所述第一初始密鑰、所述第一隨機(jī)數(shù)和所述第二隨機(jī)數(shù)生成第一通信加密密鑰,否則建立安全通道失敗。
[0037]一種藍(lán)牙從設(shè)備,包括:
[0038]數(shù)據(jù)接收模塊,用于接收所述藍(lán)牙主設(shè)備的設(shè)備信息、配對(duì)請(qǐng)求指令、第一隨機(jī)數(shù)、第一認(rèn)證密鑰和認(rèn)證結(jié)果;
[0039]第一數(shù)據(jù)發(fā)送模塊,用于向所述藍(lán)牙主設(shè)備發(fā)送所述藍(lán)牙從設(shè)備的設(shè)備信息、配對(duì)響應(yīng)指令和第二認(rèn)證密鑰;
[0040]所述第一數(shù)據(jù)發(fā)送模塊發(fā)送的所述藍(lán)牙從設(shè)備的設(shè)備信息具體為:所述藍(lán)牙從設(shè)備的設(shè)備地址和設(shè)備地址類型;所述數(shù)據(jù)接收模塊接收的所述藍(lán)牙主設(shè)備的設(shè)備信息為設(shè)備地址和設(shè)備地址類型。
[0041]第二數(shù)據(jù)發(fā)送模塊,用于若判斷模塊判斷第一認(rèn)證密鑰等于第三認(rèn)證密鑰時(shí)發(fā)送第二隨機(jī)數(shù);
[0042]數(shù)據(jù)生成模塊,用于生成第一初始密鑰和第二隨機(jī)數(shù);
[0043]顯示模塊,用于顯示所述數(shù)據(jù)生成模塊生成的所述第一初始密鑰;
[0044]運(yùn)算模塊,用于根據(jù)所述數(shù)據(jù)接收模塊接收的所述藍(lán)牙主設(shè)備的設(shè)備信息,所述藍(lán)牙從設(shè)備的設(shè)備信息,所述數(shù)據(jù)接收模塊接收的所述第一隨機(jī)數(shù)、所述數(shù)據(jù)接收模塊接收的所述配對(duì)請(qǐng)求指令中的第一通信參數(shù)、所述配對(duì)響應(yīng)指令中的第二配對(duì)參數(shù)以及所述數(shù)據(jù)生成模塊生成的所述第一初始密鑰生成第三認(rèn)證密鑰;還用于根據(jù)所述數(shù)據(jù)接收模塊接收的所述藍(lán)牙主設(shè)備的設(shè)備信息,所述藍(lán)牙從設(shè)備的設(shè)備信息,所述數(shù)據(jù)生成模塊生成的所述第二隨機(jī)數(shù)、所述第一通信參數(shù)、所述第二配對(duì)參數(shù)以及所述數(shù)據(jù)生成模塊生成的所述第一初始密鑰生成第二認(rèn)證密鑰;
[0045]具體的,所述運(yùn)算模塊,包括:
[0046]第一數(shù)據(jù)生成子模塊,用于根據(jù)所述藍(lán)牙主設(shè)備的設(shè)備地址類型、所述藍(lán)牙從設(shè)備的設(shè)備地址類型、所述第一通信參數(shù)以及所述第二通信參數(shù)生成第一數(shù)據(jù);
[0047]所述第一數(shù)據(jù)生成子模塊具體包括
[0048]獲取預(yù)設(shè)字節(jié)單元,用于獲取所述藍(lán)牙主設(shè)備的設(shè)備地址類型的預(yù)設(shè)字節(jié)并轉(zhuǎn)換為十六進(jìn)制,還用于獲取所述藍(lán)牙從設(shè)備的地址類型的預(yù)設(shè)字節(jié)并轉(zhuǎn)換為十六進(jìn)制;
[0049]第一拼接單元,用于將所述獲取預(yù)設(shè)字節(jié)單元生成的所述藍(lán)牙主設(shè)備的設(shè)備地址類型的預(yù)設(shè)字節(jié)的十六進(jìn)制數(shù)據(jù)、所述藍(lán)牙從設(shè)備的設(shè)備地址類型的預(yù)設(shè)字節(jié)的十六進(jìn)制數(shù)據(jù)、所述第一通信參數(shù)以及所述第二通信參數(shù)順序拼接為第一數(shù)據(jù)。
[0050]臨時(shí)密鑰生成子模塊,用于將第一初始密鑰生成第一臨時(shí)密鑰;<