一種智能密鑰設(shè)備的工作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及信息安全領(lǐng)域,尤其涉及一種智能密鑰設(shè)備的工作方法。
【背景技術(shù)】
[0002] 隨著互聯(lián)網(wǎng)和電子商務(wù)的快速發(fā)展,網(wǎng)上銀行(簡(jiǎn)稱(chēng)網(wǎng)銀)在線交易金額不斷擴(kuò) 大,網(wǎng)絡(luò)信息安全問(wèn)題日益凸顯,消費(fèi)者也越來(lái)越關(guān)注網(wǎng)上交易的安全問(wèn)題。在現(xiàn)有技術(shù) 中,可以利用動(dòng)態(tài)口令或USB Key (智能密鑰設(shè)備)進(jìn)行網(wǎng)上交易,進(jìn)行網(wǎng)上交易時(shí)需要每 次都輸入動(dòng)態(tài)口令,過(guò)程太過(guò)復(fù)雜,而后則出現(xiàn)了快捷支付的方式,現(xiàn)有技術(shù)中快捷支付過(guò) 程中需要使用短信認(rèn)證碼,如用戶如丟失手機(jī)則可能出現(xiàn)惡意者利用該手機(jī)以用戶名義進(jìn) 行網(wǎng)上交易的情形,這會(huì)給用戶造成無(wú)法挽回的損失,所以現(xiàn)有技術(shù)中的利用短信認(rèn)證碼 進(jìn)行快捷支付是非常不安全的,且每次都需輸入短信也非常不便捷。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明的目的是為了克服現(xiàn)有技術(shù)的不足,提供一種智能密鑰設(shè)備的工作方法。
[0004] 本發(fā)明提供了一種智能密鑰設(shè)備的工作方法,包括:
[0005] 步驟Sl :智能密鑰設(shè)備上電,進(jìn)行初始化;
[0006] 步驟S2 :當(dāng)所述智能密鑰設(shè)備接收到上位機(jī)發(fā)送的枚舉描述符命令時(shí),所述智能 密鑰設(shè)備設(shè)置描述符并將其返回給所述上位機(jī);
[0007] 步驟S3 :當(dāng)所述智能密鑰設(shè)備接收到上位機(jī)發(fā)送的命令,判斷所述命令的類(lèi)型, 如為注冊(cè)請(qǐng)求命令則執(zhí)行步驟S4,如為認(rèn)證請(qǐng)求命令則執(zhí)行步驟S7,如為其他命令則根據(jù) 所述命令執(zhí)行相應(yīng)操作,返回步驟S3 ;
[0008] 步驟S4 :所述智能密鑰設(shè)備判斷是否接收到用戶按鍵信息,是則執(zhí)行步驟S5,否 則報(bào)錯(cuò),返回步驟S3;
[0009] 步驟S5 :所述智能密鑰設(shè)備將生成的用戶密鑰對(duì)與對(duì)應(yīng)的創(chuàng)建的密鑰句柄進(jìn)行 關(guān)聯(lián),并根據(jù)預(yù)設(shè)算法對(duì)所述注冊(cè)請(qǐng)求命令中的數(shù)據(jù)域部分進(jìn)行簽名,得到第一簽名結(jié)果 并保存;生成證書(shū)序列號(hào),并使用預(yù)置的根密鑰對(duì)的私鑰對(duì)所述用戶密鑰對(duì)頒發(fā)一個(gè)與所 述證書(shū)序列號(hào)對(duì)應(yīng)的數(shù)字證書(shū);所述注冊(cè)請(qǐng)求命令中的數(shù)據(jù)域部分包括挑戰(zhàn)參數(shù)和注冊(cè)地 應(yīng)用參數(shù);
[0010] 步驟S6 :所述智能密鑰設(shè)備根據(jù)預(yù)定格式保存所述用戶密鑰對(duì)和所述密鑰句柄, 并根據(jù)所述數(shù)字證書(shū)和所述第一簽名結(jié)果生成注冊(cè)響應(yīng)數(shù)據(jù)并返回給所述上位機(jī),返回步 驟S3 ;
[0011] 步驟S7 :所述智能密鑰設(shè)備根據(jù)所述認(rèn)證請(qǐng)求命令判斷用戶是否合法,是則執(zhí)行 步驟S8,否則報(bào)錯(cuò),返回步驟S3 ;
[0012] 步驟S8:所述智能密鑰設(shè)備等待用戶按鍵信息,并判斷是否接收到用戶按鍵信 息,是則執(zhí)行步驟S9,否則報(bào)錯(cuò),返回步驟S3 ;
[0013] 步驟S9 :所述智能密鑰設(shè)備根據(jù)所述認(rèn)證請(qǐng)求命令中的密鑰句柄獲取對(duì)應(yīng)的用 戶密鑰對(duì),根據(jù)預(yù)設(shè)算法使用所述用戶密鑰對(duì)中的私鑰,對(duì)所述認(rèn)證請(qǐng)求命令的數(shù)據(jù)域進(jìn) 行簽名得到第二簽名結(jié)果;
[0014] 步驟SlO :所述智能密鑰設(shè)備根據(jù)所述第二簽名結(jié)果生成認(rèn)證響應(yīng)數(shù)據(jù)并返回給 上位機(jī),返回步驟S3。
[0015] 進(jìn)一步地,所述智能密鑰設(shè)備設(shè)置描述符并將其返回給所述上位機(jī),包括:
[0016] 步驟S22-1 :所述智能密鑰設(shè)備設(shè)置配置描述符內(nèi)容為HID設(shè)備;
[0017] 步驟S22-2 :所述智能密鑰設(shè)備設(shè)置報(bào)告描述符;
[0018] 步驟S22-3 :所述智能密鑰設(shè)備將所述配置描述符和所述報(bào)告描述符返回給所 述上位機(jī)。
[0019] 進(jìn)一步地,所述步驟S3中如所述智能密鑰設(shè)備判斷所述命令的類(lèi)型為協(xié)議命令 則執(zhí)行步驟Al ;
[0020] 步驟Al :所述智能密鑰設(shè)備檢測(cè)所述命令中的第五個(gè)字節(jié),如第五個(gè)字節(jié)上的數(shù) 據(jù)為第一數(shù)據(jù)則將接收到的數(shù)據(jù)返回給所述上位機(jī),返回步驟S3 ;如第五個(gè)字節(jié)上的數(shù)據(jù) 為第二數(shù)據(jù)則將十七個(gè)有效字節(jié)的數(shù)據(jù)返回給所述上位機(jī),返回步驟S3。
[0021] 進(jìn)一步地,所述步驟S3中如所述智能密鑰設(shè)備判斷命令的類(lèi)型為獲取版本號(hào)命 令則執(zhí)行步驟Bl ;
[0022] 步驟Bl :所述智能密鑰設(shè)備將預(yù)設(shè)的字符串返回給所述上位機(jī),返回步驟S3。
[0023] 進(jìn)一步地,所述步驟S3與步驟S4之間包括:
[0024] 步驟Cl :所述智能密鑰設(shè)備生成用戶密鑰對(duì)和所述密鑰句柄,根據(jù)所述用戶密鑰 對(duì)和所述注冊(cè)請(qǐng)求命令中的注冊(cè)地應(yīng)用參數(shù)得到密鑰信息,查找空閑的密鑰索引,如找到 則執(zhí)行步驟S4,如未找到則執(zhí)行步驟C2 ;
[0025] 步驟C2 :所述智能密鑰設(shè)備判斷空間是否有大小合適的剩余空間,是則生成對(duì)應(yīng) 的密鑰索引,執(zhí)行步驟S4,否則返回空間不足信息,返回步驟S3 ;
[0026] 所述步驟S5還包括:所述智能密鑰設(shè)備將生成的用戶密鑰對(duì)與所述密鑰索引進(jìn) 行關(guān)耳關(guān);
[0027] 所述步驟S6還包括:所述智能密鑰設(shè)備根據(jù)預(yù)定格式保存所述用戶密鑰對(duì)、所述 密鑰索引和所述注冊(cè)請(qǐng)求命令中的注冊(cè)地應(yīng)用參數(shù)。
[0028] 進(jìn)一步地,所述步驟S4判斷為否時(shí)還包括:所述智能密鑰設(shè)備判斷等待時(shí)間是否 到達(dá)預(yù)設(shè)時(shí)間,是則報(bào)錯(cuò),返回步驟S3,否則返回步驟S4。
[0029] 進(jìn)一步地,所述根據(jù)預(yù)設(shè)算法對(duì)所述注冊(cè)請(qǐng)求命令中的數(shù)據(jù)域部分進(jìn)行簽名,包 括:
[0030] 所述智能密鑰設(shè)備根據(jù)所述預(yù)設(shè)算法對(duì)所述注冊(cè)請(qǐng)求命令中的數(shù)據(jù)域部分進(jìn)行 哈希計(jì)算得到第一哈希值,使用所述用戶密鑰對(duì)中的私鑰對(duì)所述第一哈希值進(jìn)行簽名得到 所述第一簽名結(jié)果。
[0031] 進(jìn)一步地,所述步驟S7判斷為是時(shí)還包括:
[0032] 步驟S71 :所述智能密鑰設(shè)備根據(jù)所述認(rèn)證請(qǐng)求命令中的密鑰句柄和密鑰句柄長(zhǎng) 度判斷對(duì)應(yīng)的密鑰句柄是否被注冊(cè)過(guò),是則執(zhí)行步驟S72,否則報(bào)錯(cuò),返回步驟S3 ;
[0033] 步驟S72 :所述智能密鑰設(shè)備判斷所述認(rèn)證請(qǐng)求命令中的注冊(cè)地應(yīng)用參數(shù)是否與 保存的注冊(cè)地應(yīng)用參數(shù)一致,是則執(zhí)行步驟S8,否則報(bào)錯(cuò),返回步驟S3。
[0034] 進(jìn)一步地,所述步驟S71具體包括:
[0035] 步驟S71-1 :所述智能密鑰設(shè)備判斷所述認(rèn)證請(qǐng)求命令中的密鑰句柄長(zhǎng)度是否與 保存的密鑰句柄長(zhǎng)度相同,是則執(zhí)行步驟S71-2,否則報(bào)錯(cuò),返回步驟S3;
[0036] 步驟S71-2 :所述智能密鑰設(shè)備判斷所述認(rèn)證請(qǐng)求命令中的密鑰句柄是否與保存 的密鑰句柄相同,是則執(zhí)行步驟S72,否則報(bào)錯(cuò),返回步驟S3。
[0037] 進(jìn)一步地,所述智能密鑰設(shè)備根據(jù)預(yù)定格式保存所述用戶密鑰對(duì)和所述密鑰句 柄,包括:所述智能密鑰設(shè)備根據(jù)預(yù)定格式保存所述用戶密鑰對(duì)、所述密鑰句柄和所述注冊(cè) 請(qǐng)求命令中的注冊(cè)地應(yīng)用參數(shù);所述步驟S3與步驟S4之間包括:
[0038] 步驟Dl :所述智能密鑰設(shè)備根據(jù)所述注冊(cè)地應(yīng)用參數(shù)判斷當(dāng)前用戶是否已經(jīng)注 冊(cè)過(guò)了,是則報(bào)錯(cuò),返回步驟S3,否則執(zhí)行步驟D2 ;
[0039] 步驟D2 :所述智能密鑰設(shè)備生成所述用戶密鑰對(duì),根據(jù)所述用戶密鑰對(duì)和所述 注冊(cè)請(qǐng)求命令中的注冊(cè)地應(yīng)用參數(shù)得到密鑰信息,執(zhí)行步驟S4。
[0040] 進(jìn)一步地,所述步驟Dl包括:
[0041] 所述智能密鑰設(shè)備判斷是否保存了所述注冊(cè)地應(yīng)用參數(shù),是則當(dāng)前用戶已經(jīng)注冊(cè) 過(guò)了,否則當(dāng)前用戶未注冊(cè)。
[0042] 進(jìn)一步地,所述步驟S8判斷為否時(shí)還包括:所述智能密鑰設(shè)備判斷等待時(shí)間是否 到達(dá)預(yù)設(shè)時(shí)間,是則報(bào)錯(cuò),返回步驟S3,否則返回步驟S8。
[0043] 進(jìn)一步地,所述步驟S3中判斷所述命令的類(lèi)型,具體包括:所述智能密鑰設(shè)備根 據(jù)所述命令中數(shù)據(jù)域的第二字節(jié)判斷所述命令的類(lèi)型,如數(shù)據(jù)域的第二字節(jié)上的數(shù)據(jù)為第 一數(shù)值則為注冊(cè)請(qǐng)求命令,如數(shù)據(jù)域的第二字節(jié)上的數(shù)據(jù)為第二數(shù)值則為認(rèn)證請(qǐng)求命令。
[0044] 本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn):
[0045] 本發(fā)明的技術(shù)方案中上位機(jī)通過(guò)瀏覽器從信任服務(wù)器獲取數(shù)據(jù)然后將其發(fā)送給 智能密鑰設(shè)備;智能密鑰設(shè)備接收到上位機(jī)發(fā)送的數(shù)據(jù)后在用戶按鍵確認(rèn)后進(jìn)行簽名操 作,然后將簽名結(jié)果返回給上位機(jī);上位機(jī)把智能密鑰設(shè)備響應(yīng)的數(shù)據(jù)發(fā)送給信任服務(wù)器 來(lái)驗(yàn)證智能密鑰設(shè)備的合法性,實(shí)現(xiàn)了對(duì)用戶身份的快速認(rèn)證,從而可以進(jìn)行高效、安全、 快捷的進(jìn)行網(wǎng)上交易。
【附圖說(shuō)明】
[0046] 圖1為本發(fā)明實(shí)施例一提供的一種智能密鑰設(shè)備的工作方法流程圖;
[0047] 圖2為本發(fā)明實(shí)施例二提供的一種智能密鑰設(shè)備的工作方法流程圖;
[0048] 圖3為本發(fā)明實(shí)施例三提供的一種智能密鑰設(shè)備的工作方法流程圖。
【具體實(shí)施方式】
[0049] 下面將結(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ù)的范圍。
[0050] 實(shí)施例一
[0051] 本發(fā)明實(shí)施例一提供一種智能密鑰設(shè)備的工作方法,如圖1所示,包括:
[0052] 步驟SI :智能密鑰設(shè)備上電,進(jìn)行初始化;
[0053] 步驟S2 :當(dāng)智能密鑰設(shè)備接收到上位機(jī)發(fā)送的枚舉描述符命令時(shí),智能密鑰設(shè)備 設(shè)置描述符并將其返回給上位機(jī);
[0054] 步驟S3 :當(dāng)智能密鑰設(shè)備接收到上位機(jī)發(fā)送的命令,判斷該命令的類(lèi)型是否為功 能命令,是則執(zhí)行步驟S4,否則根據(jù)命令執(zhí)行相應(yīng)操作,返回步驟S3 ;
[0055] 步驟S4 :智能密鑰設(shè)備判斷功能命令的類(lèi)型,如為注冊(cè)請(qǐng)求命令則執(zhí)行步驟S5, 如為認(rèn)證請(qǐng)求命令則執(zhí)行步驟S9 ;
[0056] 步驟S5 :智能密鑰設(shè)備判斷是否接收到用戶按鍵信息,是則執(zhí)行步驟S6,否則報(bào) 錯(cuò),返回步驟S3 ;
[0057] 步驟S6 :智能密鑰設(shè)備將生成的用戶密鑰對(duì)與對(duì)應(yīng)的創(chuàng)建的密鑰句柄進(jìn)行關(guān)聯(lián), 并根據(jù)預(yù)設(shè)算法對(duì)注冊(cè)請(qǐng)求命令中的數(shù)據(jù)域部分進(jìn)行簽名,得到第一簽名結(jié)果并保存;
[0058] 在本實(shí)施例中,注冊(cè)請(qǐng)求命令中的數(shù)據(jù)域部分包括挑戰(zhàn)參數(shù)和注冊(cè)地應(yīng)用參數(shù);
[0059] 步驟S7 :智能密鑰設(shè)備生成證書(shū)序列號(hào),并使用預(yù)置的根密鑰對(duì)的私鑰對(duì)用戶密 鑰對(duì)頒發(fā)一個(gè)與該證書(shū)序列號(hào)對(duì)應(yīng)的數(shù)字證書(shū);
[0060] 步驟S8 :智能密鑰設(shè)備根據(jù)預(yù)定格式保存用戶密鑰對(duì)和對(duì)應(yīng)的密鑰句柄,并根 據(jù)數(shù)字證書(shū)和第一簽名結(jié)果生成注冊(cè)響應(yīng)數(shù)據(jù)并返回給上位機(jī),返回步驟S3 ;
[0061] 步驟S9 :智能密鑰設(shè)備根據(jù)認(rèn)證請(qǐng)求命令判斷用戶是否合法,是則執(zhí)行步驟S10, 否則報(bào)錯(cuò),返回步驟S3 ;
[0062] 步驟SlO :智能密鑰設(shè)備等待用戶按鍵信息,并判斷是否在預(yù)設(shè)時(shí)間內(nèi)接收到用 戶按鍵信息,是則執(zhí)行步驟S11,否則報(bào)錯(cuò),返回步驟S3 ;
[0063] 步驟Sll :智能密鑰設(shè)備根據(jù)認(rèn)證請(qǐng)求命令中的密鑰句柄獲取對(duì)應(yīng)的用戶密鑰 對(duì),根據(jù)預(yù)設(shè)算法使用用戶密鑰對(duì)中的私鑰,對(duì)認(rèn)證請(qǐng)求命令的數(shù)據(jù)域進(jìn)行簽名得到