本發(fā)明涉及一種基于韌體層的軟件防護(hù)加密認(rèn)證方法,通過增加韌體加密的方式,實(shí)現(xiàn)更可靠的計算機(jī)軟件防護(hù)加密認(rèn)證,屬于工業(yè)計算機(jī)軟件安全防護(hù)技術(shù)領(lǐng)域。
背景技術(shù):
隨著工業(yè)計算機(jī)需求的不斷擴(kuò)大,那為了實(shí)現(xiàn)工業(yè)計算機(jī)的特殊應(yīng)用而設(shè)計的應(yīng)用軟件的安全認(rèn)證安裝問題也越來越受到重視,為了保證工業(yè)計算機(jī)應(yīng)用軟件的安全性能,行業(yè)技術(shù)人員采用了各種各樣的軟件安全認(rèn)證方法。
但是,現(xiàn)在很多關(guān)于軟件安全認(rèn)證的方法,大部分都是采用計算機(jī)軟件加密的方式,在過現(xiàn)實(shí)情況中,計算機(jī)軟件加密的方式是很多應(yīng)用軟件都可以輕易破解,從而大大降低了工業(yè)計算機(jī)軟件的安全性能,因此需要考慮如何進(jìn)行更可靠的計算機(jī)軟件防護(hù)。
為了增加應(yīng)用軟件的安全性,本發(fā)明提出一種基于韌體的安全認(rèn)證方法,不僅僅只依賴于計算機(jī)軟件加密,還增加了韌體加密認(rèn)證。此方法是把對應(yīng)的工業(yè)計算機(jī)和對應(yīng)的應(yīng)用軟件聯(lián)系起來,應(yīng)用軟件只有在相應(yīng)的授權(quán)計算機(jī)上才能得到安裝和運(yùn)行。
技術(shù)實(shí)現(xiàn)要素:
發(fā)明目的:針對現(xiàn)有技術(shù)中計算機(jī)軟件安全認(rèn)證存在的技術(shù)缺陷及空白區(qū),本發(fā)明提供一種基于韌體層的軟件防護(hù)加密認(rèn)證方法,在硬件層和韌體層對計算機(jī)軟件進(jìn)行安全加密認(rèn)證,尤其對特殊工業(yè)計算機(jī)軟件的安全認(rèn)證。
技術(shù)方案:一種基于韌體層的軟件防護(hù)加密認(rèn)證方法,實(shí)現(xiàn)過程包括如下步驟:
步驟1,在進(jìn)行計算機(jī)主板設(shè)計的時候增設(shè)嵌入式控制芯片,嵌入式控制芯片通過LPC總線與南橋通信,無需其他電路支持,實(shí)現(xiàn)簡單,在嵌入式控制芯片內(nèi)運(yùn)行韌體程序;
進(jìn)一步地,所述嵌入式控制芯片內(nèi)運(yùn)行的韌體程序主要實(shí)現(xiàn)如下功能的操作:
1-1)通過系統(tǒng)I/O端口接收密鑰;
1-2)通過系統(tǒng)I/O端口接收明文;
1-3)進(jìn)行AES加密,加密明文;
1-4)通過系統(tǒng)I/O端口發(fā)送密文;
1-5)升級密鑰;
1-6)把AES加密過的密鑰解密,用來對明文進(jìn)行加密。
步驟2,在計算機(jī)應(yīng)用軟件設(shè)計過程中要加入對嵌入式控制芯片進(jìn)行讀寫的操作;
進(jìn)一步地,所述計算機(jī)應(yīng)用軟件設(shè)計過程中加入的對嵌入式控制芯片進(jìn)行讀寫的操作主要包括如下內(nèi)容:
2-1)通過ACPI協(xié)議把明文寫入到嵌入式控制芯片;
2-2)通過ACPI協(xié)議從嵌入式控制芯片讀取密文;
進(jìn)一步地,所述計算機(jī)應(yīng)用軟件還需進(jìn)行AES解密,解密密文。
步驟3,升級密鑰;
步驟3中的密鑰升級需要和嵌入式控制芯片內(nèi)運(yùn)行的韌體程序同步使用,把新的密鑰文件通過系統(tǒng)I/O端口寫入到嵌入式控制芯片內(nèi),從而實(shí)現(xiàn)密鑰更新。
步驟4,AES密鑰生成;用于生成AES加密過的密鑰文件。
有益效果:相對于現(xiàn)有技術(shù),本發(fā)明提供的基于韌體層的軟件防護(hù)加密認(rèn)證方法,具有如下優(yōu)點(diǎn):
1、安全性高,破解難;
2、可實(shí)現(xiàn)隨時更新密鑰;
3、更新密鑰簡單;
4、實(shí)用性強(qiáng)。
附圖說明
圖1為本發(fā)明實(shí)施例的原理圖;
圖2為本發(fā)明實(shí)施例中密鑰生成工具流程圖;
圖3為本發(fā)明實(shí)施例中升級密鑰工具流程圖;
圖4為本發(fā)明實(shí)施例中寫明文流程圖;
圖5為本發(fā)明實(shí)施例中獲取密文及認(rèn)證流程圖。
具體實(shí)施方式
下面結(jié)合具體實(shí)施例,進(jìn)一步闡明本發(fā)明,應(yīng)理解這些實(shí)施例僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍,在閱讀了本發(fā)明之后,本領(lǐng)域技術(shù)人員對本發(fā)明的各種等價形式的修改均落于本申請所附權(quán)利要求所限定的范圍。
如圖1所示,基于韌體層的軟件防護(hù)加密認(rèn)證方法,實(shí)現(xiàn)過程包括如下步驟:
步驟1,在進(jìn)行計算機(jī)主板設(shè)計的時候增設(shè)嵌入式控制芯片,嵌入式控制芯片通過LPC總線與南橋通信,無需其他電路支持,實(shí)現(xiàn)簡單,在嵌入式控制芯片內(nèi)運(yùn)行韌體程序;當(dāng)嵌入式控制芯片上電之后,此韌體程序就開始運(yùn)行;
步驟2,在APP層使用AES密鑰生成工具生成加密后的AES密鑰文件;
步驟3,在APP層使用升級密鑰工具通過系統(tǒng)I/O端口把新的AES密鑰文件寫入到嵌入式控制芯片中的ROM(非易失存儲器),從而實(shí)現(xiàn)密鑰更新;
步驟4,韌體程序通過系統(tǒng)I/O端口接收到加密過的密鑰文件,把加密過的密鑰文件通過AES解密生成真正的密鑰,通過中間轉(zhuǎn)換可以更有效的保證安全性;
步驟5,計算機(jī)軟件安裝或運(yùn)行時通過系統(tǒng)I/O向嵌入式控制芯片寫入明文,等待韌體程序返回密文;
步驟6,韌體程序接收到明文之后,使用步驟4得到的密鑰把明文轉(zhuǎn)換成密文;
步驟7,隨后嵌入式控制芯片通過系統(tǒng)I/O端口把密文發(fā)送給計算機(jī)應(yīng)用軟件,計算機(jī)應(yīng)用軟件接收密文,并且通過AES解密密文,和原明文比較完成認(rèn)證。
如圖2所示,AES密鑰生成工具的流程為:
首先,讀取加密AES的密鑰keykey;
其次,根據(jù)AES擴(kuò)展密鑰算法獲取keykey的擴(kuò)展密鑰expkey;
然后,從AES密鑰文件讀取一組AES密鑰;
最后,根據(jù)AES密鑰算法使用expKey擴(kuò)展密鑰加密AES密鑰,保存到一個二進(jìn)制文件中。
如圖3所示,升級密鑰工具的流程為:
(1)讀取加密的AES密鑰文件;所述AES密鑰文件為AES密鑰生成工具保存的二進(jìn)制文件;
(2)通過ACPI命令對嵌入式控制芯片的韌體程序進(jìn)行升級密鑰初始化;初始化內(nèi)容:升級密鑰工具通過ACPI命令讓韌體獲取FLASH ROM型號、存儲大小、扇區(qū)大小,并反饋給工具,然后工具通過命令使韌體處于RAM中運(yùn)行,不主動讀取FLASH ROM,等待工具發(fā)指令進(jìn)行擦除,編程操作;
(3)通過韌體程序?qū)η度胧娇刂菩酒腇LASH ROM進(jìn)行擦除操作;
(4)通過韌體程序把加密的AES密鑰文件數(shù)據(jù)寫入到FLASH ROM中;
(5)通過ACPI命令使韌體重啟。
如圖4所示,寫明文的流程為:
(1)通過ACPI命令向韌體寫0x36命令;
(2)等待韌體響應(yīng),如果韌體沒有響應(yīng),則程序錯誤退出;如果韌體響應(yīng),則通過ACPI命令向韌體寫入明文,之后,等待韌體響應(yīng),如果韌體沒有響應(yīng),則程序錯誤退出;如果韌體響應(yīng),結(jié)束流程。
如圖5所示,獲取密文及認(rèn)證的流程為:
(1)通過ACPI命令從韌體讀取密文;
(2)保存密文到BUFFER;
(3)根據(jù)AES算法生成AES擴(kuò)展密鑰;
(4)根據(jù)AES密鑰算法使用AES擴(kuò)展密鑰解密密文為明文;
(5)認(rèn)證明文是否正確,如果不正確,認(rèn)證失敗,否則,認(rèn)證成功。