識設(shè)置為已配對。
[0354] 實(shí)施例4
[0355] 本發(fā)明實(shí)施例4是在實(shí)施例1、2、3的基礎(chǔ)上提供的一種實(shí)現(xiàn)藍(lán)牙設(shè)備間安全交互 配對認(rèn)證的系統(tǒng),如圖5所示,包括:客戶端和藍(lán)牙設(shè)備;
[0356]客戶端包括搜索模塊301、建立連接模塊302、第一接收模塊303、第一生成模塊 304、第一發(fā)送模塊305和第一顯不模塊306;
[0357]搜索模塊301,用于搜索藍(lán)牙廣播包;
[0358]建立連接模塊302,用于當(dāng)搜索模塊301搜索到藍(lán)牙廣播包時(shí),根據(jù)藍(lán)牙廣播包與 對應(yīng)的藍(lán)牙設(shè)備建立藍(lán)牙連接;
[0359]第一接收模塊303,用于接收藍(lán)牙設(shè)備發(fā)送的哈希值;
[0360]第一生成模塊304,用于當(dāng)建立連接模塊302建立藍(lán)牙連接后,生成隨機(jī)數(shù);當(dāng)?shù)谝?接收模塊303接收到哈希值后,根據(jù)哈希值生成配對碼;
[0361]第一發(fā)送模塊305,用于將第一生成模塊304生成的隨機(jī)數(shù)發(fā)送至藍(lán)牙設(shè)備;當(dāng)?shù)?一顯示模塊306顯示配對碼后,向藍(lán)牙設(shè)備發(fā)送配對請求;
[0362]第一顯示模塊306,用于顯示第一生成模塊304生成的配對碼;
[0363]藍(lán)牙設(shè)備包括第二接收模塊401、第二生成模塊402、存儲模塊403、第二發(fā)送模塊 404、第二顯示模塊405和檢測模塊406;
[0364]第二接收模塊401,用于接收客戶端發(fā)送的配對請求或隨機(jī)數(shù);
[0365]第二生成模塊402,用于根據(jù)第二接收模塊401接收到的隨機(jī)數(shù)生成哈希值;當(dāng)?shù)?二接收模塊401接收到客戶端發(fā)送的配對請求時(shí),根據(jù)存儲模塊403存儲的哈希值生成配對 碼;
[0366]存儲模塊403,用于保存第二生成模塊402生成的哈希值;
[0367]第二發(fā)送模塊404,用于將第二生成模塊402生成的哈希值發(fā)送至客戶端;
[0368]第二顯示模塊405,用于顯示第二生成模塊402生成的配對碼;
[0369]檢測模塊406,用于當(dāng)?shù)诙@示模塊405顯示配對碼后,檢測按鍵狀態(tài),當(dāng)檢測到確 認(rèn)鍵按下時(shí),配對成功,當(dāng)檢測到取消鍵按下時(shí),配對失敗。
[0370]本實(shí)施例中,客戶端還包括第一協(xié)商模塊,用于與藍(lán)牙設(shè)備協(xié)商會話密鑰;
[0371]藍(lán)牙設(shè)備還包括第二協(xié)商模塊,用于與客戶端協(xié)商會話密鑰。
[0372]其中,第一協(xié)商模塊,具體包括生成單元、加密單元、第一發(fā)送單元、第一接收單元 和第一存儲單元;
[0373]生成單元,用于生成會話密鑰;
[0374]加密單元,用于應(yīng)用預(yù)先保存的公鑰對生成單元生成的會話密鑰進(jìn)行加密;
[0375]第一發(fā)送單元,用于將加密單元得到的加密結(jié)果發(fā)送至藍(lán)牙設(shè)備;
[0376]第一接收單元,用于接收藍(lán)牙設(shè)備返回的協(xié)商會話密鑰成功響應(yīng);
[0377]第一存儲單元,用于當(dāng)?shù)谝唤邮諉卧邮盏絽f(xié)商會話密鑰成功響應(yīng)時(shí),將生成單 元生成的會話密鑰保存;
[0378]第二協(xié)商模塊,具體包括第二接收單元、解密單元、第二存儲單元和第二發(fā)送單 元;
[0379]第二接收單元,用于接收客戶端發(fā)送的加密結(jié)果;
[0380]解密單元,用于應(yīng)用預(yù)先保存的私鑰對第二接收單元接收到的解密結(jié)果進(jìn)行解 密;
[0381]第二存儲單元,用于將解密單元解密得到的會話密鑰保存;
[0382]第二發(fā)送單元,用于當(dāng)存儲單元存儲完成會話密鑰后,向客戶端返回協(xié)商會話密 鑰成功響應(yīng)。
[0383]本實(shí)施例中,第一生成模塊304,具體用于生成隨機(jī)數(shù),根據(jù)隨機(jī)數(shù)生成發(fā)送隨機(jī) 數(shù)指令,應(yīng)用會話密鑰對發(fā)送隨機(jī)數(shù)指令進(jìn)行加密,得到加密的發(fā)送隨機(jī)數(shù)指令;
[0384]第二接收模塊401,用于接收客戶端發(fā)送的加密的發(fā)送隨機(jī)數(shù)指令;
[0385]藍(lán)牙設(shè)備還包括解密模塊、第一判斷模塊、獲取模塊和斷開模塊;
[0386]解密模塊,用于應(yīng)用會話密鑰對第二接收模塊401接收到的發(fā)送隨機(jī)數(shù)指令進(jìn)行 解密;
[0387]第一判斷模塊,用于判斷解密模塊解密得到的數(shù)據(jù)是否是隨機(jī)數(shù)指令;
[0388]獲取模塊,用于當(dāng)?shù)谝慌袛嗄K判斷為是時(shí),從隨機(jī)數(shù)指令中獲取隨機(jī)數(shù);
[0389]斷開模塊,用于當(dāng)?shù)谝慌袛嗄K判斷為否時(shí),主動斷開與客戶端的藍(lán)牙連接并進(jìn) 入省電模式。
[0390]本實(shí)施例中,第二生成模塊402,具體用于獲取保存的藍(lán)牙設(shè)備的設(shè)備序列號,對 隨機(jī)數(shù)和設(shè)備序列號進(jìn)行哈希運(yùn)算,得到哈希值。
[0391]客戶端還包括第二判斷模塊,用于當(dāng)?shù)谝唤邮漳K303接收到哈希值后,根據(jù)保存 的藍(lán)牙設(shè)備的設(shè)備序列號和隨機(jī)數(shù)驗(yàn)證哈希值是否正確,判斷為是時(shí),觸發(fā)第一生成模塊 304,判斷為否時(shí),結(jié)束。
[0392]進(jìn)一步的,第一生成模塊304,具體用于獲取哈希值的預(yù)設(shè)位上的數(shù)據(jù)作為配對 碼;
[0393]第二生成模塊402,具體用于獲取哈希值的預(yù)設(shè)位上的數(shù)據(jù)作為配對碼。
[0394]除此之外,第一生成模塊304,具體用于對哈希值進(jìn)行預(yù)設(shè)運(yùn)算生成配對碼;
[0395]第二生成模塊402,具體用于對哈希值進(jìn)行預(yù)設(shè)運(yùn)算生成配對碼。
[0396]本實(shí)施例中,客戶端還包括配對模塊,用于判斷是否已與藍(lán)牙設(shè)備進(jìn)行過配對,判 斷為是時(shí),觸發(fā)第一發(fā)送模塊305,判斷為否時(shí),觸發(fā)第一生成模塊304;
[0397]第一發(fā)送模塊305,還用于獲取客戶端中保存的客戶端唯一標(biāo)識碼,將客戶端唯一 標(biāo)識碼發(fā)送至藍(lán)牙設(shè)備進(jìn)行驗(yàn)證;
[0398]第二接收模塊401,還用于接收客戶端發(fā)送的客戶端唯一標(biāo)識碼;
[0399]藍(lán)牙設(shè)備,還包括第三判斷模塊和存儲模塊403;
[0400]第三判斷模塊,用于當(dāng)?shù)诙邮漳K401接收到客戶端唯一標(biāo)識碼時(shí),獲取藍(lán)牙設(shè) 備中保存的客戶端唯一標(biāo)識碼,判斷獲取到的客戶端唯一標(biāo)識碼與接收到的客戶端唯一標(biāo) 識碼是否相同,判斷為是時(shí),觸發(fā)存儲模塊403,判斷為否時(shí),觸發(fā)第一生成模塊304;
[0401]存儲模塊403,還用于將客戶端唯一標(biāo)識碼保存至藍(lán)牙設(shè)備中。
[0402]本實(shí)施例中,第一發(fā)送模塊305,還用于組織待簽名數(shù)據(jù),根據(jù)待簽名數(shù)據(jù)生成簽 名指令,將簽名指令發(fā)送至藍(lán)牙設(shè)備;還用于將簽名成功響應(yīng)中的簽名結(jié)果,發(fā)送至服務(wù)器 進(jìn)行驗(yàn)證;
[0403]第二接收模塊401,還用于接收客戶端發(fā)送的簽名指令;
[0404]第二顯示模塊405,還用于從第二接收模塊401接收到的簽名指令中獲取待簽名數(shù) 據(jù),顯示待簽名數(shù)據(jù);
[0405]檢測模塊406,還用于當(dāng)?shù)诙@示模塊405顯示待簽名數(shù)據(jù)后,檢測按鍵狀態(tài);
[0406]第二發(fā)送模塊404,還用于當(dāng)檢測模塊406檢測到確認(rèn)鍵按下時(shí),對待簽名數(shù)據(jù)執(zhí) 行簽名操作,根據(jù)簽名結(jié)果生成簽名成功響應(yīng)并發(fā)送至客戶端;當(dāng)檢測模塊406檢測到取消 鍵按下時(shí),向客戶端發(fā)送簽名失敗響應(yīng);
[0407]第一接收模塊303,還用于接收藍(lán)牙設(shè)備發(fā)送的簽名響應(yīng);還用于接收服務(wù)器返回 的驗(yàn)證結(jié)果;
[0408]客戶端還包括第五判斷模塊,用于判斷第一接收模塊303接收到的簽名響應(yīng),如果 是簽名失敗響應(yīng),則交易失敗,結(jié)束,如果是簽名成功響應(yīng),則觸發(fā)第一發(fā)送模塊305;判斷 服務(wù)器返回的驗(yàn)證結(jié)果,如果是成功結(jié)果,則交易成功,結(jié)束,如果是失敗結(jié)果,則交易失 敗,結(jié)束。
[0409] 實(shí)施例5
[0410]本發(fā)明實(shí)施例5提供了一種實(shí)現(xiàn)安全配對的藍(lán)牙設(shè)備的工作方法,如圖6所示,包 括:
[0411] 步驟501:藍(lán)牙設(shè)備啟動,組織并廣播藍(lán)牙廣播包,等待與客戶端建立藍(lán)牙連接,當(dāng) 藍(lán)牙設(shè)備與客戶端建立藍(lán)牙連接時(shí),執(zhí)行步驟502;
[0412] 其中,組織并廣播藍(lán)牙廣播包,具體為以下操作的一種:
[0413] -、藍(lán)牙設(shè)備根據(jù)藍(lán)牙設(shè)備的設(shè)備序列號組成藍(lán)牙廣播包,廣播藍(lán)牙廣播包;
[0414]二、藍(lán)牙設(shè)備從藍(lán)牙設(shè)備中獲取內(nèi)部保存的設(shè)備序列號,對設(shè)備序列號進(jìn)行哈希 計(jì)算,生成哈希值,根據(jù)哈希值組成藍(lán)牙廣播包,廣播藍(lán)牙廣播包;
[0415] 三、藍(lán)牙設(shè)備從藍(lán)牙設(shè)備中獲取內(nèi)部保存的設(shè)備序列號的哈希值,根據(jù)哈希值組 成藍(lán)牙廣播包,廣播藍(lán)牙廣播包。
[0416] 步驟502:藍(lán)牙設(shè)備判斷是否接收到客戶端發(fā)送的隨機(jī)數(shù),如果是,則根據(jù)隨機(jī)數(shù) 生成哈希值并保存,并將哈希值發(fā)送至客戶端,執(zhí)行步驟503,否則報(bào)錯(cuò),結(jié)束;
[0417] 本步驟中,根據(jù)隨機(jī)數(shù)生成哈希值,具體為:藍(lán)牙設(shè)備獲取保存的藍(lán)牙設(shè)備的設(shè)備 序列號,對隨機(jī)數(shù)和設(shè)備序列號進(jìn)行哈希運(yùn)算,得到哈希值。
[0418] 步驟503:藍(lán)牙設(shè)備接收客戶端發(fā)送的配對請求,根據(jù)保存的哈希值生成配對碼并 顯不;
[0419] 其中,根據(jù)保存的哈希值生成配對碼,具體為以下操作的一種:
[0420] -、獲取哈希值的預(yù)設(shè)位上的數(shù)據(jù)作為配對碼;
[0421 ]二、對哈希值進(jìn)行預(yù)設(shè)運(yùn)算生成配對碼。
[0422] 步驟504:藍(lán)牙設(shè)備檢測按鍵狀態(tài),當(dāng)檢測到確認(rèn)鍵按下時(shí),配對成功,進(jìn)入交易流 程,等待接收客戶端發(fā)送的指令,當(dāng)檢測到取消鍵按下時(shí),配對失敗,結(jié)束。
[0423] 本實(shí)施例中,步驟502之前還包括:藍(lán)牙設(shè)備接收客戶端發(fā)送的客戶端唯一標(biāo)識 碼,獲取藍(lán)牙設(shè)備中保存的客戶端唯一標(biāo)識碼,判斷獲取到的客戶端唯一標(biāo)識碼與接收到 的客戶端唯一標(biāo)識碼是否相同,如果是,則配對成功,否則執(zhí)行步驟502;
[0424] 當(dāng)藍(lán)牙設(shè)備接收客戶端發(fā)送的客戶端唯一標(biāo)識碼后,還包括:藍(lán)牙設(shè)備判斷是否 已與客戶端進(jìn)行過配對,如果是,則繼續(xù),否則執(zhí)行步驟502;
[0425] 步驟504中,當(dāng)檢測到確認(rèn)鍵按下時(shí),還包括:將接收到的客戶端唯一標(biāo)識碼保存 至藍(lán)牙設(shè)備中;
[0426] 其中,將接收到的客戶端唯一標(biāo)識碼保存至藍(lán)牙設(shè)備中,具體為:
[0427] 藍(lán)牙設(shè)備判斷藍(lán)牙設(shè)備中是否存在其他已配對的客戶端唯一標(biāo)識碼,如果是,則 將其他已配對的客戶端唯一標(biāo)識碼刪除,并將客戶端唯一標(biāo)識碼作為已配對的客戶端唯一 標(biāo)識碼保存,否則直接將客戶端唯一標(biāo)識碼作為已配對的客戶端唯一標(biāo)識碼保存;
[0428] 或者,藍(lán)牙設(shè)備判斷藍(lán)牙設(shè)備中已配對的客戶端唯一標(biāo)識碼的個(gè)數(shù)是否達(dá)到預(yù)設(shè) 值,如果是,則將其中一個(gè)已配對的客戶端唯一標(biāo)識碼刪除,并將客戶端唯一標(biāo)識碼作為已 配對的客戶端唯一標(biāo)識碼保存,否則直接將客戶端唯一標(biāo)識碼作為已配對的客戶端唯一標(biāo) 識碼保存。
[0429] 本實(shí)施例中,步驟501中,藍(lán)牙設(shè)備與客戶端建立藍(lán)牙連接后,還包括:藍(lán)牙設(shè)備與 客戶端協(xié)商會話密鑰,具體為:藍(lán)牙設(shè)備接收客戶端發(fā)送的加密結(jié)果,應(yīng)用預(yù)先保存的私鑰 對加密結(jié)果進(jìn)行解密,得到會話密鑰并保存,并向客戶端返回協(xié)商會話密鑰成功響應(yīng);
[0430] 對應(yīng)的,步驟502中,判斷是否接收到客戶端發(fā)送的隨機(jī)數(shù),具體包括:藍(lán)牙設(shè)備接 收客戶端發(fā)送的指令,應(yīng)用會話密鑰對指令進(jìn)行解密,判斷解密得到的數(shù)據(jù)是否為隨機(jī)數(shù) 指令,如果是,則從隨機(jī)數(shù)指令中獲取隨機(jī)數(shù),否則主動斷開與客戶端的藍(lán)牙連接并進(jìn)入省 電模式。
[0431 ] 實(shí)施例6
[0432] 本發(fā)明實(shí)施例6是在實(shí)施例5的基礎(chǔ)上提供的一種實(shí)現(xiàn)安全配對的藍(lán)牙設(shè)備,如圖 7所示,包括:
[0433] 組織廣播模塊601,用于當(dāng)藍(lán)牙設(shè)備啟動時(shí),組織并廣播藍(lán)牙廣播包;
[0434] 藍(lán)牙連接模塊602,用于與客戶端建立藍(lán)牙連接;
[0435] 第一判斷模塊603,用于與客戶端建立藍(lán)牙連接后,判斷是否接收到客戶端發(fā)送的 隨機(jī)數(shù),判斷為是時(shí),觸發(fā)處理模塊604,判斷為否時(shí),報(bào)錯(cuò),結(jié)束;
[0436] 處理模塊604,用于根據(jù)隨機(jī)數(shù)生成哈希值并保存;
[0437] 發(fā)送模塊605,用于將處理模塊604得到的哈希值發(fā)送至客戶端;
[0438] 接收模塊606,用于接收客戶端發(fā)送的配對請求;當(dāng)配對成功時(shí),接收客戶端發(fā)送 的指令;
[0439]顯示模塊607,用于當(dāng)接收模塊606接收到配對請求后,根據(jù)處理模塊604保存的哈 希值生成配對碼并顯示;
[0440] 檢測模塊608,用于當(dāng)顯示模塊607顯示配對碼后,檢測按鍵狀態(tài),當(dāng)檢測到確認(rèn)鍵 按下時(shí),配對成功,當(dāng)檢測到取消鍵按下時(shí),配對失敗。
[0441]其中,組織廣播模塊601,具體用于根據(jù)藍(lán)牙設(shè)備的設(shè)備序列號組成藍(lán)牙廣播包, 廣播藍(lán)牙廣播包;
[0442]或者,組織廣播模塊601,具體用于從藍(lán)牙設(shè)備中獲取內(nèi)部保存的設(shè)備序列號,對 設(shè)備序列號進(jìn)行哈希計(jì)算,生成哈希值,根據(jù)哈希值組成藍(lán)牙廣播包,廣播藍(lán)牙廣播包。 [0443]或者,組織廣播模塊601,具體用于從藍(lán)牙設(shè)備中獲取內(nèi)部保存的設(shè)備序列號的哈 希值,根據(jù)哈希值組成藍(lán)牙廣播包,廣播藍(lán)牙廣播包。
[0444]本實(shí)施例中,處理模塊604,具體用于獲取保存的藍(lán)牙設(shè)備的設(shè)備序列號,對隨機(jī) 數(shù)和設(shè)備序列號進(jìn)行哈希運(yùn)算,得到哈希值。
[0445]顯示模塊607,具體用于當(dāng)接收模塊606接收到配對請求后,獲取處理模塊604保存 的哈希值的預(yù)設(shè)位上的數(shù)據(jù)作為配對碼并顯示;或者,顯示模塊607,具體用于當(dāng)接收模塊 606接收到配對請求后,對處理模塊604保存的哈希值進(jìn)行預(yù)設(shè)運(yùn)算生成配對碼并顯示。 [0446]本實(shí)施例中,藍(lán)牙設(shè)備還包括第二判斷模塊、獲取模塊和存儲模塊;
[0447] 接收模塊606,還用于接收客戶端發(fā)送的客戶端唯一標(biāo)識碼;
[0448] 獲取模塊,用于獲取藍(lán)牙設(shè)備中保存的客戶端唯一標(biāo)識碼;
[0449] 第二判斷模塊,用于判斷獲取到的客戶端唯一標(biāo)識碼與接收到的客戶端唯一標(biāo)識 碼是否相同,判斷為是時(shí),配對成功,判斷為否時(shí),觸發(fā)第一判斷模塊603;
[0450] 存儲模塊,用于當(dāng)檢測模塊608檢測到確認(rèn)鍵按下時(shí),將接收到的客戶端唯一標(biāo)識 碼保存至藍(lán)牙設(shè)備中。
[0451] 進(jìn)一步的,藍(lán)牙設(shè)備還包括第三判斷模塊,用于當(dāng)接收模塊606接收到客戶端發(fā)送 的客戶端唯一標(biāo)識碼后,判斷是否已與客戶端進(jìn)行過配對,判斷為是時(shí),觸發(fā)獲取模塊,判 斷為否時(shí),觸發(fā)第一判斷模塊603。
[0452]存儲模塊,具體用于判斷藍(lán)牙設(shè)備中是否存在其他已配對的客戶端唯一標(biāo)識碼, 判斷為是時(shí),將其他已配對的客戶端唯一標(biāo)識碼刪除,并將接收到的客戶端唯一標(biāo)識碼作 為已配對的客戶端唯一標(biāo)識碼保存,判斷為否時(shí),直接將接收到的客戶端唯一標(biāo)識碼作為 已配對的客戶端唯一標(biāo)識碼保存;
[0453] 或者,存儲模塊,具體用于判斷藍(lán)牙設(shè)備中已配對的客戶端唯一標(biāo)識碼的個(gè)數(shù)是 否達(dá)到預(yù)設(shè)值,判斷為是時(shí),將其中一個(gè)已配對的客戶端唯一標(biāo)識碼刪除,并將接收到的客 戶端唯一標(biāo)識碼作為已配對的客戶端唯一標(biāo)識碼保存,判斷為否時(shí),直接將接收到的客戶 端唯一標(biāo)識碼作為已配對的客戶端唯一標(biāo)識碼保存。
[0454]更進(jìn)一步的,藍(lán)牙設(shè)備還包括:協(xié)商密鑰模塊,用于與客戶端協(xié)商會話密鑰,具體 用于接收客戶端發(fā)送的加密結(jié)果,應(yīng)用預(yù)先保存的私鑰對加密結(jié)果進(jìn)行解密,得到會話密 鑰并保存,并向客戶端返回協(xié)商會話密鑰成功響應(yīng)。
[0455] 第一判斷模塊603,具體用于接收客戶端發(fā)送的指令,應(yīng)用會話密鑰對指令進(jìn)行解 密,判斷解密得到的數(shù)據(jù)是否為隨機(jī)數(shù)指令,判斷為是時(shí),從隨機(jī)數(shù)指令中獲取隨機(jī)數(shù),判 斷為否時(shí),主動斷開與客戶端的藍(lán)牙連接并進(jìn)入省電模式。
[0456]本實(shí)施例中,藍(lán)牙設(shè)備還包括簽名模塊;
[0457] 接收模塊606,還用于接收客戶端發(fā)送的簽名指令;
[0458]顯示模塊607,還用于從簽名指令中獲取待簽名數(shù)據(jù),顯示待簽名數(shù)據(jù);
[0459] 檢測模塊608,還用于當(dāng)顯示模塊607顯示待簽名數(shù)據(jù)后,檢測按鍵狀態(tài),當(dāng)檢測到 確認(rèn)鍵按下時(shí),觸發(fā)簽名模塊,當(dāng)檢測到取消鍵按下時(shí),向客戶端發(fā)送簽名失敗響應(yīng);
[0460]簽名模塊,用于對待簽名數(shù)據(jù)執(zhí)行簽名操作,根據(jù)簽名結(jié)果生成簽名成功響應(yīng)并 發(fā)送至客戶端。
[0461 ] 實(shí)施例7
[0462]本發(fā)明實(shí)施例7提供了一種實(shí)現(xiàn)安全配對的客戶端的工作方法,如圖8所示,包括:
[0463]步驟701:客戶端打開藍(lán)牙連接并搜索藍(lán)牙廣播包,當(dāng)搜索到藍(lán)牙廣播包時(shí),根據(jù) 藍(lán)牙廣播包與對應(yīng)的藍(lán)牙設(shè)備建立藍(lán)牙連接,生成隨機(jī)數(shù)并發(fā)送至藍(lán)牙設(shè)備;
[0464]本實(shí)施例中,當(dāng)搜索藍(lán)牙廣播包時(shí),執(zhí)行以下操作中的一種:
[0465] -、客戶端根據(jù)客戶端唯一標(biāo)識碼從服務(wù)器中獲取與客戶端綁定的藍(lán)牙設(shè)備的設(shè) 備序列號,判斷獲取到的設(shè)備序列號和藍(lán)牙廣播包中的設(shè)備序列號是否匹配,如果是,則繼 續(xù),否則繼續(xù)搜索藍(lán)牙廣播包;
[0466]二、客戶端根據(jù)客戶端唯一標(biāo)識碼從服務(wù)器中獲取與客戶端綁定的藍(lán)牙設(shè)備的設(shè) 備序列號,對獲取到的設(shè)備序列號進(jìn)行哈希計(jì)算,得到第一哈希值,判斷第一哈希值和藍(lán)牙 廣播包中的設(shè)備序列號的哈希值是否匹配,如果是,則繼續(xù),否則繼續(xù)搜索藍(lán)牙廣播包;
[0467]三、客戶端根據(jù)客戶端唯一標(biāo)識碼從服務(wù)器中獲取與客戶端綁定的藍(lán)牙設(shè)備的設(shè) 備序列號的哈希值,判斷獲取到的哈希值和藍(lán)牙廣播包中的設(shè)備序列號的哈希值是否匹 配,如果是,則繼續(xù),否則繼續(xù)搜索藍(lán)牙廣播包。
[0468] 步驟702:客戶端接收藍(lán)牙設(shè)備返回的哈希值,根據(jù)生成的隨機(jī)數(shù),判斷接收到的 哈希值是否正確,如果是,則執(zhí)行步驟703,否則報(bào)錯(cuò),結(jié)束;
[0469] 本實(shí)施例中,接收到的哈希值為藍(lán)牙設(shè)備對隨機(jī)數(shù)進(jìn)行計(jì)算所得;
[0470]其中,根據(jù)生成的隨機(jī)數(shù),判斷接收到的哈希值是否正確,具體為:客戶端獲取保 存的藍(lán)牙設(shè)備的設(shè)備序列號,對設(shè)備序列號和隨機(jī)數(shù)進(jìn)行哈希計(jì)算,生成第三哈希值,判斷 第三哈希值與哈希值是否相同,如果是,則執(zhí)行步驟703,否則報(bào)錯(cuò),結(jié)束。
[0471]步驟703:客戶端根據(jù)哈希值生成配對碼并顯示,并向藍(lán)牙設(shè)備發(fā)送配對請求;
[0472] 本實(shí)施例中,根據(jù)哈希值生成配對碼,具體為以下操作的一種:
[0473] -、獲取哈希值的預(yù)設(shè)位上的數(shù)據(jù)作為配對碼;
[0474] 二、對哈希值進(jìn)行預(yù)設(shè)運(yùn)算生成配對碼。
[0475] 步驟704:客戶端接收藍(lán)牙設(shè)備返回的配對成功信息,進(jìn)入交易流程。
[0476] 本實(shí)施例中,步驟701中,建立連接和生成隨機(jī)數(shù)之間,還包括:
[0477] 步驟al:客戶端判斷是否已與藍(lán)牙設(shè)備進(jìn)行過配對,如果是,則執(zhí)行步驟a2,否則 生成隨機(jī)數(shù);
[0478] 步驟a2:客戶端獲取客戶端中保存的客戶端唯一標(biāo)識碼,將客戶端唯一標(biāo)識碼發(fā) 送至藍(lán)牙設(shè)備進(jìn)行驗(yàn)證;
[0479]步驟a3:客戶端接收并藍(lán)牙設(shè)備返回的驗(yàn)證結(jié)果,如果是驗(yàn)證成功,則配對成功, 記錄已與藍(lán)牙設(shè)備進(jìn)行過配對,如果是驗(yàn)證失敗,則生成隨機(jī)數(shù)。
[0480]本實(shí)施例還包括當(dāng)客戶端啟動時(shí),獲取并判斷保存的激活標(biāo)識,如果為已激活,則 執(zhí)行步驟701,如果為未激活,則跳轉(zhuǎn)至激活界面,接收用戶選擇的激活請求,根據(jù)用戶手機(jī) 號將激活請求短信發(fā)送至服務(wù)器進(jìn)行激活,當(dāng)接收到服務(wù)器返回的激活成功響應(yīng)時(shí),將激 活標(biāo)識置為已激活。
[0481 ]其中,步驟701中,與對應(yīng)的藍(lán)牙設(shè)備建立藍(lán)牙連接后,還包括:客戶端與藍(lán)牙設(shè)備 協(xié)商會話密鑰,具體為:客戶端生成會話密鑰,應(yīng)用預(yù)先保存的公鑰對會話密鑰進(jìn)行加密, 將加密結(jié)果發(fā)送至藍(lán)牙設(shè)備,接收客戶端返回的協(xié)商會話密鑰成功響應(yīng),將會話密鑰保存;
[0482] 對應(yīng)的,步驟701中,生成隨機(jī)數(shù)并發(fā)送至藍(lán)牙設(shè)備,具體包括:客戶端生成隨機(jī) 數(shù),根據(jù)隨機(jī)數(shù)生成隨機(jī)數(shù)指令,應(yīng)用會話密鑰對隨機(jī)數(shù)指令進(jìn)行加密,得到加密的隨機(jī)數(shù) 指令并發(fā)送至藍(lán)牙設(shè)備。
[0483] 實(shí)施例8
[0484] 本發(fā)明實(shí)施例8是在實(shí)施例7的基礎(chǔ)上提供的一種實(shí)現(xiàn)安全配對的客戶端,如圖9 所示,包括:
[0485] 搜索模塊801,用于打開藍(lán)牙連接并搜索藍(lán)牙廣播包;
[0486