亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種終端設(shè)備認(rèn)證方法及裝置的制作方法

文檔序號:7857158閱讀:256來源:國知局
專利名稱:一種終端設(shè)備認(rèn)證方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及信息安全領(lǐng)域,尤其涉及一種終端設(shè)備認(rèn)證方法及裝置。
背景技術(shù)
隨著信息技術(shù)的發(fā)展,信息安全日益受到人們的重視,如上位機(jī)與終端設(shè)備通過對通信數(shù)據(jù)進(jìn)行加密并共享密鑰來保障信息安全、服務(wù)器通過驗(yàn)證網(wǎng)絡(luò)客戶端傳送的密碼認(rèn)證來保障信息安全,現(xiàn)有技術(shù)中,通信雙方通信過程中的通信數(shù)據(jù)一般會涉及重要數(shù)據(jù),如密鑰、密碼及PIN碼等,一旦通信數(shù)據(jù)被非法截取會給用戶的利益帶來安全隱患。

發(fā)明內(nèi)容
為解決上述問題,本發(fā)明提供了一種終端設(shè)備認(rèn)證的方法與裝置,根據(jù)本發(fā)明的一方面,提供了一種終端設(shè)備認(rèn)證的方法,包括步驟SI :終端設(shè)備接收上位機(jī)發(fā)送的預(yù)設(shè)類型的指令;步驟S2 :檢查認(rèn)證條件是否滿足,是則執(zhí)行S3,否則認(rèn)證失?。徊襟ES3 :根據(jù)第一預(yù)設(shè)長度對所述指令進(jìn)行解析,得到第一驗(yàn)證碼及待驗(yàn)證數(shù)據(jù);步驟S4 :所述終端設(shè)備調(diào)用PIN碼,將PIN碼或?qū)IN碼進(jìn)行散列運(yùn)算得到的散列值作為密鑰,對所述待驗(yàn)證數(shù)據(jù)進(jìn)行處理得到安全數(shù)據(jù),根據(jù)所述第一預(yù)設(shè)長度對所述安全數(shù)據(jù)進(jìn)行處理得到第二驗(yàn)證碼;步驟S5 :驗(yàn)證所述第一驗(yàn)證碼與所述第二驗(yàn)證碼是否一致,是則認(rèn)證通過,繼續(xù),否則認(rèn)證失?。徊襟ES6 :所述終端設(shè)備執(zhí)行所述指令。近一步地,所述步驟SI之前包括當(dāng)所述終端設(shè)備接收到上位機(jī)發(fā)送的生成隨機(jī)數(shù)據(jù)串的指令時,生成隨機(jī)數(shù)據(jù)串緩存在緩存區(qū),并將所述隨機(jī)數(shù)據(jù)串返回給所述上位機(jī)。所述步驟S2中檢查認(rèn)證條件是否滿足具體包括驗(yàn)證所述指令長度是否不小于第二預(yù)設(shè)長度,是則繼續(xù),否則不滿足;驗(yàn)證所述終端設(shè)備的緩存區(qū)中是否緩存有所述隨機(jī)數(shù)據(jù)串,是則繼續(xù),否則不滿足;根據(jù)所述指令的第三、第四字節(jié)數(shù)據(jù)查找到第一存儲空間,判斷所述第一存儲空間中是否存有所述終端設(shè)備的PIN碼,是則繼續(xù),否則不滿足;驗(yàn)證所述PIN碼是否被鎖定,是則不滿足,否則滿足所述認(rèn)證條件。所述步驟S3具體包括獲取所述指令的前四個字節(jié)數(shù)據(jù)得到指令首部,獲取所述指令中除前四個字節(jié)外的部分得到第一數(shù)據(jù);判斷所述第一數(shù)據(jù)的第一個字節(jié)的值是否為0,是則獲取所述第一數(shù)據(jù)的第二及、第三字節(jié)數(shù)據(jù)得到第一長度的值;否則獲取所述第一數(shù)據(jù)的第一字節(jié)數(shù)據(jù)得到第一長度的值;根據(jù)所述第一長度的值,取所述第一數(shù)據(jù)中所述第一長度對應(yīng)的字節(jié)之后相應(yīng)字節(jié)數(shù)上的數(shù)據(jù)得到第二數(shù)據(jù);根據(jù)所述第一預(yù)設(shè)長度的值,從所述第二數(shù)據(jù)中截取相應(yīng)字節(jié)數(shù)上的數(shù)據(jù)得到所述第一驗(yàn)證碼;將所述命令首部、所述第二數(shù)據(jù)截取后的數(shù)據(jù)及其長度組合生成所述待驗(yàn)證數(shù)據(jù)。 或者,所述步驟S3具體包括獲取所述指令的前四個字節(jié)數(shù)據(jù)得到指令首部,獲取所述指令中除前四個字節(jié)外的部分得到第一數(shù)據(jù);獲取所述第一數(shù)據(jù)的第一個字節(jié)或前3個字節(jié)數(shù)據(jù)得到第一長度的值;根據(jù)所述第一長度的值,取所述第一數(shù)據(jù)中所述第一長度對應(yīng)的字節(jié)之后相應(yīng)字節(jié)數(shù)上的數(shù)據(jù)得到第二數(shù)據(jù);根據(jù)所述第一預(yù)設(shè)長度的值,從所述第二數(shù)據(jù)的中截取相應(yīng)字節(jié)數(shù)上的數(shù)據(jù)得到所述第一驗(yàn)證碼;將所述命令首部、所述第二數(shù)據(jù)截取后的數(shù)據(jù)及其長度組合生成所述待驗(yàn)證數(shù)據(jù)。進(jìn)一步地,在所述得到第一長度的值后還包括驗(yàn)證所述第一長度的值是否大于所述第一預(yù)設(shè)長度的值,是則繼續(xù),否則報錯。所述步驟S4具體包括步驟a :對所述待驗(yàn)證數(shù)據(jù)進(jìn)行補(bǔ)位,并將補(bǔ)位后得到的數(shù)據(jù)按預(yù)定位數(shù)進(jìn)行分塊,并將偏移指針指向第一塊數(shù)據(jù)塊;步驟b :調(diào)用所述緩存區(qū)中的隨機(jī)數(shù)據(jù)串,并將所述隨機(jī)數(shù)據(jù)串加載到第一寄存器;步驟c :將所述偏移指針指向的當(dāng)前數(shù)據(jù)塊加載到第二寄存器,將所述第一寄存器中的數(shù)據(jù)與所述第二寄存器中的數(shù)據(jù)做異或運(yùn)算,并用運(yùn)算結(jié)果更新所述第一寄存器中的數(shù)據(jù);步驟d :調(diào)用所述第一存儲空間中的PIN碼,將所述PIN碼或?qū)λ鯬IN碼進(jìn)行散列運(yùn)算得到的散列值作為加密密鑰,對所述第一寄存器中的數(shù)據(jù)進(jìn)行加密,并用加密結(jié)果更新所述第一寄存器中的數(shù)據(jù);步驟e:判斷所述當(dāng)前數(shù)據(jù)塊是否為最后一塊數(shù)據(jù)塊,是則執(zhí)行步驟f,否則將所述偏移指針指向下一塊數(shù)據(jù)塊,返回步驟c ;步驟f:獲取所述第一寄存器中的數(shù)據(jù)得到所述安全數(shù)據(jù),根據(jù)所述第一預(yù)設(shè)長度的值從所述安全數(shù)據(jù)中提取相應(yīng)字節(jié)數(shù)數(shù)據(jù)得到所述第二驗(yàn)證碼。所述第一寄存器及所述第二寄存器的位數(shù)等于所述預(yù)定位數(shù)。所述步驟S4具體包括對所述待驗(yàn)證數(shù)據(jù)進(jìn)行補(bǔ)位,并將補(bǔ)位后得到的數(shù)據(jù)與所述緩存區(qū)中的隨機(jī)數(shù)據(jù)串組合得到組合數(shù)據(jù);
將所述PIN碼進(jìn)行散列運(yùn)算,將散列運(yùn)算結(jié)果作為密鑰對所述組合數(shù)據(jù)進(jìn)行加密,得到所述安全數(shù)據(jù);根據(jù)所述第一預(yù)設(shè)長度的值從所述安全數(shù)據(jù)中提取相應(yīng)字節(jié)數(shù)的數(shù)據(jù),得到所述第二驗(yàn)證碼。所述步驟S4具體包括將所述PIN碼、所述隨機(jī)數(shù)據(jù)串及所述待驗(yàn)證數(shù)據(jù)進(jìn)行散列運(yùn)算,得到所述安全數(shù)據(jù);根據(jù)所述第一預(yù)設(shè)長度對所述安全數(shù)據(jù)進(jìn)行分段,對分段得到的各段數(shù)據(jù)進(jìn)行異或運(yùn)算得到所述第二驗(yàn)證碼。進(jìn)一步地,在所述步驟S2、步驟S5中認(rèn)證失敗后,還包括所述終端設(shè)備向所述上位機(jī)報錯,返回事先約定的錯誤碼。 在所述步驟SI之后還包括根據(jù)指令中預(yù)定比特位的值,判斷所述指令中是否包含所述第一驗(yàn)證碼,是則執(zhí)行S2,否則執(zhí)行S6。當(dāng)判斷所述指令中不包含所述第一驗(yàn)證碼時,所述步驟S6之前還包括判斷狀態(tài)值是否為有效狀態(tài),是則繼續(xù),否則報錯。 特別地,所述終端設(shè)備接收到PIN碼驗(yàn)證指令,當(dāng)驗(yàn)證PIN碼合法時,將所述狀態(tài)值設(shè)為有效狀態(tài),同時將PIN碼重試次數(shù)計數(shù)器初始化,否則,將所述PIN碼重試次數(shù)計數(shù)器計數(shù)一次,并判斷所述PIN碼重試次數(shù)計數(shù)器的值是否達(dá)到第一預(yù)設(shè)值,是則將所述PIN碼鎖定,否則報錯,并返回SI。進(jìn)一步地,當(dāng)所述狀態(tài)值大于第二預(yù)設(shè)值時,所述狀態(tài)值為有效狀態(tài),否則為無效狀態(tài);所述步驟S5之后還包括當(dāng)所述第一驗(yàn)證碼與所述第二驗(yàn)證碼一致時,將所述狀態(tài)值設(shè)置為有效狀態(tài),并將所述PIN碼重試次數(shù)計數(shù)器初始化;當(dāng)所述第一驗(yàn)證碼與所述第二驗(yàn)證碼不一致時,將所述狀態(tài)值設(shè)置為無效狀態(tài)。根據(jù)本發(fā)明的另一方面,提供了一種終端設(shè)備認(rèn)證的裝置,包括接收模塊,用于接收上位機(jī)發(fā)送的預(yù)設(shè)類型的指令;檢查模塊用于當(dāng)所述接收模塊接收到預(yù)設(shè)類型的指令時,檢查認(rèn)證條件是否滿足;第一報錯模塊,用于當(dāng)所述檢查模塊檢查認(rèn)證條件不滿足時和驗(yàn)證模塊驗(yàn)證所述第一驗(yàn)證碼與所述第二驗(yàn)證碼不一致時報錯;解析模塊,用于當(dāng)所述檢查模塊檢查認(rèn)證條件滿足時,根據(jù)第一預(yù)設(shè)長度對所述接收模塊接收到的指令進(jìn)行解析,得到第一驗(yàn)證碼及待驗(yàn)證數(shù)據(jù);生成模塊用于調(diào)用PIN碼,將PIN碼或?qū)IN碼進(jìn)行散列運(yùn)算得到的散列值作為密鑰,對所述待驗(yàn)證數(shù)據(jù)進(jìn)行處理生成安全數(shù)據(jù),根據(jù)所述第一預(yù)設(shè)長度對所述安全數(shù)據(jù)進(jìn)行處理得到第二驗(yàn)證碼;驗(yàn)證模塊用于驗(yàn)證所述第一驗(yàn)證碼與所述第二驗(yàn)證碼是否一致;執(zhí)行模塊用于在所述驗(yàn)證模塊驗(yàn)證所述第一驗(yàn)證碼與所述第二驗(yàn)證碼一致時執(zhí)行所述指令。
進(jìn)一步地,還包括所述接收模塊還用于接收上位機(jī)發(fā)生的生成隨機(jī)數(shù)據(jù)串的指令,生成所述隨機(jī)數(shù)據(jù)串緩存在緩存區(qū),并將所述隨機(jī)數(shù)據(jù)串返回給所述上位機(jī)。所述檢查模塊包括第一驗(yàn)證單元、第二驗(yàn)證單元、第三驗(yàn)證單元及第四驗(yàn)證單元;
所述第一驗(yàn)證單元,用于驗(yàn)證所述指令長度是否不小于第二預(yù)設(shè)長度,是則繼續(xù),否則不滿足;所述第二驗(yàn)證單元,用于驗(yàn)證所述終端設(shè)備的緩存區(qū)中是否緩存有隨機(jī)數(shù)據(jù)串,是則繼續(xù),否則不滿足;所述第三驗(yàn)證單元,用于根據(jù)所述指令的第三、第四字節(jié)數(shù)據(jù)查找到第一存儲空間,判斷所述第一存儲空間中是否存有所述終端設(shè)備的PIN碼,是則繼續(xù),否則不滿足;所述第四驗(yàn)證單元,用于驗(yàn)證所述PIN碼是否被鎖定,是則不滿足,否則滿足所述認(rèn)證條件。所述生成模塊包括獲取單元、判斷單元、截取單元、組合單元;所述獲取單元,用于獲取所述指令的前四個字節(jié)數(shù)據(jù)得到指令首部,獲取所述指令中除前四個字節(jié)外的部分得到第一數(shù)據(jù);所述判斷單元,用于判斷所述第一數(shù)據(jù)的第一個字節(jié)的值是否為0,是則獲取所述第一數(shù)據(jù)的第二及第三字節(jié)數(shù)據(jù)得到第一長度的值;否則獲取所述第一數(shù)據(jù)的第一字節(jié)數(shù)據(jù)得到第一長度的值;所述截取單元,用于根據(jù)所述第一長度的值,取所述第一數(shù)據(jù)中所述第一長度對應(yīng)的字節(jié)之后相應(yīng)字節(jié)數(shù)上的數(shù)據(jù)得到第二數(shù)據(jù);根據(jù)所述第一預(yù)設(shè)長度的值,從所述第二數(shù)據(jù)中截取相應(yīng)字節(jié)數(shù)上的數(shù)據(jù)得到所述第一驗(yàn)證碼;所述組合單元,用于將所述命令首部、所述第二數(shù)據(jù)截取后的數(shù)據(jù)及其長度組合生成所述待驗(yàn)證數(shù)據(jù)。通過本發(fā)明提供的方案可以實(shí)現(xiàn)在通信雙方的通信數(shù)據(jù)不涉及重要數(shù)據(jù)的前提下,實(shí)現(xiàn)對通信方的認(rèn)證,且能防止信息被篡改,保證信息安全。


圖I為本發(fā)明實(shí)施例I提供的一種終端設(shè)備認(rèn)證方法;圖2為本發(fā)明實(shí)施例I中的第二驗(yàn)證碼生成的方法;圖3為本發(fā)明實(shí)施例2提供的一種終端設(shè)備認(rèn)證的方法;圖4為本發(fā)明實(shí)施例3提供的一種終端設(shè)備認(rèn)證的裝置。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明實(shí)施例作進(jìn)一步地詳細(xì)描述。實(shí)施例I參見圖1,本發(fā)明實(shí)施例I提供了一種終端設(shè)備認(rèn)證方法,當(dāng)終端設(shè)備接收到上位機(jī)下發(fā)的預(yù)設(shè)類型的帶有驗(yàn)證碼的指令時,執(zhí)行以下步驟I至步驟5
具體地,在本實(shí)施例中,以修改PIN指令作為例子。當(dāng)指令的前兩個字節(jié)與事先約定的特征值相符,則為修改PIN指令。所述終端設(shè)備可以為智能卡、USBkey、網(wǎng)絡(luò)客戶端等終端。優(yōu)選地,在本實(shí)施例中,所述終端設(shè)備接收到預(yù)設(shè)類型的指令前還包括接收到上位機(jī)發(fā)送的生成隨機(jī)數(shù)據(jù)串的指令,生成隨機(jī)數(shù)據(jù)串緩存在緩存區(qū)中,并將隨機(jī)數(shù)據(jù)串返回給所述上位機(jī)。步驟I :終端設(shè)備檢查驗(yàn)證條件是否滿足。如果是,繼續(xù);否則,將事先約定的錯誤碼返回給上位機(jī)。所述檢查驗(yàn)證條件是否滿足具體包括步驟101 :檢查接收到的所述指令的長度是否不小于第二預(yù)設(shè)長度,是則繼續(xù),否則不滿足驗(yàn)證條件; 優(yōu)選地,在本實(shí)施例中,數(shù)據(jù)長度以字節(jié)為單位,所述第二預(yù)設(shè)長度為11。步驟102 :驗(yàn)證所述終端設(shè)備的緩存區(qū)中是否緩存有隨機(jī)數(shù)據(jù)串;是則繼續(xù),否則不滿足條件;優(yōu)選地,在本實(shí)施例中,所述隨機(jī)數(shù)據(jù)串的長度預(yù)定,與加密算法相關(guān)。具體地,例如加密算法分組長度為8個字節(jié),則所述隨機(jī)數(shù)據(jù)串相應(yīng)地為8字節(jié)。除此之外,也可為其他的長度,如加密算法分組長度的整數(shù)倍等。步驟103 :判斷內(nèi)置PIN碼是否被鎖定,如果是,則不滿足條件;優(yōu)選地,在本實(shí)施例中,步驟103還包括根據(jù)指令的預(yù)定字段檢索到第一存儲空間,并判斷所述第一存儲空間中是否存在PIN碼,若不存在,則不滿足條件。具體地,在本實(shí)施例中,根據(jù)所述指令的第三和第四字節(jié)進(jìn)行檢索所述第一存儲空間。步驟101-步驟103順序不分先后。步驟2 :根據(jù)第一預(yù)設(shè)長度對所述指令進(jìn)行解析,得到第一驗(yàn)證碼及待驗(yàn)證數(shù)據(jù);在本實(shí)施例中,具體包括步驟201 :獲取所述指令的前四個字節(jié)數(shù)據(jù)得到指令首部,獲取所述指令中除前四個字節(jié)外的部分得到第一數(shù)據(jù);步驟202 :根據(jù)第一數(shù)據(jù)的高位端字節(jié)得到第一長度的值;優(yōu)選地,在本實(shí)施例中,根據(jù)第一數(shù)據(jù)的高位端字節(jié)得到第一長度可以為判斷所述第一數(shù)據(jù)的第一個字節(jié)的值是否為0,是則獲取所述第一數(shù)據(jù)的第二及第三字節(jié)數(shù)據(jù)得到第一長度的值;否則獲取所述第一數(shù)據(jù)的第一字節(jié)數(shù)據(jù)得到第一長度的值。具體地,當(dāng)?shù)谝粩?shù)據(jù)的第一個字節(jié)(即所述指令的第5字節(jié))的值為0x00,則將所述第一數(shù)據(jù)的第二字節(jié)作為第一長度的高字節(jié),第三字節(jié)作為第一長度的低字節(jié)(即所述指令的第六和第七字節(jié)),例如所述指令的第六和第七字節(jié)分別為0x01和0x02,則所述第一長度的值為0x0102 ;當(dāng)所述第一數(shù)據(jù)的第一字節(jié)不為0x00時,獲取所述第一數(shù)據(jù)的第一字節(jié)的數(shù)據(jù)作為第一長度的值。除上述得到第一長度的方式外,還可以按照事先約定的方式,獲取所述第一數(shù)據(jù)的第一字節(jié)數(shù)據(jù)或前三個字節(jié)數(shù)據(jù)得到第一長度的值,相應(yīng)地,當(dāng)事先約定獲取所述第一數(shù)據(jù)的第一字節(jié)數(shù)據(jù)得到第一長度的值時,若得到第一長度的值為O則向上位機(jī)報錯;當(dāng)事先約定獲取所述第一數(shù)據(jù)的前三個字節(jié)數(shù)據(jù)得到第一長度的值時,若得到的第一長度的首字節(jié)的值不為O則向上位機(jī)報錯。進(jìn)一步地,在本實(shí)施例中,得到第一長度的值后還包括檢查所述第一長度的值是否大于所述第一預(yù)設(shè)長度的值。如果不是,則將事先約定的錯誤碼回送給上位機(jī)。步驟203 :根據(jù)所述第一長度的值,取所述第一數(shù)據(jù)中所述第一長度對應(yīng)的字節(jié)之后相應(yīng)字節(jié)數(shù)上的數(shù)據(jù)得到第二數(shù)據(jù)。優(yōu)選地,在本實(shí)施例中若所述第一數(shù)據(jù)中所述第一長度對應(yīng)的字節(jié)之后的數(shù)據(jù)的長度小于所述第一長度的值,則將事先約定的錯誤碼回送給上位機(jī); 進(jìn)一步地,如果從所述第一數(shù)據(jù)中提取第一長度的數(shù)據(jù)之后還有剩余數(shù)據(jù),則可根據(jù)剩余數(shù)據(jù)判斷指令是否符合預(yù)定格式。如果不符合,則將事先約定的錯誤碼回送給上位機(jī)。具體地,在本實(shí)施例中,如果從所述第一數(shù)據(jù)中提取第一長度的數(shù)據(jù)之后還有剩余數(shù)據(jù),則將事先約定的錯誤碼回送給上位機(jī)步驟204 :根據(jù)所述第一預(yù)設(shè)長度,從所述第二數(shù)據(jù)中提取第一驗(yàn)證碼,并根據(jù)所述指令首部和所述第二數(shù)據(jù)生成待驗(yàn)證數(shù)據(jù);具體包括步驟204-1 :根據(jù)所述第一預(yù)設(shè)長度的值,從所述第二數(shù)據(jù)的低位段截取相應(yīng)字節(jié)數(shù)上的數(shù)據(jù)得到所述第一驗(yàn)證碼;步驟204-2 :計算所述第二數(shù)據(jù)中截取后的數(shù)據(jù)的長度得到第二長度,將第二長 度的值進(jìn)行編碼,將所述指令首部、第二長度的值編碼后的數(shù)據(jù)及所述第二數(shù)據(jù)截取后的數(shù)據(jù)組合,得到待驗(yàn)證數(shù)據(jù)。優(yōu)選地,所述編碼方法具體為判斷第二長度的值是否大于255 (可用一個字節(jié)表示),是則用三個字節(jié)表示所述第二長度的值,否則則用一個字節(jié)記錄第二長度的值;例如,第二長度為0x0102,則編碼后為00 01 02 ;除此之外,也可以用其他編碼方式,比如統(tǒng)一用3字節(jié)表示長度值等等。例如,所述指令為8420112C00000009010203040506070809,則所述指令首部為8420112C ;則第一數(shù)據(jù)相應(yīng)為00000009010203040506070809所述第一長度的值為9 ;所述第二數(shù)據(jù)相應(yīng)為010203040506070809 ;所述第一預(yù)設(shè)長度的值為4為例,則第一驗(yàn)證碼為06070809 ;所述第二長度為5;組合得到的所述待驗(yàn)證數(shù)據(jù)為8420112C050102030405 ;步驟3 :根據(jù)所述第一存儲空間的PIN碼、所述第一預(yù)設(shè)長度及所述待驗(yàn)證數(shù)據(jù)生成第二驗(yàn)證碼;在本實(shí)施例中所述步驟103也可以在本步驟進(jìn)行。
優(yōu)選地,在本實(shí)施例中,所述生成第二驗(yàn)證碼的過程具體為步驟301 :根據(jù)預(yù)設(shè)規(guī)則對所述待驗(yàn)證數(shù)據(jù)進(jìn)行補(bǔ)位;優(yōu)選地,在本實(shí)施例中,補(bǔ)位方法為在所述待驗(yàn)證數(shù)據(jù)后追加一個字節(jié),其值為0x80,然后追加0x00直到補(bǔ)位后的數(shù)據(jù)長度是得到安全數(shù)據(jù)所用的加密算法分組長度的整數(shù)倍為止。例如,所用加密算法算法分組長度為16。相應(yīng)地,補(bǔ)位后的待驗(yàn)證數(shù)據(jù)為8420112C 000005010203040580000000 ;
步驟302 :根據(jù)所述PIN碼、所述緩存區(qū)中的隨機(jī)數(shù)據(jù)串以及所述補(bǔ)位后的待驗(yàn)證數(shù)據(jù),生成第二驗(yàn)證碼;優(yōu)選地,在本實(shí)施例中,生成所述第二驗(yàn)證碼具體為以所述內(nèi)置PIN為密鑰,以所述隨機(jī)數(shù)據(jù)串為初始向量,使用DES-CBC算法對所述補(bǔ)位后的待驗(yàn)證數(shù)據(jù)進(jìn)行加密得到所述安全數(shù)據(jù),根據(jù)所述第一預(yù)設(shè)長度的值從所述安全數(shù)據(jù)中提取相應(yīng)字節(jié)數(shù)數(shù)據(jù)得到所述第二驗(yàn)證碼,在本實(shí)施例中,提取所述安全數(shù)據(jù)低位端相應(yīng)字節(jié)數(shù)數(shù)據(jù)得到第二驗(yàn)證碼。除此之外,還可采用其他方法,例如對PIN碼進(jìn)行散列運(yùn)算,以當(dāng)前PIN的散列值為密鑰,將所述隨機(jī)數(shù)據(jù)串與所述補(bǔ)位后的待驗(yàn)證數(shù)據(jù)拼接組合,使用AES算法以所述隨機(jī)數(shù)據(jù)串為密鑰,對拼接組合后的數(shù)據(jù)進(jìn)行加密得到安全數(shù)據(jù),從所述安全數(shù)據(jù)中提取第一預(yù)設(shè)長度的數(shù)據(jù)得到第二驗(yàn)證碼;或者將所述PIN碼、所述隨機(jī)數(shù)據(jù)串和所述待驗(yàn)證數(shù)據(jù)進(jìn)行組合,對組合后的數(shù)據(jù)進(jìn)行散列運(yùn)算,將散列結(jié)果按所述第一預(yù)設(shè)長度進(jìn)行分段,并將分段得到的各段數(shù)據(jù)進(jìn)行異或運(yùn)算,得到第二驗(yàn)證碼,等等。參見圖2,在本實(shí)施例生成第二驗(yàn)證碼具體包括步驟a :對所述待驗(yàn)證數(shù)據(jù)進(jìn)行補(bǔ)位,并將補(bǔ)位后得到的數(shù)據(jù)按預(yù)定位數(shù)進(jìn)行分塊,并將偏移指針指向第一塊數(shù)據(jù)塊;優(yōu)選地,在本實(shí)施例中,對所述待驗(yàn)證數(shù)據(jù)進(jìn)行補(bǔ)位所用的數(shù)據(jù)預(yù)設(shè),且補(bǔ)位后的長度優(yōu)選為所述預(yù)定位數(shù)的整數(shù)倍,所述預(yù)定位數(shù)為得到安全數(shù)據(jù)的加密算法所對應(yīng)分組長度。步驟b :調(diào)用所述緩存區(qū)中的隨機(jī)數(shù)據(jù)串,并將所述隨機(jī)數(shù)據(jù)串加載到第一寄存器;步驟c :將所述偏移指針指向的當(dāng)前數(shù)據(jù)塊加載到第二寄存器,將所述第一寄存器中的數(shù)據(jù)與所述第二寄存器中的數(shù)據(jù)做異或運(yùn)算,并用運(yùn)算結(jié)果更新所述第一寄存器中的數(shù)據(jù);步驟d :調(diào)用所述第一存儲空間中的PIN碼,根據(jù)所述PIN碼得到加密密鑰,對所述第一寄存器中數(shù)據(jù)進(jìn)行加密,并用加密結(jié)果更新所述第一寄存器中的數(shù)據(jù);所述第一寄存器及所述第二寄存器的位數(shù)等于所述預(yù)定位數(shù),所述步驟d中根據(jù)所述PIN碼得到加密密鑰可以為將所述PIN碼作為所述密鑰;或者,將所述PIN碼進(jìn)行散列運(yùn)算,將散列運(yùn)算結(jié)果作為所述密鑰。步驟e:判斷所述當(dāng)前數(shù)據(jù)塊是否為最后一塊數(shù)據(jù)塊,是則執(zhí)行步驟f,否則將所述偏移指針指向下一塊數(shù)據(jù)塊,返回步驟c ;
步驟f:獲取所述第一寄存器中的數(shù)據(jù)得到所述安全數(shù)據(jù),根據(jù)所述第一預(yù)設(shè)長度的值從所述安全數(shù)據(jù)中提取相應(yīng)字節(jié)數(shù)數(shù)據(jù)得到所述第二驗(yàn)證碼。優(yōu)選地,在本實(shí)施例中,從所述安全數(shù)據(jù)的高位端提取第一預(yù)設(shè)長度的數(shù)據(jù)得到第二驗(yàn)證碼。步驟4 :判斷第一驗(yàn)證碼和第二驗(yàn)證碼是否一致,如果是,認(rèn)證通過,執(zhí)行所述指令,將執(zhí)行結(jié)果回送給上位機(jī);否則,拒絕執(zhí)行,將事先約定的錯誤碼回送給上位機(jī)。具體地,若所 述指令為修改PIN碼指令,則認(rèn)證通過后,所述終端設(shè)備將所述第一存儲空間中的PIN碼更新為新的PIN碼,所述新的PIN碼包含在所述第二數(shù)據(jù)中。實(shí)施例2參見圖3,當(dāng)終端設(shè)備接收到上位機(jī)下發(fā)預(yù)設(shè)類型的指令時,執(zhí)行以下操作具體地,在本實(shí)施例中,預(yù)設(shè)類型的指令包括簽名指令,以所述指令為簽名指令為例。在本實(shí)施例中,所述首部的長度為2個字節(jié)。步驟401 :判斷所述指令是否帶有驗(yàn)證碼。如果沒有,執(zhí)行步驟402 ;否則,執(zhí)行步驟 403 ;具體地,在本實(shí)施例中,以所述指令首部的預(yù)定比特位作為標(biāo)志位。如果所述標(biāo)志位被置位,則所述指令帶有驗(yàn)證碼;否則,所述指令不帶驗(yàn)證碼。優(yōu)選地,在本實(shí)施例中,以所述指令第一個字節(jié)的低半字節(jié)的次高位作為標(biāo)志位。即,若所述指令第一個字節(jié)的低半字節(jié)大于0x04,則本實(shí)施例帶有驗(yàn)證碼。也可使用其他比特位。步驟402 :檢查所述指令所需的PIN碼認(rèn)證條件是否滿足,是則繼續(xù)執(zhí)行步驟405,否則,將事先約定的錯誤碼回送給上位機(jī);優(yōu)選地,在本實(shí)施例中,通過檢查內(nèi)部保存的狀態(tài)值檢查所需的PIN碼認(rèn)證條件是否滿足。如果所述狀態(tài)值大于預(yù)設(shè)值則所述狀態(tài)值為有效狀態(tài),PIN碼認(rèn)證條件滿足;否則,所述狀態(tài)值為無效狀態(tài),PIN碼認(rèn)證條件不滿足。在本實(shí)施例中,當(dāng)PIN碼認(rèn)證成功后,將所述狀態(tài)值設(shè)為高于預(yù)設(shè)的值。PIN碼認(rèn)證的具體方法不在本發(fā)明范圍之內(nèi),不做具體描述。步驟403 :解析所述指令,從中提取第一驗(yàn)證碼和待驗(yàn)證數(shù)據(jù);所述指令解析的具體方法實(shí)施例I已有描述,在此不再贅述。進(jìn)一步地,在本實(shí)施例中,步驟403還包括檢查PIN碼是否被鎖定。如果是,將事先約定的錯誤碼回送給上位機(jī)。步驟404 :根據(jù)所述待驗(yàn)證數(shù)據(jù)和內(nèi)置PIN驗(yàn)證所述第一驗(yàn)證碼是否合法,是則認(rèn)證通過,繼續(xù)執(zhí)行步驟405 ;否則報錯,將事先約定的錯誤碼回送給上位機(jī);驗(yàn)證第一驗(yàn)證碼的具體方法實(shí)施例I已有描述,在此不再贅述。優(yōu)選地,在本實(shí)施例中,步驟404還包括如果驗(yàn)證不通過,將內(nèi)部保存的狀態(tài)值設(shè)為無效狀態(tài),即將狀態(tài)值的值設(shè)為小于預(yù)設(shè)值。進(jìn)一步地,將PIN碼重試次數(shù)計數(shù)器計數(shù)一次,本實(shí)施例中計數(shù)器的計數(shù)值遞減。如果PIN碼重試次數(shù)計數(shù)器的值達(dá)到預(yù)定值(例如0),則將所述PIN碼設(shè)為鎖定狀態(tài)。如果認(rèn)證通過,則將內(nèi)部保存的狀態(tài)值設(shè)為有效狀態(tài),即將所述狀態(tài)值的值設(shè)為高于預(yù)設(shè)值。步驟405 :執(zhí)行所述指令,將結(jié)果返回給上位機(jī)。具體地,在本實(shí)施例中,根據(jù)所述待驗(yàn)證數(shù)據(jù)計算簽名。實(shí)施例3參見圖4,本發(fā)明實(shí)施 例3提供了一種終端設(shè)備認(rèn)證的裝置,包括接收模塊51,用于接收上位機(jī)發(fā)送的預(yù)設(shè)類型的指令;檢查模塊52,用于當(dāng)所述接收模塊接收到預(yù)設(shè)類型的指令時,檢查認(rèn)證條件是否滿足,還用于接收到上位機(jī)發(fā)生的生成隨機(jī)數(shù)據(jù)串的指令時,生成所述隨機(jī)數(shù)據(jù)串緩存在緩存區(qū),并將所述隨機(jī)數(shù)據(jù)串返回給所述上位機(jī);第一報錯模塊53,用于當(dāng)所述檢查模塊52檢查認(rèn)證條件不滿足時和驗(yàn)證模塊驗(yàn)證56驗(yàn)證所述第一驗(yàn)證碼與所述第二驗(yàn)證碼不一致時報錯;解析模塊54,用于當(dāng)所述檢查模塊52檢查認(rèn)證條件滿足時,根據(jù)第一預(yù)設(shè)長度對所述接收模塊51接收到的指令進(jìn)行解析,得到第一驗(yàn)證碼及待驗(yàn)證數(shù)據(jù);生成模塊55,用于調(diào)用PIN碼,將PIN碼或?qū)IN碼進(jìn)行散列運(yùn)算得到的散列值作為密鑰,對所述待驗(yàn)證數(shù)據(jù)進(jìn)行處理生成安全數(shù)據(jù),根據(jù)所述第一預(yù)設(shè)長度對所述安全數(shù)據(jù)進(jìn)行處理得到第二驗(yàn)證碼;驗(yàn)證模塊56,用于驗(yàn)證所述第一驗(yàn)證碼與所述第二驗(yàn)證碼是否一致;執(zhí)行模塊57,用于在所述驗(yàn)證模塊56驗(yàn)證所述第一驗(yàn)證碼與所述第二驗(yàn)證碼一致時執(zhí)行所述指令。所述檢查模塊52包括第一驗(yàn)證單元521、第二驗(yàn)證單元522、第三驗(yàn)證單元523及第四驗(yàn)證單元524 ;所述第一驗(yàn)證單元521,用于驗(yàn)證所述指令長度是否不小于第二預(yù)設(shè)長度,是則繼續(xù),否則不滿足;所述第二驗(yàn)證單元522,用于驗(yàn)證所述終端設(shè)備的緩存區(qū)中是否緩存有隨機(jī)數(shù)據(jù)串,是則繼續(xù),否則不滿足;所述第三驗(yàn)證單元523,用于根據(jù)所述指令的第三、第四字節(jié)數(shù)據(jù)查找到第一存儲空間,判斷所述第一存儲空間中是否存有所述終端設(shè)備的PIN碼,是則繼續(xù),否則不滿足;所述第四驗(yàn)證單元524,用于驗(yàn)證所述PIN碼是否被鎖定,是則不滿足,否則滿足所述認(rèn)證條件。所述生成模塊55包括獲取單元551、判斷單元552、截取單元553、組合單元554 ;所述獲取單元551,用于獲取所述指令的前四個字節(jié)數(shù)據(jù)得到指令首部,獲取所述指令中除前四個字節(jié)外的部分得到第一數(shù)據(jù);所述判斷單元552,用于判斷所述第一數(shù)據(jù)的第一個字節(jié)的值是否為0,是則獲取所述第一數(shù)據(jù)的第二及第三字節(jié)數(shù)據(jù)得到第一長度的值;否則獲取所述第一數(shù)據(jù)的第一字節(jié)數(shù)據(jù)得到第一長度的值;所述截取單553元,用于根據(jù)所述第一長度的值,取所述第一數(shù)據(jù)中所述第一長度對應(yīng)的字節(jié)之后相應(yīng)字節(jié)數(shù)上的數(shù)據(jù)得到第二數(shù)據(jù);根據(jù)所述第一預(yù)設(shè)長度的值,從所述第二數(shù)據(jù)中截取相應(yīng)字節(jié)數(shù)上的數(shù)據(jù)得到所述第一驗(yàn)證碼;所述組合單元554,用于將所述命令首部、所述第二數(shù)據(jù)截取后的數(shù)據(jù)及其長度組合生成所述待驗(yàn)證數(shù)據(jù);
以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種終端設(shè)備認(rèn)證的方法,其特征在于,包括 步驟SI :終端設(shè)備接收上位機(jī)發(fā)送的預(yù)設(shè)類型的指令; 步驟S2 :檢查認(rèn)證條件是否滿足,是則執(zhí)行S3,否則認(rèn)證失??; 步驟S3 :根據(jù)第一預(yù)設(shè)長度對所述指令進(jìn)行解析,得到第一驗(yàn)證碼及待驗(yàn)證數(shù)據(jù);步驟S4 :所述終端設(shè)備調(diào)用PIN碼,將PIN碼或?qū)IN碼進(jìn)行散列運(yùn)算得到的散列值作為密鑰,對所述待驗(yàn)證數(shù)據(jù)進(jìn)行處理得到安全數(shù)據(jù),根據(jù)所述第一預(yù)設(shè)長度對所述安全數(shù)據(jù)進(jìn)行處理得到第二驗(yàn)證碼; 步驟S5 :驗(yàn)證所述第一驗(yàn)證碼與所述第二驗(yàn)證碼是否一致,是則認(rèn)證通過,繼續(xù),否則認(rèn)證失?。? 步驟S6 :所述終端設(shè)備執(zhí)行所述指令。
2.如權(quán)利要求I所述的方法,其特征在于,所述步驟SI之前包括 當(dāng)所述終端設(shè)備接收到上位機(jī)發(fā)送的生成隨機(jī)數(shù)據(jù)串的指令時,生成隨機(jī)數(shù)據(jù)串緩存在緩存區(qū),并將所述隨機(jī)數(shù)據(jù)串返回給所述上位機(jī)。
3.如權(quán)利要求2所述的方法,其特征在于,所述步驟S2中檢查認(rèn)證條件是否滿足具體包括 驗(yàn)證所述指令長度是否不小于第二預(yù)設(shè)長度,是則繼續(xù),否則不滿足; 驗(yàn)證所述終端設(shè)備的緩存區(qū)中是否緩存有所述隨機(jī)數(shù)據(jù)串,是則繼續(xù),否則不滿足;根據(jù)所述指令的第三、第四字節(jié)數(shù)據(jù)查找到第一存儲空間,判斷所述第一存儲空間中是否存有所述終端設(shè)備的PIN碼,是則繼續(xù),否則不滿足; 驗(yàn)證所述PIN碼是否被鎖定,是則不滿足,否則滿足所述認(rèn)證條件。
4.如權(quán)利要求3所述的方法,其特征在于,所述步驟S3具體包括 獲取所述指令的前四個字節(jié)數(shù)據(jù)得到指令首部,獲取所述指令中除前四個字節(jié)外的部分得到第一數(shù)據(jù); 判斷所述第一數(shù)據(jù)的第一個字節(jié)的值是否為O,是則獲取所述第一數(shù)據(jù)的第二及第三字節(jié)數(shù)據(jù)得到第一長度的值;否則獲取所述第一數(shù)據(jù)的第一字節(jié)數(shù)據(jù)得到第一長度的值;根據(jù)所述第一長度的值,取所述第一數(shù)據(jù)中所述第一長度對應(yīng)的字節(jié)之后相應(yīng)字節(jié)數(shù)上的數(shù)據(jù)得到第二數(shù)據(jù); 根據(jù)所述第一預(yù)設(shè)長度的值,從所述第二數(shù)據(jù)中截取相應(yīng)字節(jié)數(shù)上的數(shù)據(jù)得到所述第一驗(yàn)證碼; 將所述命令首部、所述第二數(shù)據(jù)截取后的數(shù)據(jù)及其長度組合生成所述待驗(yàn)證數(shù)據(jù)。
5.如權(quán)利要求3所述的方法,其特征在于,所述步驟S3具體包括 獲取所述指令的前四個字節(jié)數(shù)據(jù)得到指令首部,獲取所述指令中除前四個字節(jié)外的部分得到第一數(shù)據(jù); 獲取所述第一數(shù)據(jù)的第一個字節(jié)或前3個字節(jié)數(shù)據(jù)得到第一長度的值; 根據(jù)所述第一長度的值,取所述第一數(shù)據(jù)中所述第一長度對應(yīng)的字節(jié)之后相應(yīng)字節(jié)數(shù)上的數(shù)據(jù)得到第二數(shù)據(jù); 根據(jù)所述第一預(yù)設(shè)長度的值,從所述第二數(shù)據(jù)的中截取相應(yīng)字節(jié)數(shù)上的數(shù)據(jù)得到所述第一驗(yàn)證碼; 將所述命令首部、所述第二數(shù)據(jù)截取后的數(shù)據(jù)及其長度組合生成所述待驗(yàn)證數(shù)據(jù)。
6.如權(quán)利要求4或5所述的方法,其特征在于,在所述得到第一長度的值后還包括 驗(yàn)證所述第一長度的值是否大于所述第一預(yù)設(shè)長度的值,是則繼續(xù),否則報錯。
7.如權(quán)利要求4或5所述的方法,其特征在于,所述步驟S4具體包括 步驟a :對所述待驗(yàn)證數(shù)據(jù)進(jìn)行補(bǔ)位,并將補(bǔ)位后得到的數(shù)據(jù)按預(yù)定位數(shù)進(jìn)行分塊,并將偏移指針指向第一塊數(shù)據(jù)塊; 步驟b :調(diào)用所述緩存區(qū)中的隨機(jī)數(shù)據(jù)串,并將所述隨機(jī)數(shù)據(jù)串加載到第一寄存器; 步驟c :將所述偏移指針指向的當(dāng)前數(shù)據(jù)塊加載到第二寄存器,將所述第一寄存器中的數(shù)據(jù)與所述第二寄存器中的數(shù)據(jù)做異或運(yùn)算,并用運(yùn)算結(jié)果更新所述第一寄存器中的數(shù)據(jù); 步驟d :調(diào)用所述第一存儲空間中的PIN碼,將所述PIN碼或?qū)λ鯬IN碼進(jìn)行散列運(yùn)算得到的散列值作為加密密鑰,對所述第一寄存器中的數(shù)據(jù)進(jìn)行加密,并用加密結(jié)果更新所述第一寄存器中的數(shù)據(jù); 步驟e:判斷所述當(dāng)前數(shù)據(jù)塊是否為最后一塊數(shù)據(jù)塊,是則執(zhí)行步驟f,否則將所述偏移指針指向下一塊數(shù)據(jù)塊,返回步驟c ; 步驟f:獲取所述第一寄存器中的數(shù)據(jù)得到所述安全數(shù)據(jù),根據(jù)所述第一預(yù)設(shè)長度的值從所述安全數(shù)據(jù)中提取相應(yīng)字節(jié)數(shù)數(shù)據(jù)得到所述第二驗(yàn)證碼。
8.如權(quán)利要求7所述的方法,其特征在于,所述第一寄存器及所述第二寄存器的位數(shù)等于所述預(yù)定位數(shù)。
9.如權(quán)利要求4或5所述的方法,其特征在于,所述步驟S4具體包括 對所述待驗(yàn)證數(shù)據(jù)進(jìn)行補(bǔ)位,并將補(bǔ)位后得到的數(shù)據(jù)與所述緩存區(qū)中的隨機(jī)數(shù)據(jù)串組合得到組合數(shù)據(jù); 將所述PIN碼進(jìn)行散列運(yùn)算,將散列運(yùn)算結(jié)果作為密鑰對所述組合數(shù)據(jù)進(jìn)行加密,得到所述安全數(shù)據(jù);根據(jù)所述第一預(yù)設(shè)長度的值從所述安全數(shù)據(jù)中提取相應(yīng)字節(jié)數(shù)的數(shù)據(jù),得到所述第二驗(yàn)證碼。
10.如權(quán)利要求4或5所述的方法,其特征在于,所述步驟S4具體包括 將所述PIN碼、所述隨機(jī)數(shù)據(jù)串及所述待驗(yàn)證數(shù)據(jù)進(jìn)行散列運(yùn)算,得到所述安全數(shù)據(jù); 根據(jù)所述第一預(yù)設(shè)長度對所述安全數(shù)據(jù)進(jìn)行分段,對分段得到的各段數(shù)據(jù)進(jìn)行異或運(yùn)算得到所述第二驗(yàn)證碼。
11.如權(quán)利要求I所述的方法,其特征在于,在所述步驟S2、步驟S5中認(rèn)證失敗后,還包括 所述終端設(shè)備向所述上位機(jī)報錯,返回事先約定的錯誤碼。
12.如權(quán)利要求I所述的方法,其特征在于,在所述步驟SI之后還包括 根據(jù)指令中預(yù)定比特位的值,判斷所述指令中是否包含所述第一驗(yàn)證碼,是則執(zhí)行S2,否則執(zhí)行S6。
13.如權(quán)利要求12所述的方法,其特征在于,當(dāng)判斷所述指令中不包含所述第一驗(yàn)證碼時,所述步驟S6之前還包括 判斷狀態(tài)值是否為有效狀態(tài),是則繼續(xù),否則報錯。
14.如權(quán)利要求13所述的方法,其特征在于,所述終端設(shè)備接收到PIN碼驗(yàn)證指令,當(dāng)驗(yàn)證PIN碼合法時,將所述狀態(tài)值設(shè)為有效狀態(tài),同時將PIN碼重試次數(shù)計數(shù)器初始化,否貝1J,將所述PIN碼重試次數(shù)計數(shù)器計數(shù)一次,并判斷所述PIN碼重試次數(shù)計數(shù)器的值是否達(dá)到第一預(yù)設(shè)值,是則將所述PIN碼鎖定,否則報錯,并返回SI。
15.如權(quán)利要求14所述的方法,其特征在于,當(dāng)所述狀態(tài)值大于第二預(yù)設(shè)值時,所述狀態(tài)值為有效狀態(tài),否則為無效狀態(tài)。
16.如權(quán)利要求13所述的方法,其特征在于,所述步驟S5之后還包括 當(dāng)所述第一驗(yàn)證碼與所述第二驗(yàn)證碼一致時,將所述狀態(tài)值設(shè)置為有效狀態(tài),并將所述PIN碼重試次數(shù)計數(shù)器初始化; 當(dāng)所述第一驗(yàn)證碼與所述第二驗(yàn)證碼不一致時,將所述狀態(tài)值設(shè)置為無效狀態(tài)。
17.—種終端設(shè)備認(rèn)證的裝置,其特征在于,包括 接收模塊,用于接收上位機(jī)發(fā)送的預(yù)設(shè)類型的指令; 檢查模塊用于當(dāng)所述接收模塊接收到預(yù)設(shè)類型的指令時,檢查認(rèn)證條件是否滿足;第一報錯模塊,用于當(dāng)所述檢查模塊檢查認(rèn)證條件不滿足時和驗(yàn)證模塊驗(yàn)證所述第一驗(yàn)證碼與所述第二驗(yàn)證碼不一致時報錯; 解析模塊,用于當(dāng)所述檢查模塊檢查認(rèn)證條件滿足時,根據(jù)第一預(yù)設(shè)長度對所述接收模塊接收到的指令進(jìn)行解析,得到第一驗(yàn)證碼及待驗(yàn)證數(shù)據(jù); 生成模塊用于調(diào)用PIN碼,將PIN碼或?qū)IN碼進(jìn)行散列運(yùn)算得到的散列值作為密鑰,對所述待驗(yàn)證數(shù)據(jù)進(jìn)行處理生成安全數(shù)據(jù),根據(jù)所述第一預(yù)設(shè)長度對所述安全數(shù)據(jù)進(jìn)行處理得到第二驗(yàn)證碼; 驗(yàn)證模塊用于驗(yàn)證所述第一驗(yàn)證碼與所述第二驗(yàn)證碼是否一致; 執(zhí)行模塊用于在所述驗(yàn)證模塊驗(yàn)證所述第一驗(yàn)證碼與所述第二驗(yàn)證碼一致時執(zhí)行所述指令。
18.如權(quán)利要求17所述的裝置,其特征在于,還包括 所述接收模塊還用于接收上位機(jī)發(fā)生的生成隨機(jī)數(shù)據(jù)串的指令,生成所述隨機(jī)數(shù)據(jù)串緩存在緩存區(qū),并將所述隨機(jī)數(shù)據(jù)串返回給所述上位機(jī)。
19.如權(quán)利要求18所述的裝置,其特征在于,所述檢查模塊包括第一驗(yàn)證單元、第二驗(yàn)證單元、第三驗(yàn)證單元及第四驗(yàn)證單元; 所述第一驗(yàn)證單元,用于驗(yàn)證所述指令長度是否不小于第二預(yù)設(shè)長度,是則繼續(xù),否則不滿足; 所述第二驗(yàn)證單元,用于驗(yàn)證所述終端設(shè)備的緩存區(qū)中是否緩存有隨機(jī)數(shù)據(jù)串,是則繼續(xù),否則不滿足; 所述第三驗(yàn)證單元,用于根據(jù)所述指令的第三、第四字節(jié)數(shù)據(jù)查找到第一存儲空間,判斷所述第一存儲空間中是否存有所述終端設(shè)備的PIN碼,是則繼續(xù),否則不滿足; 所述第四驗(yàn)證單元,用于驗(yàn)證所述PIN碼是否被鎖定,是則不滿足,否則滿足所述認(rèn)證條件。
20.如權(quán)利要求17所述的裝置,其特征在于,所述生成模塊包括獲取單元、判斷單元、截取單元、組合單元; 所述獲取單元,用于獲取所述指令的前四個字節(jié)數(shù)據(jù)得到指令首部,獲取所述指令中除前四個字節(jié)外的部分得到第一數(shù)據(jù); 所述判斷單元,用于判斷所述第一數(shù)據(jù)的第一個字節(jié)的值是否為0,是則獲取所述第一數(shù)據(jù)的第二及第三字節(jié)數(shù)據(jù)得到第一長度的值;否則獲取所述第一數(shù)據(jù)的第一字節(jié)數(shù)據(jù)得到第一長度的值; 所述截取單元,用于根據(jù)所述第一長度的值,取所述第一數(shù)據(jù)中所述第一長度對應(yīng)的字節(jié)之后相應(yīng)字節(jié)數(shù)上的數(shù)據(jù)得到第二數(shù)據(jù);根據(jù)所述第一預(yù)設(shè)長度的值,從所述第二數(shù)據(jù)中截取相應(yīng)字節(jié)數(shù)上的數(shù)據(jù)得到所述第一驗(yàn)證碼 ; 所述組合單元,用于將所述命令首部、所述第二數(shù)據(jù)截取后的數(shù)據(jù)及其長度組合生成所述待驗(yàn)證數(shù)據(jù)。
全文摘要
本發(fā)明公開了一種終端設(shè)備認(rèn)證方法,涉及身份認(rèn)證領(lǐng)域,該方法包括終端設(shè)備接收上位機(jī)發(fā)送的預(yù)設(shè)類型的指令,檢查認(rèn)證條件是否滿足,是則繼續(xù),否則認(rèn)證失??;所述終端設(shè)備對所述指令進(jìn)行解析,得到第一驗(yàn)證碼及待校驗(yàn)數(shù)據(jù);根據(jù)PIN碼得到密鑰,用所述密鑰對所述待驗(yàn)證數(shù)據(jù)進(jìn)行處理得到安全數(shù)據(jù),從所述安全數(shù)據(jù)中提取出第二驗(yàn)證碼;驗(yàn)證所述第一驗(yàn)證碼與所述第二驗(yàn)證碼是否一致,是則認(rèn)證通過,否則認(rèn)證失敗。通過本發(fā)明提供的方法,可以實(shí)現(xiàn)認(rèn)證雙方在通信數(shù)據(jù)不涉及風(fēng)險數(shù)據(jù)的前提下,完成雙方認(rèn)證,提高了認(rèn)證過程的安全性。
文檔編號H04L9/32GK102761557SQ20121027066
公開日2012年10月31日 申請日期2012年7月31日 優(yōu)先權(quán)日2012年7月31日
發(fā)明者于華章, 陸舟 申請人:飛天誠信科技股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1