本發(fā)明涉及信息安全技術(shù)領(lǐng)域,尤其涉及一種設(shè)備認證方法、卡設(shè)備及設(shè)備認證系統(tǒng)。
背景技術(shù):
在與安全設(shè)備交互數(shù)據(jù)之前,為了保證交互數(shù)據(jù)的安全性,主機與卡設(shè)備之間需要互認對方的身份,確認身份后,進一步協(xié)商出一個會話密鑰,后續(xù)交互數(shù)據(jù)用會話密鑰加密傳輸?,F(xiàn)有的卡設(shè)備與主設(shè)備之間進行數(shù)據(jù)交互時,其會話密鑰為固定的數(shù)據(jù),使得卡設(shè)備與主設(shè)備之間數(shù)據(jù)交互的安全性較低。
技術(shù)實現(xiàn)要素:
本發(fā)明的主要目的是提供一種設(shè)備認證方法、卡設(shè)備及設(shè)備認證系統(tǒng),旨在提高卡設(shè)備與主設(shè)備之間數(shù)據(jù)交互的安全性。
為實現(xiàn)上述目的,本發(fā)明提出的設(shè)備認證方法包括以下步驟:
當卡設(shè)備與主設(shè)備建立通信連接時,觸發(fā)所述卡設(shè)備生成第一隨機數(shù)據(jù);
卡設(shè)備將第一隨機數(shù)據(jù)及卡設(shè)備標注碼傳輸至主設(shè)備,并觸發(fā)主設(shè)備生成第二隨機數(shù)據(jù)傳輸至卡設(shè)備;主設(shè)備獲取數(shù)據(jù)庫中的密鑰數(shù)據(jù)、第一隨機數(shù)據(jù)及生成的第二隨機數(shù)據(jù),計算生成第一身份認證數(shù)據(jù)和第一會話密鑰數(shù)據(jù);
卡設(shè)備根據(jù)密鑰數(shù)據(jù)、第一隨機數(shù)據(jù)及第二隨機數(shù)據(jù)計算生成第二身份認證數(shù)據(jù)和第二會話密鑰數(shù)據(jù);
卡設(shè)備獲取主設(shè)備的第一身份認證數(shù)據(jù)并與第二身份認證數(shù)據(jù)對比,以判定身份認證是否成功;
當身份認證成功,則卡設(shè)備通過第二會話密鑰數(shù)據(jù)與主設(shè)備進行數(shù)據(jù)交互。
優(yōu)選地,所述當卡設(shè)備與主設(shè)備建立通信連接時,觸發(fā)所述卡設(shè)備生成第一隨機數(shù)據(jù)的步驟,包括:
卡設(shè)備完成密鑰數(shù)據(jù)配置;所述密鑰數(shù)據(jù)包括卡設(shè)備標識碼、用以身份認證使用的第一密鑰數(shù)據(jù)、用以會話密鑰協(xié)商使用的第二密鑰數(shù)據(jù);
卡設(shè)備與主設(shè)備建立通信連接,觸發(fā)所述卡設(shè)備生成第一隨機數(shù)據(jù)。
優(yōu)選地,所述卡設(shè)備完成密鑰數(shù)據(jù)配置的步驟,包括:
主設(shè)備生成卡設(shè)備標識碼、第一密鑰數(shù)據(jù)及第二密鑰數(shù)據(jù),并存入數(shù)據(jù)庫中;
主設(shè)備將上述數(shù)據(jù)寫入卡設(shè)備內(nèi),卡設(shè)備完成密鑰數(shù)據(jù)配置。
優(yōu)選地,所述卡設(shè)備獲取主設(shè)備的第一身份認證數(shù)據(jù)并與第二身份認證數(shù)據(jù)對比以判定身份認證是否成功的步驟,包括:
卡設(shè)備獲取主設(shè)備的第一身份認證數(shù)據(jù)并與第二身份認證數(shù)據(jù)對比是否相等,并獲取對比結(jié)果狀態(tài)值;
卡設(shè)備根據(jù)獲取的對比結(jié)果狀態(tài)值以判定身份認證是否成功。
本發(fā)明還提供一種卡設(shè)備,其特征在于,所述卡設(shè)備包括觸發(fā)模塊、傳輸模塊、計算模塊、獲取模塊和交互模塊,其中,
所述觸發(fā)模塊,用以當卡設(shè)備與主設(shè)備建立通信連接時,觸發(fā)所述卡設(shè)備生成第一隨機數(shù)據(jù);
所述傳輸模塊,用以將第一隨機數(shù)據(jù)及卡設(shè)備標識碼傳輸至主設(shè)備,并觸發(fā)主設(shè)備生成第二隨機數(shù)據(jù)傳輸至卡設(shè)備;主設(shè)備獲取數(shù)據(jù)庫中的密鑰數(shù)據(jù)、第一隨機數(shù)據(jù)及生成的第二隨機數(shù)據(jù),計算生成第一身份認證數(shù)據(jù)和第一會話密鑰數(shù)據(jù);
所述計算模塊,用以根據(jù)密鑰數(shù)據(jù)、第一隨機數(shù)據(jù)及第二隨機數(shù)據(jù)計算生成第二身份認證數(shù)據(jù)和第二會話密鑰數(shù)據(jù);
所述獲取模塊,用以獲取主設(shè)備的第一身份認證數(shù)據(jù)并與第二身份認證數(shù)據(jù)對比,以判定身份認證是否成功;
所述交互模塊,用以當身份認證成功時通過第二會話密鑰數(shù)據(jù)與主設(shè)備進行數(shù)據(jù)交互。
優(yōu)選地,所述觸發(fā)模塊包括:
配置單元,用以完成卡設(shè)備密鑰數(shù)據(jù)配置;所述密鑰數(shù)據(jù)包括卡設(shè)備標識碼、用以身份認證使用的第一密鑰數(shù)據(jù)、用以會話密鑰協(xié)商使用的第二密鑰數(shù)據(jù);
觸發(fā)單元,用以當卡設(shè)備與主設(shè)備建立通信連接時,觸發(fā)所述卡設(shè)備生成第一隨機數(shù)據(jù)。
優(yōu)選地,所述配置單元包括:
獲取單元,用以獲取主設(shè)備生成的卡設(shè)備標識碼、第一密鑰數(shù)據(jù)及第二密鑰數(shù)據(jù),并存入數(shù)據(jù)庫中;
存儲單元,用以存儲主設(shè)備生成的上述數(shù)據(jù)并寫入卡設(shè)備內(nèi)。
優(yōu)選地,所述獲取模塊包括:
對比單元,用以獲取主設(shè)備的第一身份認證數(shù)據(jù)并與第二身份認證數(shù)據(jù)對比是否相等,并獲取對比結(jié)果狀態(tài)值;
判斷單元,用以根據(jù)獲取的對比結(jié)果狀態(tài)值以判定身份認證是否成功。
本發(fā)明還提供一種設(shè)備認證系統(tǒng),包括卡設(shè)備和主設(shè)備,所述卡設(shè)備為如上所述的卡設(shè)備。
本發(fā)明提供的技術(shù)方案中卡設(shè)備的第二身份認證數(shù)據(jù)、第二會話密鑰數(shù)據(jù)與主設(shè)備的第一身份認證數(shù)據(jù)、第一會話密鑰數(shù)據(jù)均是通過計算生成,上述數(shù)據(jù)為非固定數(shù)據(jù),使得卡設(shè)備與主設(shè)備的每一次連接均會生成不同的身份認證數(shù)據(jù)及會話密鑰數(shù)據(jù),進一步提高了卡設(shè)備與主設(shè)備之間數(shù)據(jù)交互的安全性。
附圖說明
圖1為本發(fā)明設(shè)備認證方法第一實施例的流程示意圖;
圖2為本發(fā)明設(shè)備認證方法第二實施例中卡設(shè)備完成密鑰數(shù)據(jù)配置步驟的細化流程示意圖;
圖3為本發(fā)明設(shè)備認證方法第三實施例中卡設(shè)備存儲密鑰數(shù)據(jù)步驟的細化流程示意圖;
圖4為本發(fā)明設(shè)備認證方法第四實施例中卡設(shè)備身份認證判定步驟的細化流程示意圖;
圖5為本發(fā)明卡設(shè)備第一實施例的結(jié)構(gòu)示意圖;
圖6為本發(fā)明卡設(shè)備第二實施例中觸發(fā)模塊的結(jié)構(gòu)示意圖;
圖7為本發(fā)明卡設(shè)備第三實施例中配置單元的結(jié)構(gòu)示意圖;
圖8為本發(fā)明卡設(shè)備第四實施例中獲取模塊的結(jié)構(gòu)示意圖。
本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進一步說明。
具體實施方式
應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明提出一種設(shè)備認證方法。
請參照圖1,在本發(fā)明一實施例中,所述設(shè)備認證方法包括以下步驟:
步驟S10,當卡設(shè)備與主設(shè)備建立通信連接時,觸發(fā)所述卡設(shè)備生成第一隨機數(shù)據(jù);
具體地,所述卡設(shè)備與主設(shè)備建立通信連接,且所述卡設(shè)備與主設(shè)備通信連接的建立觸發(fā)所述卡設(shè)備生成第一隨機數(shù)據(jù);其中,所述第一隨機數(shù)據(jù)為64位的第一隨機數(shù)據(jù)。
步驟S20,卡設(shè)備將第一隨機數(shù)據(jù)及卡設(shè)備標識碼傳輸至主設(shè)備,并觸發(fā)主設(shè)備生成第二隨機數(shù)據(jù)傳輸至卡設(shè)備;主設(shè)備獲取數(shù)據(jù)庫中的密鑰數(shù)據(jù)、第一隨機數(shù)據(jù)及生成的第二隨機數(shù)據(jù),計算生成第一身份認證數(shù)據(jù)和第一會話密鑰數(shù)據(jù);
具體地,所述密鑰數(shù)據(jù)包括卡設(shè)備標識碼、用以身份認證使用的第一密鑰數(shù)據(jù)、用以會話密鑰協(xié)商使用的第二密鑰數(shù)據(jù)。
其中,所述卡設(shè)備標識碼可以為卡設(shè)備的ID編號數(shù)據(jù)、卡設(shè)備的標識數(shù)據(jù)、卡設(shè)備的用戶登記數(shù)據(jù)等??梢岳斫獾氖?,所述卡設(shè)備標識碼可以是特定的能識別卡設(shè)備身份的一種數(shù)據(jù),也可以是用以識別卡設(shè)備身份的幾種數(shù)據(jù)的組合;本實施例中,以所述卡設(shè)備標識碼為卡設(shè)備的ID編號數(shù)據(jù)為例進行說明。
應當說明的是,所述卡設(shè)備標識碼的數(shù)據(jù)長度可以為64位或128位,本實施例中,優(yōu)選所述卡設(shè)備標識碼長度為64位;且默認所述卡設(shè)備的ID編號數(shù)據(jù)為零。
其中,所述第一密鑰數(shù)據(jù)用以進行身份認證使用,其長度為128位;所述第二密鑰數(shù)據(jù)用以進行會話密鑰協(xié)商使用,其長度為128位。且所述卡設(shè)備標識碼與第一密鑰數(shù)據(jù)、第二密鑰數(shù)據(jù)之間存在對應關(guān)系。
卡設(shè)備將上述64位卡設(shè)備標識碼、128位第一密鑰數(shù)據(jù)和128位第二密鑰數(shù)據(jù)寫入卡設(shè)備相應區(qū)域;因此,在執(zhí)行卡設(shè)備與主設(shè)備認證之前,所述卡設(shè)備已經(jīng)配置64位卡設(shè)備ID編號數(shù)據(jù)、128位第一密鑰數(shù)據(jù)和128位第二密鑰數(shù)據(jù)。
需要說明的是,所述卡設(shè)備對寫入的64位卡設(shè)備標識碼、128位第一密鑰數(shù)據(jù)和128位第二密鑰數(shù)據(jù)進行校驗;若校驗成功,則所述卡設(shè)備對應存儲所述64位卡設(shè)備ID編號數(shù)據(jù)的區(qū)域配置為只讀區(qū)域,所述卡設(shè)備對應存儲所述第一密鑰數(shù)據(jù)和第二密鑰數(shù)據(jù)的區(qū)域配置為不可訪問區(qū)以禁止讀寫操作。
具體地,主設(shè)備根據(jù)64位的卡設(shè)備標識碼從數(shù)據(jù)庫中獲取已寫入卡設(shè)備內(nèi)的128位第一密鑰數(shù)據(jù)和128位第二密鑰數(shù)據(jù);主設(shè)備根據(jù)64位卡設(shè)備標識碼、128位第一密鑰數(shù)據(jù)、128位第二密鑰數(shù)據(jù)、卡設(shè)備提供的64位第一隨機數(shù)據(jù)、主設(shè)備提供的64位第二隨機數(shù)據(jù),通過摘要算法生成第一身份認證數(shù)據(jù)和第一會話密鑰數(shù)據(jù)。
其中,所述第一身份認證數(shù)據(jù)為256位的第一身份認證數(shù)據(jù);所述第一會話密鑰數(shù)據(jù)為256位的第一會話密鑰數(shù)據(jù)。
可以理解的是,上述摘要算法可以為SHA256算法、MD5算法和CRC32算法中的任意一種;優(yōu)選地,本實施例中所采用的摘要算法為SHA256算法。
步驟S30,卡設(shè)備根據(jù)密鑰數(shù)據(jù)、第一隨機數(shù)據(jù)及第二隨機數(shù)據(jù)計算生成第二身份認證數(shù)據(jù)和第二會話密鑰數(shù)據(jù);
具體地,卡設(shè)備根據(jù)已寫入的128位第一密鑰數(shù)據(jù)、128位第二密鑰數(shù)據(jù)及64位卡設(shè)備標識碼,以及卡設(shè)備提供的64位第一隨機數(shù)據(jù)、主設(shè)備提供的64位第二隨機數(shù)據(jù),通過摘要算法生成第二身份認證數(shù)據(jù)和第二會話密鑰數(shù)據(jù)。
其中,所述第二身份認證數(shù)據(jù)為256位的第二身份認證數(shù)據(jù);所述第二會話密鑰數(shù)據(jù)為256位的第二會話密鑰數(shù)據(jù)。
可以理解的是,上述摘要算法可以為SHA256算法、AES算法和DES算法中的任意一種;優(yōu)選地,本實施例中所采用的摘要算法為SHA256算法。
步驟S40,卡設(shè)備獲取主設(shè)備的第一身份認證數(shù)據(jù)并與第二身份認證數(shù)據(jù)對比,以判定身份認證是否成功;
具體地,卡設(shè)備獲取主設(shè)備的第一身份認證數(shù)據(jù),并與卡設(shè)備計算生成的第二身份認證數(shù)據(jù)對比,并判斷兩者是否相等;當兩者對比相等,則判定卡設(shè)備與主設(shè)備的身份認證成功;當兩者對比不相等,則判定卡設(shè)備與主設(shè)備的身份認證失敗。
步驟S50,當身份認證成功,則卡設(shè)備通過第二會話密鑰數(shù)據(jù)與主設(shè)備進行數(shù)據(jù)交互。
進一步地,當卡設(shè)備與主設(shè)備的身份認證成功,則主設(shè)備與卡設(shè)備之間通過第二會話密鑰數(shù)據(jù)進行數(shù)據(jù)交互。
其中,所述主設(shè)備與卡設(shè)備進行數(shù)據(jù)交互的會話密鑰數(shù)據(jù)為256位第二會話密鑰數(shù)據(jù)中的前128位,且所述第二會話密鑰數(shù)據(jù)與第一會話密鑰數(shù)據(jù)一定相等。
具體地,當所述卡設(shè)備與主設(shè)備身份認證成功,主設(shè)備獲取卡設(shè)備標識碼存儲區(qū)一塊數(shù)據(jù),主設(shè)備發(fā)起讀取數(shù)據(jù)存儲區(qū)區(qū)塊號地址,卡設(shè)備接收到該請求,根據(jù)塊號地址將數(shù)據(jù)存儲區(qū)內(nèi)透明數(shù)據(jù)通過AES算法加密模塊進行加密,加密的密碼為所述第二會話密鑰數(shù)據(jù)的前半部分;主設(shè)備接收到該用第二會話密鑰數(shù)據(jù)前半部分為密鑰加密后的數(shù)據(jù),主設(shè)備通過其與所述第二會話密鑰數(shù)據(jù)前半部分相等的所述第一會話密鑰數(shù)據(jù)前半部分進行解密,進而獲取其需要使用的相應數(shù)據(jù)。
進一步地,當所述主設(shè)備和卡端設(shè)備認證成功,主設(shè)備需要更新卡設(shè)備標識碼存儲區(qū)一塊數(shù)據(jù):主設(shè)備將數(shù)據(jù)存儲區(qū)塊號地址和所述一塊數(shù)據(jù)至卡設(shè)備,所述一塊數(shù)據(jù)是用所述第一會話密鑰數(shù)據(jù)的前半部分為密鑰將該一塊數(shù)據(jù)變成加密數(shù)據(jù);所述卡設(shè)備接收到請求,所述卡設(shè)備通過與所述第一會話密鑰數(shù)據(jù)前半部分相等的所述第二會話密鑰數(shù)據(jù)前半部分進行解密,進而解密出來的所述一塊數(shù)據(jù)更新到卡設(shè)備標識碼存儲區(qū)的相應塊內(nèi)。
應當說明的是,本實施例中,所述卡設(shè)備與主設(shè)備之間實現(xiàn)安全交互數(shù)據(jù),這里的卡設(shè)備可以是運行程序芯片,也可以是一個程序或者軟件。例如接觸智能卡與讀卡器之間、無線智能卡與讀卡器之間、主從設(shè)備之間等。
進一步地,卡設(shè)備的數(shù)據(jù)由寄存器區(qū)、卡設(shè)備標識碼區(qū)、密鑰數(shù)據(jù)區(qū)、第一隨機數(shù)據(jù)區(qū)、第二隨機數(shù)據(jù)區(qū)、緩存區(qū)和數(shù)據(jù)存儲區(qū)組成。
所述寄存器區(qū)用以實現(xiàn)卡設(shè)備端運行的運行控制、狀態(tài)顯示、相應區(qū)域權(quán)限控制。
所述卡設(shè)備標識碼區(qū),當其寫入數(shù)據(jù)并校驗成功后,變成只讀區(qū)域。
所述密鑰數(shù)據(jù)區(qū)用以存儲第一密鑰數(shù)據(jù)和第二密鑰數(shù)據(jù),當所述卡設(shè)備完成第一密鑰數(shù)據(jù)和第二密鑰數(shù)據(jù)的配置,并校驗成功后,則所述密鑰數(shù)據(jù)區(qū)變成外部無權(quán)限訪問區(qū)域。
所述第一隨機數(shù)據(jù)區(qū)為只讀區(qū)域。
所述第二隨機數(shù)據(jù)區(qū)為只寫區(qū)域。
所述緩存區(qū)用以卡設(shè)備內(nèi)部運行過程使用區(qū)域,如對所述第二會話密鑰數(shù)據(jù)的存儲。
所述數(shù)據(jù)存儲區(qū)是所述卡設(shè)備內(nèi)存儲單元,且所述數(shù)據(jù)存儲區(qū)存儲的數(shù)據(jù)為透明數(shù)據(jù);但是,當所述數(shù)據(jù)存儲區(qū)存儲的數(shù)據(jù)被讀取或?qū)懭霐?shù)據(jù)時,則需要第二會話密鑰與第一會話密鑰進行解密與加密過程。
本發(fā)明提供的技術(shù)方案中卡設(shè)備的第二身份認證數(shù)據(jù)、第二會話密鑰數(shù)據(jù)與主設(shè)備的第一身份認證數(shù)據(jù)、第一會話密鑰數(shù)據(jù)均是計算生成,上述數(shù)據(jù)為非固定數(shù)據(jù),使得卡設(shè)備與主設(shè)備的每一次連接均會生成不同的身份認證數(shù)據(jù)及會話密鑰數(shù)據(jù),進一步提高了卡設(shè)備與主設(shè)備之間數(shù)據(jù)交互的安全性。
進一步地,請參照圖2,基于上述實施例,在本實施例中,上述步驟S10包括:
步驟S11,卡設(shè)備完成密鑰數(shù)據(jù)配置;所述密鑰數(shù)據(jù)包括卡設(shè)備標識碼、用以身份認證使用的第一密鑰數(shù)據(jù)、用以會話密鑰協(xié)商使用的第二密鑰數(shù)據(jù);
步驟S12,卡設(shè)備與主設(shè)備建立通信連接,觸發(fā)所述卡設(shè)備生成第一隨機數(shù)據(jù)。
具體地,卡設(shè)備在與主設(shè)備建立通信連接前,已完成密鑰數(shù)據(jù)配置,并存儲于卡設(shè)備相應區(qū)域內(nèi)。其中,所述密鑰數(shù)據(jù)包括卡設(shè)備標識碼、用以身份認證使用的第一密鑰數(shù)據(jù)和用以會話密鑰協(xié)商使用的第二密鑰數(shù)據(jù),所述卡設(shè)備標識碼存儲于卡設(shè)備標識碼區(qū),所述第一密鑰數(shù)據(jù)和第二密鑰數(shù)據(jù)存儲于卡設(shè)備的密鑰數(shù)據(jù)區(qū)。
進一步地,請參照圖3,基于上述實施例,在本實施例中,上述步驟S11包括:
步驟S111,主設(shè)備生成卡設(shè)備標識碼、第一密鑰數(shù)據(jù)及第二密鑰數(shù)據(jù),并存入數(shù)據(jù)庫中;
步驟S112,主設(shè)備將上述數(shù)據(jù)寫入卡設(shè)備內(nèi),卡設(shè)備完成密鑰數(shù)據(jù)配置。
本實施例中,主設(shè)備生成卡設(shè)備標識碼、第一密鑰數(shù)據(jù)及第二密鑰數(shù)據(jù)后,將上述數(shù)據(jù)組成一個數(shù)據(jù)記錄存儲于數(shù)據(jù)庫中;后續(xù)當所述卡設(shè)備與主設(shè)備建立通信連接時,所述主設(shè)備根據(jù)卡設(shè)備標識碼可以從所述數(shù)據(jù)庫中獲取第一密鑰數(shù)據(jù)及第二密鑰數(shù)據(jù),以方便后續(xù)主設(shè)備與卡設(shè)備進行數(shù)據(jù)交互,確保所述數(shù)據(jù)交互過程中卡設(shè)備與主設(shè)備對接的準確性。
進一步地,請參照圖4,基于上述實施例,本實施例中,所述步驟S40包括:
步驟S41,卡設(shè)備獲取主設(shè)備的第一身份認證數(shù)據(jù)并與第二身份認證數(shù)據(jù)對比是否相等,并獲取對比結(jié)果狀態(tài)值;
步驟S42,卡設(shè)備根據(jù)獲取的對比結(jié)果狀態(tài)值以判定身份認證是否成功。
本實施例中,卡設(shè)備獲取主設(shè)備的第一身份認證數(shù)據(jù),所述第一身份認證數(shù)據(jù)為256位第一身份認證數(shù)據(jù)中的前128位;卡設(shè)備將所述128位的第一身份認證數(shù)據(jù)與自己計算生成的第二身份認證數(shù)據(jù)中的前128位對比,并判斷二者是否相等并得出對比結(jié)果狀態(tài)值。
進一步地,卡設(shè)備根據(jù)獲取的對比結(jié)果狀態(tài)值用以判定身份認證是否成功;其中,所述對比結(jié)果的狀態(tài)值包括成功狀態(tài)或者失敗狀態(tài)值。當所述第一身份認證數(shù)據(jù)與第二身份認證數(shù)據(jù)相等,則卡設(shè)備獲取成功狀態(tài)值;當所述第一身份認證數(shù)據(jù)與第二身份認證數(shù)據(jù)不相等,則身份認證失敗,卡設(shè)備獲取失敗狀態(tài)值。
其中,設(shè)定所述成功狀態(tài)值為1,所述失敗狀態(tài)值為0。
本發(fā)明還提出一種卡設(shè)備,參照圖5,在一實施例中,所述卡設(shè)備包括觸發(fā)模塊、傳輸模塊、計算模塊、獲取模塊和交互模塊,其中,
所述觸發(fā)模塊10,用以當卡設(shè)備與主設(shè)備建立通信連接時,觸發(fā)所述卡設(shè)備生成第一隨機數(shù)據(jù);
具體地,當所述卡設(shè)備與主設(shè)備建立通信連接時,觸發(fā)所述卡設(shè)備生成第一隨機數(shù)據(jù);其中,所述第一隨機數(shù)據(jù)為64位的第一隨機數(shù)據(jù)。
所述傳輸模塊20,用以將第一隨機數(shù)據(jù)及卡設(shè)備標識碼傳輸至主設(shè)備,并觸發(fā)主設(shè)備生成第二隨機數(shù)據(jù)傳輸至卡設(shè)備;主設(shè)備獲取數(shù)據(jù)庫中的密鑰數(shù)據(jù)、第一隨機數(shù)據(jù)及生成的第二隨機數(shù)據(jù),計算生成第一身份認證數(shù)據(jù)和第一會話密鑰數(shù)據(jù);
具體地,所述密鑰數(shù)據(jù)包括卡設(shè)備標識碼、用以身份認證使用的第一密鑰數(shù)據(jù)、用以會話密鑰協(xié)商使用的第二密鑰數(shù)據(jù)。
其中,所述卡設(shè)備標識碼可以為卡設(shè)備的ID編號數(shù)據(jù)、卡設(shè)備的標識數(shù)據(jù)、卡設(shè)備的用戶登記數(shù)據(jù)等??梢岳斫獾氖?,所述卡設(shè)備標識碼可以是特定的能識別卡設(shè)備身份的一種數(shù)據(jù),也可以是用以識別卡設(shè)備身份的幾種數(shù)據(jù)的組合;本實施例中,以所述卡設(shè)備標識碼為卡設(shè)備的ID編號數(shù)據(jù)為例進行說明。
應當說明的是,所述卡設(shè)備標識碼的數(shù)據(jù)長度可以為64位或128位,本實施例中,優(yōu)選所述卡設(shè)備標識碼長度為64位;且默認所述卡設(shè)備的ID編號數(shù)據(jù)為零。
其中,所述第一密鑰數(shù)據(jù)用以進行身份認證使用,其長度為128位;所述第二密鑰數(shù)據(jù)用以進行會話密鑰協(xié)商使用,其長度為128位。且所述卡設(shè)備標識碼與第一密鑰數(shù)據(jù)、第二密鑰數(shù)據(jù)之間存在對應關(guān)系。
卡設(shè)備將上述64位卡設(shè)備標識碼、128位第一密鑰數(shù)據(jù)和128位第二密鑰數(shù)據(jù)寫入卡設(shè)備相應區(qū)域;因此,在執(zhí)行卡設(shè)備與主設(shè)備認證之前,所述卡設(shè)備已經(jīng)配置64位卡設(shè)備ID編號數(shù)據(jù)、128位第一密鑰數(shù)據(jù)和128位第二密鑰數(shù)據(jù)。
需要說明的是,所述卡設(shè)備對寫入的64位卡設(shè)備標識碼、128位第一密鑰數(shù)據(jù)和128位第二密鑰數(shù)據(jù)進行校驗;若校驗成功,則所述卡設(shè)備對應存儲所述64位卡設(shè)備ID編號數(shù)據(jù)的區(qū)域配置為只讀區(qū)域,所述卡設(shè)備對應存儲所述第一密鑰數(shù)據(jù)和第二密鑰數(shù)據(jù)的區(qū)域配置為不可訪問區(qū)以禁止讀寫操作。
具體地,所述傳輸模塊20將64位的卡設(shè)備標識碼、128位第一密鑰數(shù)據(jù)和128位第二密鑰數(shù)據(jù)傳輸至主設(shè)備,并觸發(fā)主設(shè)備生成第二隨機數(shù)據(jù);其中所述第二隨機數(shù)據(jù)為64位。主設(shè)備根據(jù)64位卡設(shè)備標識碼、128位第一密鑰數(shù)據(jù)、128位第二密鑰數(shù)據(jù)、64位第一隨機數(shù)據(jù)、64位第二隨機數(shù)據(jù),通過摘要算法生成第一身份認證數(shù)據(jù)和第一會話密鑰數(shù)據(jù)。
其中,所述第一身份認證數(shù)據(jù)為256位的第一身份認證數(shù)據(jù);所述第一會話密鑰數(shù)據(jù)為256位的第一會話密鑰數(shù)據(jù)。
可以理解的是,上述摘要算法可以為SHA256算法、MD5算法和CRC32算法中的任意一種;優(yōu)選地,本實施例中所采用的摘要算法為SHA256算法。
所述計算模塊30,用以根據(jù)密鑰數(shù)據(jù)、第一隨機數(shù)據(jù)及第二隨機數(shù)據(jù)計算生成第二身份認證數(shù)據(jù)和第二會話密鑰數(shù)據(jù);
具體地,所述計算模塊30用以根據(jù)已寫入的128位第一密鑰數(shù)據(jù)、128位第二密鑰數(shù)據(jù)及64位卡設(shè)備標識碼,以及64位第一隨機數(shù)據(jù)、64位第二隨機數(shù)據(jù),通過摘要算法生成第二身份認證數(shù)據(jù)和第二會話密鑰數(shù)據(jù)。
其中,所述第二身份認證數(shù)據(jù)為256位的第二身份認證數(shù)據(jù);所述第二會話密鑰數(shù)據(jù)為256位的第二會話密鑰數(shù)據(jù)。
可以理解的是,上述摘要算法可以為SHA256算法、MD5算法和CRC32算法中的任意一種;優(yōu)選地,本實施例中所采用的摘要算法為SHA256算法。
所述獲取模塊40,用以用以獲取主設(shè)備的第一身份認證數(shù)據(jù)并與第二身份認證數(shù)據(jù)對比,以判定身份認證是否成功;
具體地,卡設(shè)備的獲取模塊40獲取主設(shè)備的第一身份認證數(shù)據(jù),并與卡設(shè)備計算生成的第二身份認證數(shù)據(jù)對比,并判斷兩者是否相等;當兩者對比相等,則判定卡設(shè)備與主設(shè)備的身份認證成功;當兩者對比不相等,則判定卡設(shè)備與主設(shè)備的身份認證失敗。
所述交互模塊50,用以當身份認證成功時通過第二會話密鑰數(shù)據(jù)與主設(shè)備進行數(shù)據(jù)交互。
其中,所述主設(shè)備與卡設(shè)備進行數(shù)據(jù)交互的會話密鑰數(shù)據(jù)為256位第二會話密鑰數(shù)據(jù)中的前128位,且所述第二會話密鑰數(shù)據(jù)與第一會話密鑰數(shù)據(jù)一定相等。
具體地,當所述卡設(shè)備與主設(shè)備身份認證成功,主設(shè)備獲取卡設(shè)備標識碼存儲區(qū)一塊數(shù)據(jù),主設(shè)備發(fā)起讀取數(shù)據(jù)存儲區(qū)區(qū)塊號地址,卡設(shè)備接收到該請求,根據(jù)塊號地址將數(shù)據(jù)存儲區(qū)內(nèi)透明數(shù)據(jù)通過AES算法加密模塊進行加密,加密的密碼為所述第二會話密鑰數(shù)據(jù)的前半部分;主設(shè)備接收到該用第二會話密鑰數(shù)據(jù)前半部分為密鑰加密后的數(shù)據(jù),主設(shè)備通過其與所述第二會話密鑰數(shù)據(jù)前半部分相等的所述第一會話密鑰數(shù)據(jù)前半部分進行解密,進而獲取其需要使用的相應數(shù)據(jù)。
進一步地,當所述主設(shè)備和卡端設(shè)備認證成功,主設(shè)備需要更新卡設(shè)備標識碼存儲區(qū)一塊數(shù)據(jù):主設(shè)備將數(shù)據(jù)存儲區(qū)塊號地址和所述一塊數(shù)據(jù)至卡設(shè)備,所述一塊數(shù)據(jù)是用所述第一會話密鑰數(shù)據(jù)的前半部分為密鑰將該一塊數(shù)據(jù)變成加密數(shù)據(jù);所述卡設(shè)備接收到請求,所述卡設(shè)備通過與所述第一會話密鑰數(shù)據(jù)前半部分相等的所述第二會話密鑰數(shù)據(jù)前半部分進行解密,進而解密出來的所述一塊數(shù)據(jù)更新到卡設(shè)備標識碼存儲區(qū)的相應塊內(nèi)。
應當說明的是,本實施例中,所述卡設(shè)備可以是運行程序芯片,也可以是一個程序或者軟件。例如接觸智能卡與讀卡器之間、無線智能卡與讀卡器之間、主從設(shè)備之間等。
進一步地,卡設(shè)備的數(shù)據(jù)由寄存器區(qū)、卡設(shè)備標識碼區(qū)、密鑰數(shù)據(jù)區(qū)、第一隨機數(shù)據(jù)區(qū)、第二隨機數(shù)據(jù)區(qū)、緩存區(qū)和數(shù)據(jù)存儲區(qū)組成。
所述寄存器區(qū)用以實現(xiàn)卡設(shè)備端運行的運行控制、狀態(tài)顯示、相應區(qū)域權(quán)限控制。
所述卡設(shè)備標識碼區(qū),當其寫入數(shù)據(jù)并校驗成功后,變成只讀區(qū)域。
所述密鑰數(shù)據(jù)區(qū)用以存儲第一密鑰數(shù)據(jù)和第二密鑰數(shù)據(jù),當所述卡設(shè)備完成第一密鑰數(shù)據(jù)和第二密鑰數(shù)據(jù)的配置,并校驗成功后,則所述密鑰數(shù)據(jù)區(qū)變成外部無權(quán)限訪問區(qū)域。
所述第一隨機數(shù)據(jù)區(qū)為只讀區(qū)域。
所述第二隨機數(shù)據(jù)區(qū)為只寫區(qū)域。
所述緩存區(qū)用以卡設(shè)備內(nèi)部運行過程使用區(qū)域,如對所述第二會話密鑰數(shù)據(jù)的存儲。
所述數(shù)據(jù)存儲區(qū)是所述卡設(shè)備內(nèi)存儲單元,且所述數(shù)據(jù)存儲區(qū)存儲的數(shù)據(jù)為透明數(shù)據(jù);但是,當所述數(shù)據(jù)存儲區(qū)存儲的數(shù)據(jù)被讀取或?qū)懭霐?shù)據(jù)時,則需要第二會話密鑰與第一會話密鑰進行解密與加密過程。
本發(fā)明提供的技術(shù)方案中卡設(shè)備的第二身份認證數(shù)據(jù)、第二會話密鑰數(shù)據(jù)與主設(shè)備的第一身份認證數(shù)據(jù)、第一會話密鑰數(shù)據(jù)均是計算生成,上述數(shù)據(jù)為非固定數(shù)據(jù),使得卡設(shè)備與主設(shè)備的每一次連接均會生成不同的身份認證數(shù)據(jù)及會話密鑰數(shù)據(jù),進一步提高了卡設(shè)備與主設(shè)備之間數(shù)據(jù)交互的安全性。
進一步地,請參照圖6,基于上述實施例,在本實施例中,所述觸發(fā)模塊10包括:
配置單元11,用以完成密鑰數(shù)據(jù)配置;所述密鑰數(shù)據(jù)包括卡設(shè)備標識碼、用以身份認證使用的第一密鑰數(shù)據(jù)、用以會話密鑰協(xié)商使用的第二密鑰數(shù)據(jù);
觸發(fā)單元12,用以當卡設(shè)備與主設(shè)備建立通信連接時,觸發(fā)所述卡設(shè)備生成第一隨機數(shù)據(jù)。
具體地,卡設(shè)備在與主設(shè)備建立通信連接前,已完成密鑰數(shù)據(jù)配置,并存儲于卡設(shè)備相應區(qū)域內(nèi)。其中,所述密鑰數(shù)據(jù)包括卡設(shè)備標識碼、用以身份認證使用的第一密鑰數(shù)據(jù)和用以會話密鑰協(xié)商使用的第二密鑰數(shù)據(jù),所述卡設(shè)備標識碼存儲于卡設(shè)備標識碼區(qū),所述第一密鑰數(shù)據(jù)和第二密鑰數(shù)據(jù)存儲于卡設(shè)備的密鑰數(shù)據(jù)區(qū)。
進一步地,請參照圖7,基于上述實施例,在本實施例中,所述配置單元11包括:
獲取單元111,用以獲取主設(shè)備生成的卡設(shè)備標識碼、第一密鑰數(shù)據(jù)及第二密鑰數(shù)據(jù),并存入數(shù)據(jù)庫中;
存儲單元112,用以存儲主設(shè)備生成的上述數(shù)據(jù)并寫入卡設(shè)備內(nèi)。
本實施例中,主設(shè)備生成卡設(shè)備標識碼、第一密鑰數(shù)據(jù)及第二密鑰數(shù)據(jù)后,將上述數(shù)據(jù)組成一個數(shù)據(jù)記錄存儲于數(shù)據(jù)庫中;后續(xù)當所述卡設(shè)備與主設(shè)備建立通信連接時,所述主設(shè)備根據(jù)卡設(shè)備標識碼可以從所述數(shù)據(jù)庫中獲取第一密鑰數(shù)據(jù)及第二密鑰數(shù)據(jù),以方便后續(xù)主設(shè)備與卡設(shè)備進行數(shù)據(jù)交互,確保所述數(shù)據(jù)交互過程中卡設(shè)備與主設(shè)備對接的準確性。
進一步地,請參照圖8,基于上述實施例,本實施例中,所述獲取模塊40包括:
對比單元41,獲取主設(shè)備的第一身份認證數(shù)據(jù)并與第二身份認證數(shù)據(jù)對比是否相等,并獲取對比結(jié)果狀態(tài)值;
判斷單元42,根據(jù)獲取的對比結(jié)果狀態(tài)值以判定身份認證是否成功。
本實施例中,卡設(shè)備獲取主設(shè)備的第一身份認證數(shù)據(jù),所述第一身份認證數(shù)據(jù)為256位第一身份認證數(shù)據(jù)中的前128位;卡設(shè)備將所述128位的第一身份認證數(shù)據(jù)與自己計算生成的第二身份認證數(shù)據(jù)中的前128位對比,并判斷二者是否相等并得出對比結(jié)果狀態(tài)值。
進一步地,卡設(shè)備根據(jù)獲取的對比結(jié)果狀態(tài)值用以判定身份認證是否成功;其中,所述對比結(jié)果的狀態(tài)值包括成功狀態(tài)或者失敗狀態(tài)值。當所述第一身份認證數(shù)據(jù)與第二身份認證數(shù)據(jù)相等,則卡設(shè)備獲取成功狀態(tài)值;當所述第一身份認證數(shù)據(jù)與第二身份認證數(shù)據(jù)不相等,則身份認證失敗,卡設(shè)備獲取失敗狀態(tài)值。
其中,設(shè)定所述成功狀態(tài)值為1,所述失敗狀態(tài)值為0。
本發(fā)明還提供一種設(shè)備認證系統(tǒng),包括卡設(shè)備和主設(shè)備,所述卡設(shè)備為如上所述的卡設(shè)備,所述卡設(shè)備的具體結(jié)構(gòu)參照上述實施例,由于本設(shè)備認證系統(tǒng)采用了上述所有實施例的全部技術(shù)方案,因此至少具有上述實施例的技術(shù)方案所帶來的所有有益效果,在此不再一一贅述。
以上所述僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是在本發(fā)明的發(fā)明構(gòu)思下,利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)變換,或直接/間接運用在其他相關(guān)的技術(shù)領(lǐng)域均包括在本發(fā)明的專利保護范圍內(nèi)。