密碼鍵盤引導(dǎo)程序固件防篡改方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及密碼鍵盤固件保護(hù)技術(shù)領(lǐng)域,尤其涉及一種密碼鍵盤引導(dǎo)程序固件防篡改方法及裝置。
【背景技術(shù)】
[0002]現(xiàn)有的密碼鍵盤固件包括引導(dǎo)程序固件和應(yīng)用固件,其中,引導(dǎo)程序固件主要進(jìn)行應(yīng)用固件的更新,應(yīng)用固件用于密碼鍵盤的正常工作。
[0003]然而,現(xiàn)在技術(shù)僅僅依靠引導(dǎo)程序固件處于芯片本身所帶的閃存(Flash Memory)內(nèi)不容易篡改這一特性進(jìn)行防護(hù),并不能很好防止引導(dǎo)程序固件的篡改。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例的目的在于提供一種密碼鍵盤引導(dǎo)程序固件防篡改方法及裝置,以有效防止密碼鍵盤引導(dǎo)程序固件的篡改,提升密碼鍵盤的安全性。
[0005]本發(fā)明實(shí)施例的密碼鍵盤引導(dǎo)程序固件防篡改方法,包括:
計(jì)算步驟:讀取引導(dǎo)程序固件數(shù)據(jù),并計(jì)算引導(dǎo)程序固件數(shù)據(jù)的HASH值HASH_B ;
解密步驟:獲取加密密鑰KEYJiASH以及HASH值HASH_A,并進(jìn)行解密;
比較步驟:比較判斷解密后的數(shù)據(jù)和HASH_B是否相同,如果不同,則產(chǎn)生擦除指令;及第一執(zhí)行步驟:根據(jù)擦除指令擦除引導(dǎo)程序固件數(shù)據(jù)。
[0006]進(jìn)一步地,所述比較步驟之后還包括:自檢判斷步驟:如果解密后的數(shù)據(jù)和HASH_B相同,則判斷當(dāng)前是否處于自檢狀態(tài),如果是則產(chǎn)生自檢執(zhí)行指令,進(jìn)入自檢步驟,如果否則產(chǎn)生應(yīng)用程序固件啟動(dòng)指令,進(jìn)入第二執(zhí)行步驟;自檢步驟:接收自檢執(zhí)行指令,根據(jù)設(shè)定時(shí)間周期性地產(chǎn)生自檢指令并從計(jì)算步驟開始運(yùn)行以進(jìn)行自檢;及第二執(zhí)行步驟,根據(jù)應(yīng)用程序固件啟動(dòng)指令啟動(dòng)應(yīng)用程序固件。進(jìn)而,采用周期性自檢的技術(shù)手段,可自動(dòng)地進(jìn)行密碼鍵盤引導(dǎo)程序固件的篡改檢測(cè),提升密碼鍵盤的安全性。
[0007]進(jìn)一步地,所述計(jì)算步驟之前還包括初始化步驟:
下載子步驟:下載并保存引導(dǎo)程序固件數(shù)據(jù);
計(jì)算子步驟:讀取引導(dǎo)程序固件數(shù)據(jù),并計(jì)算出引導(dǎo)程序固件數(shù)據(jù)的HASH值;
加密密鑰生成子步驟:隨機(jī)生成加密密鑰KEYJiASH ;及
加密子步驟:使用密鑰KEYJiASH將HASH值加密得到HASH_A,并保存加密密鑰KEY_HASH 及 HASH_A。
[0008]進(jìn)一步地,所述加密子步驟中采用對(duì)稱密鑰算法進(jìn)行加密。
[0009]另一方面,本發(fā)明實(shí)施例還提供了一種密碼鍵盤引導(dǎo)程序固件防篡改裝置,所述防篡改裝置包括:
存儲(chǔ)引導(dǎo)程序固件數(shù)據(jù)的第一存儲(chǔ)器;
存儲(chǔ)加密密鑰KEYJiASH以及HASH值HASH_A的第二存儲(chǔ)器;
讀取引導(dǎo)程序固件數(shù)據(jù),并計(jì)算引導(dǎo)程序固件數(shù)據(jù)的HASH值HASH_B的計(jì)算模塊; 獲取加密密鑰KEYJiASH以及HASH值HASH_A,并進(jìn)行解密的解密模塊;
比較判斷解密后的數(shù)據(jù)和HASH_B是否相同,如果不同,則產(chǎn)生擦除指令的比較模塊;
及
根據(jù)擦除指令擦除引導(dǎo)程序固件數(shù)據(jù)的第一執(zhí)行模塊。
[0010]進(jìn)一步地,所述防篡改裝置還包括:
解密后的數(shù)據(jù)和HASH_B相同時(shí),判斷當(dāng)前是否處于自檢狀態(tài),如果是則產(chǎn)生自檢執(zhí)行指令,如果否則產(chǎn)生應(yīng)用程序固件啟動(dòng)指令的自檢判斷模塊;
接收自檢執(zhí)行指令,根據(jù)設(shè)定時(shí)間周期性地產(chǎn)生自檢指令以進(jìn)行自檢的自檢模塊;及根據(jù)應(yīng)用程序固件啟動(dòng)指令啟動(dòng)應(yīng)用程序固件的第二執(zhí)行模塊。
[0011]進(jìn)一步地,所述防篡改裝置還包括用于進(jìn)行初始化操作的初始化模塊,所述初始化模塊包括:
下載并保存引導(dǎo)程序固件數(shù)據(jù)的下載子模塊;
讀取引導(dǎo)程序固件數(shù)據(jù),并計(jì)算出引導(dǎo)程序固件數(shù)據(jù)的HASH值的計(jì)算子模塊;
隨機(jī)生成加密密鑰KEYJiASH的加密密鑰生成子模塊;及
使用密鑰KEYJiASH將HASH值加密得到HASH_A,并保存加密密鑰KEYJiASH及HASH_A的加密子模塊。
[0012]進(jìn)一步地,所述第二存儲(chǔ)器、計(jì)算模塊、解密模塊、比較模塊、第一執(zhí)行模塊、自檢判斷模塊、自檢模塊、第二執(zhí)行模塊及初始化模塊集成于微處理器中,第一存儲(chǔ)器為連接于微處理器的Flash存儲(chǔ)器。
[0013]進(jìn)一步地,所述防篡改裝置還包括電連接并為微處理器供電的電池,及電連接于微處理器,用于進(jìn)行按鍵檢測(cè)的矩陣鍵盤電路;所述第二存儲(chǔ)器為由電池供電進(jìn)行數(shù)據(jù)保存的微處理器的內(nèi)存區(qū)域。
[0014]進(jìn)一步地,所述加密密鑰生成子模塊將通過物理過程生成的隨機(jī)數(shù)字作為加密密鑰 KEYJiASH。
[0015]本發(fā)明實(shí)施例通過采用在密碼鍵盤固件啟動(dòng)后,將解密所得的HASH數(shù)據(jù),與計(jì)算所得HASH值進(jìn)行比較,若不相同則判斷閃存受到入侵,進(jìn)而迅速擦除引導(dǎo)程序固件數(shù)據(jù),有效防止密碼鍵盤引導(dǎo)程序固件的篡改,提升密碼鍵盤的安全性。
【附圖說明】
[0016]圖1是本發(fā)明實(shí)施例的密碼鍵盤引導(dǎo)程序固件防篡改方法流程示意圖。
[0017]圖2是本發(fā)明實(shí)施例的初始化步驟的流程示意圖。
[0018]圖3是本發(fā)明實(shí)施例的密碼鍵盤引導(dǎo)程序固件防篡改裝置的結(jié)構(gòu)示意圖。
[0019]附圖標(biāo)記說明初始化步驟Si 下載子步驟Sll 計(jì)算子步驟S12 加密密鑰生成子步驟S13 加密子步驟S14
計(jì)算步驟S2 解密步驟S3 比較步驟S4 第一執(zhí)行步驟S5 自檢判斷步驟S6 自檢步驟S7 第二執(zhí)行步驟S8 第一存儲(chǔ)器10 第二存儲(chǔ)器20 計(jì)算模塊30 解密模塊40 比較模塊50 第一執(zhí)行模塊60 自檢判斷模塊70 自檢模塊80 第二執(zhí)行模塊90 初始化模塊100 下載子模塊101 計(jì)算子模塊102 加密密鑰生成子模塊103 加密子模塊104 電池200
矩陣鍵盤電路300。
【具體實(shí)施方式】
[0020]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0021]請(qǐng)參考圖1,為本發(fā)明實(shí)施例的密碼鍵盤引導(dǎo)程序固件防篡改方法流程示意圖,所述防篡改方法包括以下幾個(gè)步驟。
[0022]初始化步驟S1:進(jìn)行初始化操作。
[0023]計(jì)算步驟S2:讀取引導(dǎo)程序固件數(shù)據(jù),并計(jì)算引導(dǎo)程序固件數(shù)據(jù)的HASH值HASH_
Bo具體地,采用哈希算法計(jì)算HASH值,哈希算法包括但不限于SHA1、SHA256等算法。
[0024]解密步驟S3:獲取加密密鑰KEYJiASH以及HASH值HASH_A,并進(jìn)行解密。
[0025]比較步驟S4:比較判斷解密后的數(shù)據(jù)和HASH_B是否相同,如果不同,則產(chǎn)生擦除指令。
[0026]第一執(zhí)行步驟S5:根據(jù)擦除指令擦除引導(dǎo)程序固件數(shù)據(jù)。
[0027]作為一種實(shí)施方式,所述比較步驟S4之后還包括以下步驟。
[0028]自檢判斷步驟S6:如果解密后的數(shù)據(jù)和HASH_B是相同的,則判斷當(dāng)前是否處于自檢狀態(tài),如果是則產(chǎn)生自檢執(zhí)行指令,進(jìn)入自檢步驟S7,如果否則產(chǎn)生應(yīng)用程序固件啟動(dòng)指令,進(jìn)入第二執(zhí)行步驟S8。
[0029]自檢步驟S7:接收自檢執(zhí)行指令,根據(jù)設(shè)定時(shí)間周期性地產(chǎn)生自檢指令并從計(jì)算步驟S2開始運(yùn)行以進(jìn)行自檢。優(yōu)選地,根據(jù)設(shè)定時(shí)間周期性地產(chǎn)生自檢指令以重復(fù)執(zhí)行計(jì)算步驟S2進(jìn)行自檢,產(chǎn)生自檢指令后便進(jìn)入自檢狀態(tài)。其中,所述時(shí)間周期為4小時(shí)至36小時(shí),優(yōu)選為24小時(shí)。
[0030]第二執(zhí)行步驟S8:根據(jù)應(yīng)用程序固件啟動(dòng)指令啟動(dòng)應(yīng)用程序固件。
[0031]請(qǐng)參考圖2,為本發(fā)明實(shí)施例的初始化步驟SI的流程示意圖,作為一種實(shí)施方式,初始化步驟Si設(shè)于讀取步驟之前,所述初始化步驟SI包括如下幾個(gè)子步驟。
[0032]下載子步驟Sll:下載并保存引導(dǎo)程序固件數(shù)據(jù)。
[0033]計(jì)算子步驟S12:讀取引導(dǎo)程序固件數(shù)據(jù),并計(jì)算出引導(dǎo)程序固件數(shù)據(jù)的HASH值。
[0034]加密密鑰生成子步驟S13:隨機(jī)生成加密密鑰KEY_HASH。
[0035]加密子步驟S14:使用密鑰KEYJiASH將HASH值加密得到HASH_A,并保存加密密鑰KEYJiASH及HASH_A。其中,所述加密子步驟S14中采用對(duì)稱密鑰算法進(jìn)行加密,使得加/解密速度快、密鑰管理簡(jiǎn)單。
[0036]請(qǐng)參考圖3,為本發(fā)明實(shí)施