述處理模塊,具體用于獲取保存的藍(lán)牙設(shè)備的設(shè)備序列號(hào),對(duì)所述隨機(jī)數(shù)和所 述設(shè)備序列號(hào)進(jìn)行哈希運(yùn)算,得到哈希值。
[0124]所述顯示模塊,具體用于當(dāng)所述接收模塊接收到所述配對(duì)請(qǐng)求后,獲取所述處理 模塊保存的所述哈希值的預(yù)設(shè)位上的數(shù)據(jù)作為配對(duì)碼并顯示。
[0125]所述顯示模塊,具體用于當(dāng)所述接收模塊接收到所述配對(duì)請(qǐng)求后,對(duì)所述處理模 塊保存的所述哈希值進(jìn)行預(yù)設(shè)運(yùn)算生成配對(duì)碼并顯示。
[0126]所述藍(lán)牙設(shè)備還包括第二判斷模塊、獲取模塊和存儲(chǔ)模塊;
[0127]所述接收模塊,還用于接收所述客戶(hù)端發(fā)送的客戶(hù)端唯一標(biāo)識(shí)碼;
[0128]所述獲取模塊,用于獲取所述藍(lán)牙設(shè)備中保存的客戶(hù)端唯一標(biāo)識(shí)碼;
[0129]所述第二判斷模塊,用于判斷獲取到的所述客戶(hù)端唯一標(biāo)識(shí)碼與接收到的所述客 戶(hù)端唯一標(biāo)識(shí)碼是否相同,判斷為是時(shí),配對(duì)成功,判斷為否時(shí),觸發(fā)所述第一判斷模塊;
[0130]所述存儲(chǔ)模塊,用于當(dāng)所述檢測(cè)模塊檢測(cè)到確認(rèn)鍵按下時(shí),將接收到的所述客戶(hù) 端唯一標(biāo)識(shí)碼保存至所述藍(lán)牙設(shè)備中。
[0131] 所述藍(lán)牙設(shè)備還包括第三判斷模塊,用于當(dāng)所述接收模塊接收到所述客戶(hù)端發(fā)送 的客戶(hù)端唯一標(biāo)識(shí)碼后,判斷是否已與所述客戶(hù)端進(jìn)行過(guò)配對(duì),判斷為是時(shí),觸發(fā)所述獲取 模塊,判斷為否時(shí),觸發(fā)所述第一判斷模塊。
[0132]所述存儲(chǔ)模塊,具體用于判斷所述藍(lán)牙設(shè)備中是否存在其他已配對(duì)的客戶(hù)端唯一 標(biāo)識(shí)碼,判斷為是時(shí),將所述其他已配對(duì)的客戶(hù)端唯一標(biāo)識(shí)碼刪除,并將接收到的所述客戶(hù) 端唯一標(biāo)識(shí)碼作為已配對(duì)的客戶(hù)端唯一標(biāo)識(shí)碼保存,判斷為否時(shí),直接將接收到的所述客 戶(hù)端唯一標(biāo)識(shí)碼作為已配對(duì)的客戶(hù)端唯一標(biāo)識(shí)碼保存。
[0133]所述存儲(chǔ)模塊,具體用于判斷所述藍(lán)牙設(shè)備中已配對(duì)的客戶(hù)端唯一標(biāo)識(shí)碼的個(gè)數(shù) 是否達(dá)到預(yù)設(shè)值,判斷為是時(shí),將其中一個(gè)已配對(duì)的客戶(hù)端唯一標(biāo)識(shí)碼刪除,并將接收到的 所述客戶(hù)端唯一標(biāo)識(shí)碼作為已配對(duì)的客戶(hù)端唯一標(biāo)識(shí)碼保存,判斷為否時(shí),直接將接收到 的所述客戶(hù)端唯一標(biāo)識(shí)碼作為已配對(duì)的客戶(hù)端唯一標(biāo)識(shí)碼保存。
[0134]所述藍(lán)牙設(shè)備還包括:協(xié)商密鑰模塊,用于與所述客戶(hù)端協(xié)商會(huì)話(huà)密鑰。
[0135]所述協(xié)商密鑰模塊,具體用于接收所述客戶(hù)端發(fā)送的加密結(jié)果,應(yīng)用預(yù)先保存的 私鑰對(duì)所述加密結(jié)果進(jìn)行解密,得到會(huì)話(huà)密鑰并保存,并向所述客戶(hù)端返回協(xié)商會(huì)話(huà)密鑰 成功響應(yīng)。
[0136]所述第一判斷模塊,具體用于接收所述客戶(hù)端發(fā)送的指令,應(yīng)用所述會(huì)話(huà)密鑰對(duì) 所述指令進(jìn)行解密,判斷解密得到的數(shù)據(jù)是否為隨機(jī)數(shù)指令,判斷為是時(shí),從所述隨機(jī)數(shù)指 令中獲取隨機(jī)數(shù),判斷為否時(shí),主動(dòng)斷開(kāi)與所述客戶(hù)端的藍(lán)牙連接并進(jìn)入省電模式。
[0137]所述藍(lán)牙設(shè)備還包括簽名模塊;
[0138]所述接收模塊,還用于接收所述客戶(hù)端發(fā)送的簽名指令;
[0139]所述顯示模塊,還用于從所述簽名指令中獲取待簽名數(shù)據(jù),顯示所述待簽名數(shù)據(jù); [0140]所述檢測(cè)模塊,還用于當(dāng)所述顯示模塊顯示所述待簽名數(shù)據(jù)后,檢測(cè)按鍵狀態(tài),當(dāng) 檢測(cè)到確認(rèn)鍵按下時(shí),觸發(fā)所述簽名模塊,當(dāng)檢測(cè)到取消鍵按下時(shí),向所述客戶(hù)端發(fā)送簽名 失敗響應(yīng);
[0141] 所述簽名模塊,用于對(duì)所述待簽名數(shù)據(jù)執(zhí)行簽名操作,根據(jù)簽名結(jié)果生成簽名成 功響應(yīng)并發(fā)送至所述客戶(hù)端。
[0142]-種實(shí)現(xiàn)安全配對(duì)的客戶(hù)端的工作方法,包括:
[0143]步驟Q1:客戶(hù)端打開(kāi)藍(lán)牙連接并搜索藍(lán)牙廣播包,當(dāng)搜索到藍(lán)牙廣播包時(shí),根據(jù)所 述藍(lán)牙廣播包與對(duì)應(yīng)的藍(lán)牙設(shè)備建立藍(lán)牙連接,生成隨機(jī)數(shù)并發(fā)送至所述藍(lán)牙設(shè)備;
[0144] 步驟Q2:所述客戶(hù)端接收所述藍(lán)牙設(shè)備返回的哈希值,根據(jù)生成的所述隨機(jī)數(shù),判 斷接收到的所述哈希值是否正確,如果是,則執(zhí)行步驟Q3,否則報(bào)錯(cuò),結(jié)束;所述哈希值為所 述藍(lán)牙設(shè)備對(duì)所述隨機(jī)數(shù)進(jìn)行計(jì)算所得;
[0145] 步驟Q3:所述客戶(hù)端根據(jù)所述哈希值生成配對(duì)碼并顯示,并向所述藍(lán)牙設(shè)備發(fā)送 配對(duì)請(qǐng)求;
[0146]步驟Q4:所述客戶(hù)端接收所述藍(lán)牙設(shè)備返回的配對(duì)成功信息。
[0147]所述步驟Q1中,當(dāng)搜索到藍(lán)牙廣播包時(shí),還包括:所述客戶(hù)端根據(jù)客戶(hù)端唯一標(biāo)識(shí) 碼從服務(wù)器中獲取與所述客戶(hù)端綁定的藍(lán)牙設(shè)備的設(shè)備序列號(hào),判斷獲取到的所述設(shè)備序 列號(hào)和所述藍(lán)牙廣播包中的設(shè)備序列號(hào)是否匹配,如果是,則繼續(xù),否則繼續(xù)搜索藍(lán)牙廣播 包。
[0148]所述步驟Q1中,當(dāng)搜索到藍(lán)牙廣播包時(shí),還包括:所述客戶(hù)端根據(jù)客戶(hù)端唯一標(biāo)識(shí) 碼從服務(wù)器中獲取與所述客戶(hù)端綁定的藍(lán)牙設(shè)備的設(shè)備序列號(hào),對(duì)獲取到的所述設(shè)備序列 號(hào)進(jìn)行哈希計(jì)算,得到第一哈希值,判斷所述第一哈希值和所述藍(lán)牙廣播包中的設(shè)備序列 號(hào)的哈希值是否匹配,如果是,則繼續(xù),否則繼續(xù)搜索藍(lán)牙廣播包。
[0149]所述步驟Q1中,當(dāng)搜索到藍(lán)牙廣播包時(shí),還包括:所述客戶(hù)端根據(jù)客戶(hù)端唯一標(biāo)識(shí) 碼從服務(wù)器中獲取與所述客戶(hù)端綁定的藍(lán)牙設(shè)備的設(shè)備序列號(hào)的哈希值,判斷獲取到的所 述哈希值和所述藍(lán)牙廣播包中的設(shè)備序列號(hào)的哈希值是否匹配,如果是,則繼續(xù),否則繼續(xù) 搜索藍(lán)牙廣播包。
[0150]所述步驟Q2中,所述判斷接收到的所述哈希值是否正確,具體為:所述客戶(hù)端獲取 保存的藍(lán)牙設(shè)備的設(shè)備序列號(hào),對(duì)所述設(shè)備序列號(hào)和所述隨機(jī)數(shù)進(jìn)行哈希計(jì)算,生成第三 哈希值,判斷所述第三哈希值與所述哈希值是否相同,如果是,則執(zhí)行步驟Q3,否則報(bào)錯(cuò),結(jié) 束。
[0151] 所述步驟Q3中,所述客戶(hù)端根據(jù)所述哈希值生成配對(duì)碼,具體為:獲取所述哈希值 的預(yù)設(shè)位上的數(shù)據(jù)作為配對(duì)碼。
[0152] 所述步驟Q3中,所述客戶(hù)端根據(jù)所述哈希值生成配對(duì)碼,具體為:對(duì)所述哈希值進(jìn) 行預(yù)設(shè)運(yùn)算生成配對(duì)碼。
[0153] 所述步驟Q1中,所述建立連接和所述生成隨機(jī)數(shù)之間,還包括:
[0154] 步驟al:所述客戶(hù)端判斷是否已與所述藍(lán)牙設(shè)備進(jìn)行過(guò)配對(duì),如果是,則執(zhí)行步驟 a2,否則生成隨機(jī)數(shù);
[0155] 步驟a2:所述客戶(hù)端獲取所述客戶(hù)端中保存的客戶(hù)端唯一標(biāo)識(shí)碼,將所述客戶(hù)端 唯一標(biāo)識(shí)碼發(fā)送至所述藍(lán)牙設(shè)備進(jìn)行驗(yàn)證;
[0156]步驟a3:所述客戶(hù)端接收并所述藍(lán)牙設(shè)備返回的驗(yàn)證結(jié)果,如果是驗(yàn)證成功,則配 對(duì)成功,記錄已與所述藍(lán)牙設(shè)備進(jìn)行過(guò)配對(duì),如果是驗(yàn)證失敗,則生成隨機(jī)數(shù)。
[0157] 當(dāng)所述客戶(hù)端啟動(dòng)時(shí),獲取并判斷保存的激活標(biāo)識(shí),如果為已激活,則執(zhí)行步驟 Q1,如果為未激活,則跳轉(zhuǎn)至激活界面,接收用戶(hù)選擇的激活請(qǐng)求,根據(jù)用戶(hù)手機(jī)號(hào)將激活 請(qǐng)求短信發(fā)送至服務(wù)器進(jìn)行激活,當(dāng)接收到服務(wù)器返回的激活成功響應(yīng)時(shí),將所述激活標(biāo) 識(shí)置為已激活。
[0158] 所述步驟Q1中,所述與對(duì)應(yīng)的藍(lán)牙設(shè)備建立藍(lán)牙連接后,還包括:所述客戶(hù)端與所 述藍(lán)牙設(shè)備協(xié)商會(huì)話(huà)密鑰。
[0159] 所述協(xié)商會(huì)話(huà)密鑰,具體為:所述客戶(hù)端生成會(huì)話(huà)密鑰,應(yīng)用預(yù)先保存的公鑰對(duì)所 述會(huì)話(huà)密鑰進(jìn)行加密,將加密結(jié)果發(fā)送至所述藍(lán)牙設(shè)備,接收所述客戶(hù)端返回的協(xié)商會(huì)話(huà) 密鑰成功響應(yīng),將所述會(huì)話(huà)密鑰保存。
[0160] 所述步驟Q1中,所述生成隨機(jī)數(shù)并發(fā)送至所述藍(lán)牙設(shè)備,具體包括:所述客戶(hù)端生 成隨機(jī)數(shù),根據(jù)所述隨機(jī)數(shù)生成隨機(jī)數(shù)指令,應(yīng)用所述會(huì)話(huà)密鑰對(duì)所述隨機(jī)數(shù)指令進(jìn)行加 密,得到加密的隨機(jī)數(shù)指令并發(fā)送至所述藍(lán)牙設(shè)備。
[0161] 所述步驟Q4之后,還包括:
[0162] 步驟1:所述客戶(hù)端組織待簽名數(shù)據(jù),根據(jù)所述待簽名數(shù)據(jù)生成簽名指令,將所述 簽名指令發(fā)送至所述藍(lán)牙設(shè)備;
[0163] 步驟2:所述客戶(hù)端接收并判斷所述藍(lán)牙設(shè)備返回的響應(yīng),如果是簽名失敗響應(yīng), 則交易失敗,結(jié)束,如果是簽名成功響應(yīng),則執(zhí)行步驟3;
[0164] 步驟3:所述客戶(hù)端將所述簽名成功響應(yīng)中的簽名結(jié)果發(fā)送至服務(wù)器進(jìn)行驗(yàn)證;
[0165] 步驟4:所述客戶(hù)端接收并判斷所述服務(wù)器返回的驗(yàn)證結(jié)果,如果是成功結(jié)果,則 交易成功,結(jié)束,如果是失敗結(jié)果,則交易失敗,結(jié)束。
[0166] -種實(shí)現(xiàn)安全配對(duì)的客戶(hù)端,包括:
[0167] 搜索模塊,用于打開(kāi)藍(lán)牙連接并搜索藍(lán)牙廣播包;
[0168] 建立連接模塊,用于當(dāng)所述搜索模塊搜索到藍(lán)牙廣播包時(shí),根據(jù)所述藍(lán)牙廣播包 與對(duì)應(yīng)的藍(lán)牙設(shè)備建立藍(lán)牙連接;
[0169] 第一生成模塊,用于當(dāng)所述建立連接模塊建立藍(lán)牙連接完成時(shí),生成隨機(jī)數(shù);
[0170]發(fā)送模塊,用于將所述第一生成模塊生成的隨機(jī)數(shù)發(fā)送至所述藍(lán)牙設(shè)備;向所述 藍(lán)牙設(shè)備發(fā)送配對(duì)請(qǐng)求;
[0171]接收模塊,用于接收所述藍(lán)牙設(shè)備返回的哈希值;接收所述藍(lán)牙設(shè)備返回的配對(duì) 成功信息。
[0172]第一判斷模塊,用于當(dāng)所述接收模塊接收到所述哈希值后,根據(jù)生成的所述隨機(jī) 數(shù),判斷接收到的所述哈希值是否正確,判斷為是時(shí),觸發(fā)第二生成模塊,判斷為否時(shí),報(bào) 錯(cuò),結(jié)束;
[0173]所述第二生成模塊,用于根據(jù)所述哈希值生成配對(duì)碼;
[0174]顯示模塊,用于顯示所述第二生成模塊生成的配對(duì)碼。
[0175]所述客戶(hù)端還包括第二判斷模塊,用于當(dāng)所述搜索模塊搜索到藍(lán)牙廣播包后,根 據(jù)客戶(hù)端唯一標(biāo)識(shí)碼從服務(wù)器中獲取與所述客戶(hù)端綁定的藍(lán)牙設(shè)備的設(shè)備序列號(hào),判斷獲 取到的所述設(shè)備序列號(hào)和所述藍(lán)牙廣播包中的設(shè)備序列號(hào)是否匹配,判斷為是時(shí),觸發(fā)所 述建立連接模塊,判斷為否時(shí),觸發(fā)所述搜索模塊。
[0176]所述客戶(hù)端還包括第三判斷模塊,用于當(dāng)所述搜索模塊搜索到藍(lán)牙廣播包后,根 據(jù)客戶(hù)端唯一標(biāo)識(shí)碼從服務(wù)器中獲取與所述客戶(hù)端綁定的藍(lán)牙設(shè)備的設(shè)備序列號(hào),對(duì)獲取 到的所述設(shè)備序列號(hào)進(jìn)行哈希計(jì)算,得到第一哈希值,判斷所述第一哈希值和所述藍(lán)牙廣 播包中的設(shè)備序列號(hào)的哈希值是否匹配,判斷為是時(shí),觸發(fā)所述建立連接模塊,判斷為否 時(shí),觸發(fā)所述搜索模塊。
[0177]所述客戶(hù)端還包括第四判斷模塊,用于當(dāng)所述搜索模塊搜索到藍(lán)牙廣播包后,根 據(jù)客戶(hù)端唯一標(biāo)識(shí)碼從服務(wù)器中獲取與所述客戶(hù)端綁定的藍(lán)牙設(shè)備的設(shè)備序列號(hào)的哈希 值,判斷獲取到的所述哈希值和所述藍(lán)牙廣播包中的設(shè)備序列號(hào)的哈希值是否匹配,判斷 為是時(shí),觸發(fā)所述建立連接模塊,判斷為否時(shí),觸發(fā)所述搜索模塊。
[0178]所述第一判斷模塊,具體用于獲取保存的藍(lán)牙設(shè)備的設(shè)備序列號(hào),對(duì)所述設(shè)備序 列號(hào)和所述隨機(jī)數(shù)進(jìn)行哈希計(jì)算,生成第三哈希值,判斷所述第三哈希值與所述哈希值是 否相同,判斷為是時(shí),觸發(fā)所述第二生成模塊,判斷為否時(shí),報(bào)錯(cuò),結(jié)束。
[0179]所述第二生成模塊,具體用于獲取所述哈希值的預(yù)設(shè)位上的數(shù)據(jù)作為配對(duì)碼。
[0180]所述第二生成模塊,具體用于對(duì)所述哈希值進(jìn)行預(yù)設(shè)運(yùn)算生成配對(duì)碼。
[0181]所述客戶(hù)端還包括第五判斷模塊、獲取模塊、第六判斷模塊和記錄模塊;
[0182]所述第五判斷模塊,用于當(dāng)所述建立連接模塊建立藍(lán)牙連接完成后,判斷是否已 與所述藍(lán)牙設(shè)備進(jìn)行過(guò)配對(duì),判斷為是時(shí),觸發(fā)所述獲取模塊,判斷為否時(shí),觸發(fā)所述第一 生成模塊;
[0183]所述獲取模塊,用于獲取所述客戶(hù)端中保存的客戶(hù)端唯一標(biāo)識(shí)碼;
[0184]所述發(fā)送模塊,還用于將所述獲取模塊獲取到的所述客戶(hù)端唯一標(biāo)識(shí)碼發(fā)送至所 述藍(lán)牙設(shè)備進(jìn)行驗(yàn)證;
[0185]所述第六判斷模塊,用于接收并所述藍(lán)牙設(shè)備返回的驗(yàn)證結(jié)果,判斷為驗(yàn)證成功 時(shí),觸發(fā)所述記錄模塊,判斷為驗(yàn)證失敗時(shí),觸發(fā)所述第一生成模塊;
[0186] 所述記錄模塊,用于記錄已與所述藍(lán)牙設(shè)備進(jìn)行過(guò)配對(duì)。
[0187]所述客戶(hù)端還包括第七判斷模塊、跳轉(zhuǎn)模塊和設(shè)置模塊;
[0188]所述第七判斷模塊,用于獲取并判斷保存的激活標(biāo)識(shí),判斷為已激活時(shí),觸發(fā)所述 搜索模塊,判斷為未激活時(shí),觸發(fā)所述跳轉(zhuǎn)模塊;
[0189] 所述跳轉(zhuǎn)模塊,用于跳轉(zhuǎn)至激活界面;
[0190] 所述接收模塊,還用于接收用戶(hù)選擇的激活請(qǐng)求;接收服務(wù)器返回的激活成功響 應(yīng);
[0191]所述發(fā)送模塊,還用于根據(jù)用戶(hù)手機(jī)號(hào)將激活請(qǐng)求短信發(fā)送至服務(wù)器進(jìn)行激活;
[0192] 所述設(shè)置模塊,用于當(dāng)所述接收模塊接收到所述服務(wù)器返回的激活成功響應(yīng)時(shí), 將所述激活標(biāo)識(shí)置為已激活。
[0193] 所述客戶(hù)端還包括協(xié)商密鑰模塊,用于與所述藍(lán)牙設(shè)備協(xié)商會(huì)話(huà)密鑰。
[0194] 所述協(xié)商密鑰模塊,具體用于生成會(huì)話(huà)密鑰,應(yīng)用預(yù)先保存的公鑰對(duì)所述會(huì)話(huà)密 鑰進(jìn)行加密,將加密結(jié)果發(fā)送至所述藍(lán)牙設(shè)備,接收所述客戶(hù)端返回的協(xié)商會(huì)話(huà)密鑰成功 響應(yīng),將所述會(huì)話(huà)密鑰保存。
[0195] 所述第一生成模塊,具體用于生成隨機(jī)數(shù),根據(jù)所述隨機(jī)數(shù)生成隨機(jī)數(shù)指令,應(yīng)用 所述會(huì)話(huà)密鑰對(duì)所述隨機(jī)數(shù)指令進(jìn)行加密,得到加密的隨機(jī)數(shù)指令。
[0196] 所述客戶(hù)端還包括第八判斷模塊和驗(yàn)簽?zāi)K;
[0197] 所述發(fā)送模塊,還用于組織待簽名數(shù)據(jù),根據(jù)所述待簽名數(shù)據(jù)生成簽名指令,將所 述簽名指令發(fā)送至所述藍(lán)牙設(shè)備;
[0198] 所述接收模塊,還用于接收所述藍(lán)牙設(shè)備返回的響應(yīng);
[0199] 所述第八判斷模塊,用于判斷所述藍(lán)牙設(shè)備返回的響應(yīng),如果是簽名失敗響應(yīng),則 交易失敗,結(jié)束,如果是簽名成功響應(yīng),則觸發(fā)所述驗(yàn)簽?zāi)K;
[0200] 所述驗(yàn)簽?zāi)K,用于將所述簽名成功響應(yīng)中的簽名結(jié)果發(fā)送至服務(wù)器進(jìn)行驗(yàn)證, 接收并判斷所述服務(wù)器返回的驗(yàn)證結(jié)果,如果是成功結(jié)果,則交易成功,結(jié)束,如果是失敗 結(jié)果,則交易失敗,結(jié)束。
[0201] 本發(fā)明取得的有益效果是:采用本發(fā)明的技術(shù)方法,在配對(duì)過(guò)程中無(wú)需用戶(hù)手動(dòng) 選擇藍(lán)牙設(shè)備,操作簡(jiǎn)便防止出現(xiàn)誤操作,準(zhǔn)確性高,而且在配對(duì)認(rèn)證過(guò)程中加入硬件操作 以及人機(jī)交互,實(shí)現(xiàn)藍(lán)牙設(shè)備間的交互配對(duì)認(rèn)證,提高了配對(duì)的安全性。
【附圖說(shuō)明】
[0202]為了更清楚的說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單的介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本 發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以 根據(jù)這些附圖獲得其他的附圖。
[0203]圖1是本發(fā)明實(shí)施例1提供的一種實(shí)現(xiàn)藍(lán)牙設(shè)備間安全交互配對(duì)認(rèn)證的系統(tǒng)方法 流程圖;
[0204]圖2是本發(fā)明實(shí)施例2提供的一種實(shí)現(xiàn)藍(lán)牙設(shè)備間安全交互配對(duì)認(rèn)證的系統(tǒng)方法 流程圖;
[0205]圖3和圖4是本發(fā)明實(shí)施例3提供的一種實(shí)現(xiàn)藍(lán)牙設(shè)備間安全交互配對(duì)認(rèn)證的系統(tǒng) 方法流程圖;
[0206]圖5是本發(fā)明實(shí)施例4提供的一種實(shí)現(xiàn)藍(lán)牙設(shè)備間安全交互配對(duì)認(rèn)證的系統(tǒng)圖;
[0207] 圖6是本發(fā)明實(shí)施例5提供的一種實(shí)現(xiàn)安全配對(duì)的藍(lán)牙設(shè)備的工作方法流程圖;
[0208] 圖7是本發(fā)明實(shí)施例6提供的一種實(shí)現(xiàn)安全配對(duì)的藍(lán)牙設(shè)備裝置圖;
[0209]圖8是本發(fā)明實(shí)施例7提供的一種實(shí)現(xiàn)安全配對(duì)的客戶(hù)端的工作方法流程圖;
[0210] 圖9是本發(fā)明實(shí)施例8提供的一種實(shí)現(xiàn)安全配對(duì)的客戶(hù)端裝置圖;
[0211] 圖10是本發(fā)明實(shí)施例9提供的客戶(hù)端與藍(lán)牙設(shè)備進(jìn)行交易的具體操作流程圖。
【具體實(shí)施方式】
[0212] 下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;?本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0213]在本實(shí)施例中,客戶(hù)端組織的指令和藍(lán)牙設(shè)備接收到的指令均符合APDU格式,具 體為:CLAINSPIP2LcDataLe,其中CLA為指令類(lèi)別、INS為指令碼、P1、P2為參數(shù)、Lc為 Data的長(zhǎng)度、Le為返回?cái)?shù)據(jù)的長(zhǎng)度。
[0214] 實(shí)施例1
[0215]本發(fā)明實(shí)施例1提供了一種實(shí)現(xiàn)藍(lán)牙設(shè)備間安全交互配對(duì)認(rèn)證的方法,應(yīng)用于藍(lán) 牙設(shè)備和客戶(hù)端組成的系統(tǒng)中,如圖1所示,包括:
[0216]步驟S1:當(dāng)客戶(hù)端搜索到藍(lán)牙廣播包時(shí),根據(jù)藍(lán)牙廣播包與對(duì)應(yīng)的藍(lán)牙設(shè)備建立 藍(lán)牙連接;
[0217] 步驟S2:客戶(hù)端生成隨機(jī)數(shù)并發(fā)送至藍(lán)牙設(shè)備;
[0218]本實(shí)施例中,建立藍(lán)牙連接之后,還包括:客戶(hù)端與藍(lán)牙設(shè)備協(xié)商會(huì)話(huà)密鑰;
[0219]具體為:客戶(hù)端生成會(huì)話(huà)密鑰,應(yīng)用預(yù)先保存的公鑰對(duì)會(huì)話(huà)密鑰進(jìn)行加密,將加密 結(jié)果發(fā)送至藍(lán)牙設(shè)備,藍(lán)牙設(shè)備應(yīng)用預(yù)先保存的私鑰對(duì)接收到的加密結(jié)果進(jìn)行解密,得到 會(huì)話(huà)密鑰并保存,向客戶(hù)端返回協(xié)商會(huì)話(huà)密鑰成功響應(yīng),客戶(hù)端將會(huì)話(huà)密鑰保存,協(xié)商會(huì)話(huà) 密鑰成功;
[0220] 本步驟中,生成隨機(jī)數(shù)并發(fā)送至藍(lán)牙設(shè)備,具體為:客戶(hù)端生成隨機(jī)數(shù),根據(jù)隨機(jī) 數(shù)生成發(fā)送隨機(jī)數(shù)指令,應(yīng)用會(huì)話(huà)密鑰對(duì)發(fā)送隨機(jī)數(shù)指令進(jìn)行加密,得到加密的發(fā)送隨機(jī) 數(shù)指令并發(fā)送至藍(lán)牙設(shè)備。
[0221 ]步驟S3:藍(lán)牙設(shè)備根據(jù)接收到的隨機(jī)數(shù)生成哈希值并保存;
[0222] 本步驟還包括:藍(lán)牙設(shè)備接收到加密的隨機(jī)數(shù)指令后,應(yīng)用會(huì)話(huà)密鑰對(duì)指令進(jìn)行 解密,判斷解密得到的數(shù)據(jù)是否是隨機(jī)數(shù)指令,是則從隨機(jī)數(shù)指令中獲取隨機(jī)數(shù),否則主動(dòng) 斷開(kāi)與客戶(hù)端的藍(lán)牙連接并進(jìn)入省電模式;
[0223]其中,根據(jù)接收到的隨機(jī)數(shù)生成哈希值,具體為:藍(lán)牙設(shè)備獲取保存的藍(lán)牙設(shè)備的 設(shè)備序列號(hào),對(duì)隨機(jī)數(shù)和設(shè)備序列號(hào)進(jìn)行哈希運(yùn)算,得到哈希值。
[0224]步驟S4:藍(lán)牙設(shè)備將哈希值發(fā)送至客戶(hù)端;
[0225]步驟S5:客戶(hù)端根據(jù)生成的隨機(jī)數(shù),判斷接收到的哈希值是否正確,如果是,則執(zhí) 行步驟S6,否則報(bào)錯(cuò),結(jié)束;
[0226]本實(shí)施例中,判斷接收到的哈希值是否正確,具體為:客戶(hù)端獲取保存的藍(lán)牙設(shè)備 的設(shè)備序列號(hào),對(duì)設(shè)備序列號(hào)和隨機(jī)數(shù)進(jìn)行哈希計(jì)算,生成哈希值,判斷生成的哈希值與接 收到的哈希值是否相同,如果是,則根據(jù)接收到的哈希值生成配對(duì)碼并顯示,并向藍(lán)牙設(shè)備 發(fā)送配對(duì)請(qǐng)求,否則報(bào)錯(cuò),結(jié)束;
[0227]其中,根據(jù)哈希值生成配對(duì)碼,具體為以下操作中的一個(gè):
[0228] -、獲取哈希值的預(yù)設(shè)位上的數(shù)據(jù)作為配對(duì)碼;
[0229] 二、對(duì)哈希值進(jìn)行預(yù)設(shè)運(yùn)算生成配對(duì)碼。
[0230]步驟S6:客戶(hù)端根據(jù)哈希值生成配對(duì)碼并顯示,向藍(lán)牙設(shè)備發(fā)送配對(duì)請(qǐng)求;
[0231]步驟S7:藍(lán)牙設(shè)備接收到配對(duì)請(qǐng)求后,根據(jù)保存的哈希值生成配對(duì)碼并提示用戶(hù) 進(jìn)行配對(duì)碼比對(duì);
[0232]本實(shí)施例中,對(duì)應(yīng)步驟S5中的生成配對(duì)碼操作,本步驟中根據(jù)保存的哈希值生成 配對(duì)碼,具體為以下操作中的一個(gè):
[0233] -、獲取哈希值的預(yù)設(shè)位上的數(shù)據(jù)作為配對(duì)碼;
[0234] 二、對(duì)哈希值進(jìn)行預(yù)設(shè)運(yùn)算生成配對(duì)碼。
[0235]步驟S8:藍(lán)牙設(shè)備檢測(cè)按鍵狀態(tài),當(dāng)檢測(cè)到確認(rèn)鍵按下時(shí),配對(duì)成功,進(jìn)入交易流 程,等待接收客戶(hù)端發(fā)送的指令,當(dāng)檢測(cè)到取消鍵按下時(shí),配對(duì)失敗,結(jié)束;
[0236] 進(jìn)一步的,步驟S1與步驟S2之間,還包括:
[0237]步驟al:客戶(hù)端判斷是否已與藍(lán)牙設(shè)備進(jìn)行過(guò)配對(duì),如果是,則執(zhí)行步驟a2,否則 執(zhí)行步驟S2;
[0238]步驟a2:客戶(hù)端獲取客戶(hù)端中保存的客戶(hù)端唯一標(biāo)識(shí)碼,將客戶(hù)端唯一標(biāo)識(shí)碼發(fā) 送至藍(lán)牙設(shè)備進(jìn)行驗(yàn)證;
[0239]步驟a3:藍(lán)牙設(shè)備獲取藍(lán)牙設(shè)備中保存的客戶(hù)端唯一標(biāo)識(shí)碼,判斷獲取到的客戶(hù) 端唯一標(biāo)識(shí)碼與接收到的客戶(hù)端唯一標(biāo)識(shí)碼是否相同,如果是,則配對(duì)成功,否則執(zhí)行步驟 S2;
[0240]對(duì)應(yīng)的,步驟S8中,當(dāng)配對(duì)成功時(shí),還包括:藍(lán)牙設(shè)備將接收到的客戶(hù)端唯一標(biāo)識(shí) 碼保存至藍(lán)牙設(shè)備中。
[0241] 實(shí)施例2
[0242]本發(fā)明實(shí)施例2提供了一種實(shí)現(xiàn)藍(lán)牙設(shè)備間安全交互配對(duì)認(rèn)證的方法,應(yīng)用于藍(lán) 牙設(shè)備和客戶(hù)端組成的系統(tǒng)中,其中,藍(lán)牙設(shè)備具體為具有藍(lán)牙功能的智能密鑰設(shè)備,客戶(hù) 端是安裝在移動(dòng)設(shè)備(手機(jī)、pad等具有藍(lán)牙功能的終端設(shè)備)上的用于交易的應(yīng)用程序,如 圖2所示,在客戶(hù)端進(jìn)入需要連接藍(lán)牙設(shè)備進(jìn)行交易簽名時(shí),執(zhí)行以下操作:
[0243]步驟101: