專利名稱:一種安全認(rèn)證方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全領(lǐng)域,特別涉及一種安全認(rèn)證方法。
背景技術(shù):
目前,隨著電子簽名的普遍使用,在日常的應(yīng)用實(shí)踐中許多用戶使用個(gè)人數(shù)字移動證書,如USB Key等,個(gè)人數(shù)字移動證書可以對數(shù)據(jù)進(jìn)行加密、簽名、認(rèn)證,在網(wǎng)絡(luò)支付和網(wǎng)上交易時(shí)大大提聞了安全性。數(shù)字移動證書通常是在用戶第一次使用時(shí),在其內(nèi)部生成公私鑰對,將私鑰存放 在數(shù)字移動證書內(nèi),不對外公開,把公鑰發(fā)送給認(rèn)證中心,用于對數(shù)字移動證書使用私鑰進(jìn)行簽名計(jì)算的數(shù)據(jù)進(jìn)行認(rèn)證。目前數(shù)字移動證書通常是連接到計(jì)算機(jī)上使用,公鑰生成后,從數(shù)字移動證書內(nèi)取出時(shí),都是通過公開方式直接獲得,沒有任何其他的保護(hù)措施,而且都是通過互聯(lián)網(wǎng)將公鑰發(fā)送給認(rèn)證中心的,這就給數(shù)字移動證書的應(yīng)用安全性帶來了隱患。
發(fā)明內(nèi)容
為解決上述現(xiàn)有技術(shù)中存在的安全隱患問題,本發(fā)明提出了一種數(shù)字證書中公鑰的安全認(rèn)證方法。本發(fā)明米取的技術(shù)方案是一種安全認(rèn)證方法,包括,步驟SI :設(shè)備等待接收上位機(jī)下發(fā)的指令;步驟S2 :判斷接收到的所述指令的類型;當(dāng)所述指令為生成密鑰對指令,則執(zhí)行生成密鑰對的操作,并向上位機(jī)返回第一響應(yīng),然后返回步驟Si ;當(dāng)所述指令為生成加密信息指令,則執(zhí)行步驟S3-S5 ;當(dāng)所述指令為其他指令,則執(zhí)行其他操作,并向上位機(jī)返回相應(yīng)操作結(jié)果響應(yīng),然后返回步驟SI ;步驟S3 :根據(jù)所述指令獲取指定密鑰和終端隨機(jī)數(shù),從預(yù)設(shè)存儲區(qū)獲取保護(hù)私鑰和標(biāo)識信息;步驟S4:對所述指定密鑰的部分內(nèi)容進(jìn)行哈希運(yùn)算生成摘要,根據(jù)所述標(biāo)識信息、所述終端隨機(jī)數(shù)、所述指定密鑰的剩余部分內(nèi)容和所述摘要生成模長等于所述保護(hù)私鑰模長的拼接數(shù)據(jù);步驟S5 :用所述保護(hù)私鑰對所述拼接數(shù)進(jìn)行加密生成加密結(jié)果,并向上位機(jī)返回生成加密信息結(jié)果響應(yīng),然后返回步驟SI。步驟S2所述判斷接收到的指令的類型具體為根據(jù)所述指令的前兩個(gè)字節(jié)取值判斷指令類型。所述步驟S2還包括檢查接收到的所述指令是否完整,具體為判斷所述指令的總長度是否超過預(yù)設(shè)長度,如果是,繼續(xù),否則所述指令不完整;判斷所述指令的數(shù)據(jù)域的字節(jié)數(shù)是否符合長度域的值,是則所述指令完整,否則所述指令不完整。
上述執(zhí)行生成密鑰對的操作具體為生成密鑰對并保存,將生成加密信息標(biāo)志位置為有效。上述生成密鑰對的操作還包括將密鑰對標(biāo)志位置為有效。當(dāng)所述指令為生成 加密信息指令時(shí)還包括以下步驟步驟Cl :判斷是否存在密鑰對,是則執(zhí)行步驟C2,否則執(zhí)行步驟C5 ;步驟C2 :判斷生成加密信息標(biāo)志位是否有效,是則執(zhí)行步驟C3,否則執(zhí)行步驟C5 ;步驟C3 :根據(jù)所述指令獲取指定密鑰和終端隨機(jī)數(shù),從預(yù)設(shè)存儲區(qū)讀取保護(hù)私鑰和標(biāo)識信息;對指定密鑰的部分內(nèi)容進(jìn)行哈希運(yùn)算生成摘要;將標(biāo)識信息、終端隨機(jī)數(shù)、指定密鑰的剩余部分內(nèi)容和摘要順序拼接,填充組成模長等于保護(hù)私鑰模長的拼接數(shù)據(jù);用保護(hù)私鑰加密拼接數(shù)據(jù)得到加密結(jié)果;將生成加密信息的標(biāo)志位置為無效;步驟C4 :向上位機(jī)返回加密結(jié)果,上位機(jī)將所述加密結(jié)果發(fā)送給服務(wù)器進(jìn)行認(rèn)證,返回執(zhí)行步驟SI ;步驟C5 向上位機(jī)返回錯(cuò)誤響應(yīng),返回執(zhí)行步驟SI。上述步驟Cl可替換為判斷密鑰對標(biāo)志位是否有效,是則執(zhí)行步驟C2,否則執(zhí)行步驟C5。所述根據(jù)所述指令獲取指定密鑰具體為從所述指令的數(shù)據(jù)域獲取指定密鑰ID,根據(jù)所述指定密鑰ID從指定存儲位置獲取所述指定密鑰。所述指定存儲位置為密鑰對的存儲位置,所述指定密鑰為所述密鑰對中的公鑰。所述填充組成模長等于保護(hù)私鑰模長的拼接數(shù)據(jù)的填充方式為在標(biāo)識信息、終端隨機(jī)數(shù)、指定密鑰的剩余部分內(nèi)容和摘要順序拼接接后得到的結(jié)果的最高位或最低位填充預(yù)先約定的數(shù)據(jù)。步驟S2還包括當(dāng)所述指令為讀取指令,則執(zhí)行讀取操作,并向上位機(jī)返回讀取操作結(jié)果響應(yīng),然后返回步驟SI。當(dāng)所述讀取指令為讀取指定密鑰指令時(shí)執(zhí)行的讀取操作具體為從指定位置讀取指定密鑰,并向上位機(jī)返回包含所述指定密鑰的響應(yīng)。當(dāng)所述讀取指令為讀取保護(hù)公鑰指令時(shí)執(zhí)行的讀取操作具體為從預(yù)設(shè)存儲區(qū)讀取保護(hù)公鑰,并向上位機(jī)返回包含所述保護(hù)公鑰和標(biāo)識信息的響應(yīng)。所述標(biāo)識信息包括密鑰長度、信息版本號、外殼號和密鑰屬性。本發(fā)明提出的安全認(rèn)證方法,保證了數(shù)字證書中公鑰的安全性,從而增加了數(shù)字移動證書應(yīng)用的安全性,可以提高網(wǎng)上銀行應(yīng)用安全級別,有效降低風(fēng)險(xiǎn),為用戶提供安全高效的體驗(yàn)效果。
圖I是實(shí)施例I提供的一種安全認(rèn)證方法流程圖;圖2是一種安全認(rèn)證方法的驗(yàn)證加密結(jié)果流程圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。實(shí)施例I本實(shí)施例提出的一種安全認(rèn)證方法包括對公鑰進(jìn)行加密生成加密結(jié)果的過程和驗(yàn)證加密結(jié)果的過程。以下以安全認(rèn)證設(shè)備生成加密結(jié)果并發(fā)送給上位機(jī)進(jìn)行驗(yàn)證為例進(jìn)行詳細(xì)介紹。用于生成加密結(jié)果時(shí)上位機(jī)向安全認(rèn)證設(shè)備下發(fā)生成加密信息指令,本實(shí)施例中生成加密信息指令以生成ID Sign指令為例進(jìn)行介紹。如圖I所示,一種安全認(rèn)證方法包括以下步驟步驟101 :設(shè)備等待接收上位機(jī)下發(fā)的指令;步驟102 :判斷接收到的指令的類型; 當(dāng)所述指令為生成ID Sign指令,則執(zhí)行步驟103-111 ;當(dāng)所述指令為生成密鑰對指令,則執(zhí)行步驟112-114 ;當(dāng)所述指令為讀取指定密鑰指令,則執(zhí)行步驟115-116 ;當(dāng)所述指令為讀取保護(hù)公鑰指令,則執(zhí)行步驟117-118 ;當(dāng)所述指令為其他指令,則執(zhí)行步驟119-120。本實(shí)施例中步驟102具體為步驟102-1 :檢查接收到的指令是否完整,如果完整,則繼續(xù);否則,向上位機(jī)返回事先約定的錯(cuò)誤碼;步驟102-2 :根據(jù)接收到的所述指令的前兩個(gè)字節(jié)判斷指令類型,當(dāng)所述指令的前兩個(gè)字節(jié)為Ox 6F 80,則所述指令為生成密鑰對指令,當(dāng)所述指令的前兩個(gè)字節(jié)為Ox6F 82,則所述指令為生成ID Sign指令,當(dāng)所述指令的前兩個(gè)字節(jié)為Ox 80 B2,則所述指令為讀取指定密鑰指令,當(dāng)所述指令的前兩個(gè)字節(jié)為Ox 80 D2,則所述讀取保護(hù)公鑰指令,當(dāng)所述指令的前兩個(gè)字節(jié)不滿足上述取值時(shí),所述指令為其他指令。上述步驟102-1所述檢查指令是否完整的驗(yàn)證方法具體為判斷所述指令的總長度是否超過預(yù)設(shè)長度,如果是,繼續(xù)判斷所述指令的數(shù)據(jù)域的字節(jié)數(shù)是否符合長度域的值,是則所述指令完整;否則,所述指令不完整。本實(shí)施例中,所述預(yù)設(shè)長度為4個(gè)字節(jié)。本實(shí)施例中,所述生成ID Sign指令的高位端前四個(gè)字節(jié)表示命令頭,第5個(gè)字節(jié)為長度域且取值為6,后續(xù)的其余字節(jié)為數(shù)據(jù)域,數(shù)據(jù)域包括指定密鑰ID、ID Sign的標(biāo)志位和終端隨機(jī)數(shù)。步驟103之前包括檢查接收到的指令的總長度是否超過4個(gè)字節(jié),若未超過則所述指令不完整向上位機(jī)返回事先約定的錯(cuò)誤,若超過則繼續(xù)判斷所述指令的第5個(gè)字節(jié)之后的數(shù)據(jù)長度是否滿足6個(gè)字節(jié),是則所述指令完整繼續(xù)下一步,否則所述指令不完整向上位機(jī)返回事先約定的錯(cuò)誤碼。步驟103 :判斷是否存在密鑰對,是則執(zhí)行下一步,否則執(zhí)行步驟111 ;具體地,根據(jù)所述指令的第6個(gè)字節(jié)的取值即指定密鑰ID查找到指定存儲位置,判斷指定存儲位置是否存儲有密鑰對。步驟104 :判斷生成ID Sign的標(biāo)志位是否有效,是則執(zhí)行下一步,否則執(zhí)行步驟112 ;具體地,根據(jù)所述指令的第7個(gè)字節(jié)的取值判斷生成ID Sign的標(biāo)志位是否有效。
步驟105 :根據(jù)接收到的指令獲取指定密鑰和終端隨機(jī)數(shù)、從預(yù)設(shè)存儲區(qū)獲取保護(hù)私鑰和標(biāo)識信息;本實(shí)施例中具體地,從接收到的指令的數(shù)據(jù)域獲取指定密鑰ID,根據(jù)指定密鑰ID從指定存儲位置獲取指定密鑰;從所述指令的數(shù)據(jù)域獲取4字節(jié)的終端隨機(jī)數(shù),從設(shè)備的預(yù)設(shè)存儲區(qū)中獲取保護(hù)私鑰和標(biāo)識信息,所述標(biāo)識信息包括密鑰長度、信息版本號、外殼號和密鑰屬性。所述指定存儲位置為密鑰對的存儲位置,所述指定密鑰為密鑰對中公鑰。步驟106 :對指定密鑰的部分內(nèi)容進(jìn)行哈希運(yùn)算生成摘要;本實(shí)施例中具體地,指定密鑰由第一部分?jǐn)?shù)據(jù)和第二部分?jǐn)?shù)據(jù)組成,指定密鑰的部分內(nèi)容具體為第一部分?jǐn)?shù)據(jù),所述第一部分?jǐn)?shù)據(jù)和第二部分?jǐn)?shù)據(jù)的長度可以相等也可以不等。例如,指定密鑰長度為L,單位為字節(jié),從高位開始取預(yù)設(shè)長度的數(shù)據(jù)作為第一部分?jǐn)?shù)據(jù),剩余的數(shù)據(jù)作為第二部分?jǐn)?shù)據(jù);舉例說明如下預(yù)設(shè)長度為L/2個(gè)字節(jié)時(shí),從高位開始取L/2個(gè)字節(jié)的數(shù)據(jù)作為第一部分?jǐn)?shù)據(jù),則剩余的L/2個(gè)字節(jié)的數(shù)據(jù)為第二部分?jǐn)?shù)據(jù)。步驟107 :將標(biāo)識信息、終端隨機(jī)數(shù)、指定密鑰的剩余部分內(nèi)容和摘要順序拼接,填充組成模長等于保護(hù)私鑰模長的拼接數(shù)據(jù);本實(shí)施例中具體地,當(dāng)步驟106中所述指定密鑰的部分內(nèi)容為第一部分?jǐn)?shù)據(jù)時(shí),本步驟中所述指定密鑰的剩余部分內(nèi)容為第二部分?jǐn)?shù)據(jù)。 本步驟具體為假設(shè)保護(hù)私鑰模長為第一模長,設(shè)備將標(biāo)識信息、4字節(jié)的終端隨機(jī)數(shù)、第一部分?jǐn)?shù)據(jù)和摘要按照預(yù)先約定的規(guī)則順序拼接后得到的數(shù)據(jù)模長為第二模長,則當(dāng)?shù)谝荒iL等于第二模長時(shí),標(biāo)識信息、終端隨機(jī)數(shù)、指定密鑰的剩余部分內(nèi)容和摘要順序拼接得到的結(jié)果為所述拼接數(shù)據(jù);當(dāng)?shù)谝荒iL大于第二模長時(shí),將標(biāo)識信息、終端隨機(jī)數(shù)、指定密鑰的剩余部分內(nèi)容和摘要順序拼接得到的結(jié)果的最高位或最低位填充預(yù)先約定的數(shù)據(jù)組成模長等于第一模長的拼接數(shù)據(jù)。步驟108 :用保護(hù)私鑰加密拼接數(shù)據(jù)得到加密結(jié)果;步驟109 :將生成ID Sign的標(biāo)志位置為無效;步驟110 :向上位機(jī)返回加密結(jié)果,返回執(zhí)行步驟101 ;步驟111 :向上位機(jī)返回錯(cuò)誤響應(yīng),返回執(zhí)行步驟101。步驟112 :生成密鑰對并保存;本實(shí)施例中所述密鑰對保存在指定存儲位置。進(jìn)一步的,本步驟還可以包括將密鑰對標(biāo)志位置為有效;相應(yīng)的,步驟103替換為判斷密鑰對的標(biāo)志位是否有效,是則執(zhí)行下一步,否則執(zhí)行步驟112 ;步驟113 :將生成ID Sign標(biāo)志位置為有效;步驟114 :向上位機(jī)返回第一響應(yīng),然后返回步驟101。例如,向上位機(jī)返回的第一響應(yīng)為0x90 00。步驟115 :從指定位置讀取指定密鑰;步驟116 :向上位機(jī)返回第二響應(yīng),然后返回步驟101。具體地,所述第二響應(yīng)中包含有指定密鑰。
步驟117 :從預(yù)設(shè)存儲區(qū)讀取保護(hù)公鑰;具體地,所述預(yù)設(shè)存儲區(qū)中存儲有保護(hù)公鑰、保護(hù)私鑰和用戶標(biāo)識信息。步驟118 :向上位機(jī)返回第三響應(yīng),然后返回步驟101。具體地,所述第三響應(yīng)中包含有保護(hù)公鑰和標(biāo)識信息。步驟119 :執(zhí)行其他操作;步驟120 :向上位機(jī)返回相應(yīng)響應(yīng),然后返回步驟101。上位機(jī)在接收到設(shè)備返回的第一響應(yīng)、第二響應(yīng)、第三響應(yīng)和加密結(jié)果之后,從中獲取指定密鑰、保護(hù)公鑰、標(biāo)識信息,并將獲取到的信息和加密結(jié)果發(fā)送給服務(wù)器進(jìn)行驗(yàn) 證,服務(wù)器驗(yàn)證加密結(jié)果的過程如圖2所示,包括以下步驟步驟201 :服務(wù)器接收到加密結(jié)果;步驟202 :用保護(hù)公鑰解密加密結(jié)果得到解密數(shù)據(jù);步驟203 :從解密數(shù)據(jù)中獲取標(biāo)識信息、終端隨機(jī)數(shù)、部分指定密鑰和第一摘要值;本實(shí)施例中具體地,服務(wù)器根據(jù)預(yù)先約定的規(guī)則從解密數(shù)據(jù)中依次提取出標(biāo)識信息、終端隨機(jī)數(shù)、部分指定密鑰和第一摘要值。步驟204 :驗(yàn)證獲取的標(biāo)識信息是否正確,是則執(zhí)行下一步,否則認(rèn)證失??;具體為,服務(wù)器比對獲取到的標(biāo)識信息與預(yù)先存儲的標(biāo)識信息是否一致,是則執(zhí)行下一步,否則認(rèn)證失敗。步驟205 :驗(yàn)證終端隨機(jī)數(shù)是否正確,是則執(zhí)行下一步,否則認(rèn)證失?。痪唧w為,服務(wù)器記錄了發(fā)送給設(shè)備的終端隨機(jī)數(shù),驗(yàn)證獲取到的終端隨機(jī)數(shù)與預(yù)先記錄的終端隨機(jī)數(shù)是否一致,是則執(zhí)行下一步,否則認(rèn)證失敗。步驟206 :驗(yàn)證部分指定密鑰是否與指定密鑰的部分內(nèi)容匹配,是則執(zhí)行下一步,否則認(rèn)證失敗;所述驗(yàn)證部分指定密鑰是否與指定密鑰的部分內(nèi)容匹配具體為在預(yù)先保存的指定密鑰中查找是否存在與獲取到的部分指定密鑰所匹配的數(shù)據(jù)內(nèi)容。步驟207 :對指定密鑰的匹配剩余部分進(jìn)行哈希得到第二摘要值;具體為從預(yù)先保存的指定密鑰提取與步驟206所述部分指定密鑰不匹配的數(shù)據(jù)內(nèi)容進(jìn)行哈希運(yùn)算計(jì)算得到第二摘要值。步驟208 :驗(yàn)證第二摘要值是否與第一摘要值一致,是則認(rèn)證成功,否則認(rèn)證失敗。實(shí)施例2本實(shí)施例是在實(shí)施例I的基礎(chǔ)上,設(shè)備接收到上位機(jī)下發(fā)的生成ID Sign指令,在判斷存在密鑰對,且生成ID Sign標(biāo)志位有效的情況下,以對公鑰進(jìn)行加密生成加密結(jié)果的過程進(jìn)行詳細(xì)描述,具體如下步驟I :根據(jù)指令獲取公鑰和終端隨機(jī)數(shù),從預(yù)設(shè)存儲區(qū)獲取保護(hù)私鑰和標(biāo)識信息;具體為根據(jù)接收到的指令的第6個(gè)字節(jié)讀取公鑰ID,根據(jù)公鑰ID從指定存儲位置獲取公鑰;根據(jù)所述指令的第8-11個(gè)字節(jié)讀取4字節(jié)長度的終端隨機(jī)數(shù),從設(shè)備的預(yù)設(shè)存儲區(qū)中獲取保護(hù)私鑰和標(biāo)識信息,所述標(biāo)識信息由2個(gè)字節(jié)的密鑰長度、2個(gè)字節(jié)的信息版本號、13個(gè)字節(jié)的外殼號和I個(gè)字節(jié)的密鑰屬性組成。本實(shí)施例中,獲取到的長度為128字節(jié)的公鑰如下C5 6D 9E IC 52 08 18 113F E6 75 3D 80 A5 A9 C8
65 D8 OF BE 90 Dl 3E AO29 91 F2 39 EC 4E 6C IFC6 ID 3A BI 43 DF 63 EA22 65 23 8A 8E 9D 2A 5454 FE C8 04 31 FO BC E7D9 62 D7 83 56 09 C9 36BO B5 45 BI F7 D6 C5 FF41 ED 8C 94 F3 D2 05 IF44 4F 9C B7 IC AE 05 F5IE 76 F7 21 9B 3C 06 53C4 6A 77 E7 99 E2 58 2170 39 29 EB 01 9C B9 0731 BE EA BO DO 6C 5C 716C B9 A2 BI F3 EO 91 ED獲取的4字節(jié)長度終端隨機(jī)數(shù)為01 02 03 04讀取的標(biāo)識信息為00803031 35323030303030303030303135 01讀取的保護(hù)私鑰為27 10 OC 53 AO 2B 77 CF99 EC 18 50 65 EE El 4C04 52 9E B2 DE E6 77 D4AA C4 F4 BF 5F 31 19 15A4 56 4E 31 9A B3 4D 8A9A E9 96 01 A9 3C 11 8F04 OE 31 37 IB 46 7D AA06 OA 17 88 25 F2 E3 BBB4 06 56 FC 48 4B 5F E450 2E 97 BB 86 05 32 36FF 30 AA IA 68 87 6A COFO C3 FA 2B 9E 6A BF 27B9 4E E7 A5 CF B7 77 Cl60 E7 80 06 90 72 41 4903 24 27 7B Dl 71 B6 7FIE 2F CF AB 71 4B FD 65所述保護(hù)私鑰的模長為128字節(jié)。步驟2 :對公鑰的部分內(nèi)容進(jìn)行哈希運(yùn)算生成摘要;
本實(shí)施例中具體地,公鑰長度為128字節(jié),對所述公鑰的前80個(gè)字節(jié)進(jìn)行哈希運(yùn)算。示例如下取公鑰的前80字節(jié)如下C5 6D 9E IC 52 08 18 113F E6 75 3D 80 A5 A9 C865 D8 OF BE 90 Dl 3E AO29 91 F2 39 EC 4E 6C IF C6 ID 3A BI 43 DF 63 EA22 65 23 8A 8E 9D 2A 5454 FE C8 04 31 FO BC E7D9 62 D7 83 56 09 C9 36BO B5 45 BI F7 D6 C5 FF41 ED 8C 94 F3 D2 05 IF采用SHAl算法對上述數(shù)據(jù)進(jìn)行計(jì)算得到的摘要如下50 13 F7 4F IF DE AF 92 7C 34 11 F5 DE F6 80 7C 11 BE 25 B9步驟3 :將標(biāo)識信息、終端隨機(jī)數(shù)、公鑰的剩余部分內(nèi)容和摘要順序拼接,填充組成模長等于保護(hù)私鑰模長的拼接數(shù)據(jù);本實(shí)施例中具體地,公鑰剩余部分即剩余的48個(gè)字節(jié)為44 4F 9C B7 IC AE 05 F5IE 76 F7 21 9B 3C 06 53C4 6A 77 E7 99 E2 58 2170 39 29 EB 01 9C B9 0731 BE EA BO DO 6C 5C 716C B9 A2 BI F3 EO 91 ED18個(gè)字節(jié)長的標(biāo)識信息、4個(gè)字節(jié)長的終端隨機(jī)數(shù)、48個(gè)字節(jié)長的公鑰的剩余部分內(nèi)容和20個(gè)字節(jié)長的摘要順序拼接得到的數(shù)據(jù)為00 80 30 31 35 32 30 30 30 3030 30 30 30 30 31 35 01 01 02 03 04 44 4F 9C B7 IC AE 05 F5 IE 76 F7 21 9B 3C06 53 C4 6A 77 E7 99 E2 58 21 70 39 29 EB 01 9C B9 07 31 BE EA BO DO 6C 5C 716C B9 A2 BI F3 EO 91 ED 50 13 F7 4F IF DE AF 92 7C 34 11 F5 DE F6 80 7C 11 BE25 B9上述拼接得到的數(shù)據(jù)長度為90個(gè)字節(jié),保護(hù)私鑰模長為128個(gè)字節(jié),對上述數(shù)據(jù)按預(yù)先約定的填充方式進(jìn)行填充組成128個(gè)字節(jié)長度的拼接,所述預(yù)先約定的填充方式為在數(shù)據(jù)最左端填充38個(gè)字節(jié)的數(shù)據(jù),或者是在最右端填充38個(gè)字節(jié)的數(shù)據(jù)。所述填充的數(shù)據(jù)為預(yù)先約定的數(shù)據(jù)。例如,在上述拼接得到的數(shù)據(jù)的最左端填充預(yù)先約定的數(shù)據(jù)6A DA OF 37 89 F7AE 26 74 5A 41 89 87 4F 6F IA 08 08 01 00 14 EB FB OB 22 69 Fl F9 61 EO IC IF93 37 4C 80 C6 BC后,組成的模長等于128字節(jié)的拼接數(shù)據(jù)如下6A DA OF 37 89 F7 AE 26 74 5A 41 89 87 4F 6F IA 08 08 01 00 14 EB FBOB 22 69 Fl F9 61 EO IC IF 93 37 4C 80 C6 BC 00 80 30 31 35 32 30 30 30 30 3030 30 30 30 31 35 01 01 02 03 04 44 4F 9C B7 IC AE 05 F5 IE 76 F7 21 9B 3C 0653 C4 6A 77 E7 99 E2 58 21 70 39 29 EB 01 9C B9 07 31 BE EA BO DO 6C 5C 71 6CB9 A2 BI F3 EO 91 ED 50 13 F7 4F IF DE AF 92 7C 34 11 F5 DE F6 80 7C 11 BE 25B9步驟4 :用保護(hù)私鑰加密拼接數(shù)據(jù)得到加密結(jié)果。本實(shí)施例中,對步驟3得到的模長等于128字節(jié)的拼接數(shù)據(jù)進(jìn)行加密得到的加密結(jié)果為47 A5 3B 8B CC IB 67 B922 2F 7D 6E 33 IB OF D399 C4 FE 64 B9 4B 03 5D27 73 E5 09 BA 76 77 EAF9 19 14 4C C9 82 61 E3
F5 6B 10 A4 8E E9 E4 3F3A 99 7C FD AF 76 EE 36DB 79 38 01 26 31 38 9846 DA 36 5F 10 F6 FF 605A D5 69 AF D7 2B FF OD91 55 74 F7 43 31 7F CAD2 5C 2E 6C 50 A4 DA Al7E 78 AF 4E FF 81 56 0580 32 5B 47 33 2D 9A 08IC 8A IB DD Dl FC 14 C6B5 3C 34 38 76 58 9C 3C以上所述,僅為本發(fā)明的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種安全認(rèn)證方法,其特征是包括以下步驟, 步驟Si:設(shè)備等待接收上位機(jī)下發(fā)的指令; 步驟S2 :判斷接收到的所述指令的類型; 當(dāng)所述指令為生成密鑰對指令,則執(zhí)行生成密鑰對的操作,并向上位機(jī)返回第一響應(yīng),然后返回步驟SI ; 當(dāng)所述指令為生成加密信息指令,則執(zhí)行步驟S3-S5 ; 當(dāng)所述指令為其他指令,則執(zhí)行其他操作,并向上位機(jī)返回相應(yīng)操作結(jié)果響應(yīng),然后返回步驟SI ; 步驟S3 :根據(jù)所述指令獲取指定密鑰和終端隨機(jī)數(shù),從預(yù)設(shè)存儲區(qū)獲取保護(hù)私鑰和標(biāo)識息; 步驟S4 :對所述指定密鑰的部分內(nèi)容進(jìn)行哈希運(yùn)算生成摘要,根據(jù)所述標(biāo)識信息、所述終端隨機(jī)數(shù)、所述指定密鑰的剩余部分內(nèi)容和所述摘要生成模長等于所述保護(hù)私鑰模長的拼接數(shù)據(jù); 步驟S5 :用所述保護(hù)私鑰對所述拼接數(shù)進(jìn)行加密生成加密結(jié)果,并向上位機(jī)返回生成加密信息結(jié)果響應(yīng),然后返回步驟SI。
2.根據(jù)權(quán)利要求I所述的一種安全認(rèn)證方法,其特征是步驟S2所述判斷接收到的所述指令的類型具體為根據(jù)所述指令的前兩個(gè)字節(jié)取值判斷指令類型。
3.根據(jù)權(quán)利要求I所述的一種安全認(rèn)證方法,其特征是所述執(zhí)行生成密鑰對的操作具體為生成密鑰對并保存,將生成加密信息標(biāo)志位置為有效。
4.根據(jù)權(quán)利要求3所述的一種安全認(rèn)證方法,其特征是所述執(zhí)行生成密鑰對的操作還包括將密鑰對標(biāo)志位置為有效。
5.根據(jù)權(quán)利要求I或4所述的一種安全認(rèn)證方法,其特征是當(dāng)所述指令為生成加密信息指令時(shí)包括以下步驟 步驟Cl :判斷是否存在密鑰對,是則執(zhí)行步驟C2,否則執(zhí)行步驟C5 ;步驟C2 :判斷生成加密信息標(biāo)志位是否有效,是則執(zhí)行步驟C3,否則執(zhí)行步驟C5 ;步驟C3 :根據(jù)所述指令獲取指定密鑰和終端隨機(jī)數(shù),從預(yù)設(shè)存儲區(qū)讀取保護(hù)私鑰和標(biāo)識信息;對指定密鑰的部分內(nèi)容進(jìn)行哈希運(yùn)算生成摘要;將標(biāo)識信息、終端隨機(jī)數(shù)、指定密鑰的剩余部分內(nèi)容和摘要順序拼接,填充組成模長等于保護(hù)私鑰模長的拼接數(shù)據(jù);用保護(hù)私鑰加密拼接數(shù)據(jù)得到加密結(jié)果;將生成加密信息的標(biāo)志位置為無效; 步驟C4 :向上位機(jī)返回加密結(jié)果,上位機(jī)將所述加密結(jié)果發(fā)送給服務(wù)器進(jìn)行認(rèn)證,返回執(zhí)行步驟SI ; 步驟C5 :向上位機(jī)返回錯(cuò)誤響應(yīng),返回執(zhí)行步驟SI。
6.根據(jù)權(quán)利要求5所述的一種安全認(rèn)證方法,其特征是步驟Cl替換為判斷密鑰對標(biāo)志位是否有效,是則執(zhí)行步驟C2,否則執(zhí)行步驟C5。
7.根據(jù)權(quán)利要求I所述的一種安全認(rèn)證方法,其特征是所述根據(jù)所述指令獲取指定密鑰具體為從所述指令的數(shù)據(jù)域獲取指定密鑰ID,根據(jù)所述指定密鑰ID從指定存儲位置獲取所述指定密鑰。
8.根據(jù)權(quán)利要求7所述的一種安全認(rèn)證方法,其特征是所述指定存儲位置為密鑰對的存儲位置,所述指定密鑰為所述密鑰對中的公鑰。
9.根據(jù)權(quán)利要求5所述的一種安全認(rèn)證方法,其特征是所述填充組成模長等于保護(hù)私鑰模長的拼接數(shù)據(jù)的填充方式為在標(biāo)識信息、終端隨機(jī)數(shù)、指定密鑰的剩余部分內(nèi)容和摘要順序拼接后得到的結(jié)果的最高位或最低位填充預(yù)先約定的數(shù)據(jù)。
10.根據(jù)權(quán)利要求I所述的一種安全認(rèn)證方法,其特征是步驟S2還包括當(dāng)所述指令為讀取指令,則執(zhí)行讀取操作,并向上位機(jī)返回讀取操作結(jié)果響應(yīng),然后返回步驟SI。
11.根據(jù)權(quán)利要求10所述的一種安全認(rèn)證方法,其特征是當(dāng)所述讀取指令為讀取指定密鑰指令時(shí)執(zhí)行的讀取操作具體為從指定位置讀取指定密鑰,并向上位機(jī)返回包含所述指定密鑰的響應(yīng)。
12.根據(jù)權(quán)利要求10所述的一種安全認(rèn)證方法,其特征是當(dāng)所述讀取指令為讀取保護(hù)公鑰指令時(shí)執(zhí)行的讀取操作具體為從預(yù)設(shè)存儲區(qū)讀取保護(hù)公鑰,并向上位機(jī)返回包含所述保護(hù)公鑰和標(biāo)識信息的響應(yīng)。
13.根據(jù)權(quán)利要求I或12所述的一種安全認(rèn)證方法,其特征是所述標(biāo)識信息包括密鑰長度、信息版本號、外殼號和密鑰屬性。
14.根據(jù)權(quán)利要求I所述的一種安全認(rèn)證方法,其特征是所述步驟S2還包括檢查接收到的所述指令是否完整,具體為 步驟A :判斷所述指令的總長度是否超過預(yù)設(shè)長度,如果是,則繼續(xù),否則所述指令不完整; 步驟B :判斷所述指令的數(shù)據(jù)域的字節(jié)數(shù)是否符合長度域的值,是則所述指令完整,否則所述指令不完整。
全文摘要
本發(fā)明公開了一種安全認(rèn)證方法,屬于信息安全領(lǐng)域。所述方法包括當(dāng)接收到生成加密信息指令,則從所述指令獲取指定密鑰和終端隨機(jī)數(shù),從預(yù)設(shè)存儲區(qū)獲取保護(hù)私鑰和標(biāo)識信息,對所述指定密鑰的部分內(nèi)容進(jìn)行哈希運(yùn)算生成摘要,根據(jù)所述標(biāo)識信息、所述終端隨機(jī)數(shù)、所述指定密鑰的剩余部分內(nèi)容和所述摘要生成模長等于所述保護(hù)私鑰模長的拼接數(shù)據(jù),用所述保護(hù)私鑰對所述拼接數(shù)進(jìn)行加密生成加密結(jié)果,并向上位機(jī)返回響應(yīng),上述指定密鑰可以為公鑰。本發(fā)明可以有效保證數(shù)字證書中公鑰的安全性,從而增加了數(shù)字移動證書應(yīng)用的安全性。
文檔編號H04L9/30GK102761420SQ20121028107
公開日2012年10月31日 申請日期2012年8月8日 優(yōu)先權(quán)日2012年8月8日
發(fā)明者于華章, 陸舟 申請人:飛天誠信科技股份有限公司