專利名稱:二次開發(fā)嵌入式應(yīng)用程序的加密和認(rèn)證保護(hù)的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件加密技術(shù)領(lǐng)域,尤其涉及一種二次開發(fā)嵌入式應(yīng)用程序的加密和認(rèn)證保護(hù)的方法及系統(tǒng)。
背景技術(shù):
隨著電子信息技術(shù)的發(fā)展,嵌入式設(shè)備已廣泛應(yīng)用到工業(yè)、農(nóng)業(yè)、教育、國防、科研以及日常生活等各個領(lǐng)域。嵌入式系統(tǒng)是軟件和硬件的綜合體,是一種以應(yīng)用為中心、以計算機(jī)技術(shù)為基礎(chǔ),軟、硬件都具有可裁剪性的專用“計算機(jī)”系統(tǒng)。廠商在進(jìn)行嵌入式設(shè)備開發(fā)時,考慮到功能需求、系統(tǒng)成本、硬件尺寸大小等方面的因素,嵌入式系統(tǒng)的硬件配置方面都會受到一定的限制。嵌入式設(shè)備雖然在各個行業(yè)的電子信息化中發(fā)揮了巨大的作用,但是行業(yè)內(nèi)部以及跨行業(yè)的應(yīng)用中,行業(yè)應(yīng)用的功能需求各不相同,導(dǎo)致嵌入式設(shè)備供應(yīng)商會根據(jù)行業(yè)要求進(jìn)行功能定制,因此基于嵌入式設(shè)備的二次開發(fā)方式也越來越流行。嵌 入式的二次開發(fā)是在已有的軟硬件基礎(chǔ)上,利用系統(tǒng)程序提供的系統(tǒng)接口進(jìn)行再開發(fā)程序的方法。由于嵌入式軟件的開發(fā)成本高、研發(fā)周期長,設(shè)計者都會關(guān)心其關(guān)鍵代碼或重要數(shù)據(jù)的保密性。保護(hù)嵌入式系統(tǒng)的科研成果除了采用法律手段保護(hù)知識產(chǎn)權(quán)外,另一個更加簡單有效的方法就是采用加密存儲軟件的保護(hù)方式。常用的加密手段可分為兩大類硬加密和軟加密。所謂硬加密就是通過硬件和軟件結(jié)合的方式來實現(xiàn)軟件的加密,加密后的軟件執(zhí)行時需要訪問相應(yīng)的硬件,如硬件裝置額外增加加密芯片或者增加擴(kuò)展接口接入加密卡、軟件鎖等。硬加密方法加密強(qiáng)度高,但有一定局限性,主要是成本高,另外需要增加硬件電路,使得系統(tǒng)維護(hù)性相對較差。軟加密則是用純軟件的方法來實現(xiàn)加密。目前常用的方法通過加密算法對軟件進(jìn)行加密存儲。此種方法具有成本低、升級快、易推廣的優(yōu)勢。在硬件資源受限的嵌入式系統(tǒng)中,尤其是基于二次開發(fā)嵌入式軟件的設(shè)備中,想要實現(xiàn)對軟件進(jìn)行加密處理,需要設(shè)計一種優(yōu)秀的加密處理方案?,F(xiàn)有的各種加密方案中,對于資源受限的嵌入式系統(tǒng)來說都存在明顯的限制,例如需要額外增加加密芯片。盡管一些芯片的Flash ROM有讀寫保護(hù)的功能,可以防止外部工具非法訪問,但是在嵌入式設(shè)備出廠后,由于軟件升級或者處理軟件缺陷等原因,需要對軟件進(jìn)行升級維護(hù)。對于需要及時解決嵌入式設(shè)備升級軟件問題的情況,廠商一般需要將軟件交付給用戶進(jìn)行升級,因此會帶來軟件的安全性問題。目前對于這類硬件資源受限、支持二次開發(fā)的嵌入式設(shè)備還沒有較好的加密方案解決二次開發(fā)嵌入式軟件升級的安全性問題。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題在于針對現(xiàn)有技術(shù)中針對硬件資源受限、支持二次開發(fā)的嵌入式設(shè)備還沒有較好的加密方案解決嵌入式設(shè)備中二次開發(fā)嵌入式軟件的安全性問題的缺陷,提供一種可以有效解決嵌入式設(shè)備中二次開發(fā)嵌入式軟件的安全性問題的二次開發(fā)嵌入式軟件的加密和認(rèn)證保護(hù)方法及系統(tǒng)。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是提供一種二次開發(fā)的嵌入式應(yīng)用程序的加密和認(rèn)證保護(hù)的方法,其特征在于,包括以下步驟主設(shè)備向嵌入式設(shè)備發(fā)送請求下載數(shù)據(jù)的請求信息;嵌入式設(shè)備接收請求信息并向主設(shè)備反饋應(yīng)答信息;主設(shè)備向嵌入式設(shè)備下載數(shù)據(jù),數(shù)據(jù)包括認(rèn)證碼、密鑰及加密的應(yīng)用程序;嵌入式設(shè)備接收和存儲請求數(shù)據(jù)至存儲模塊中,并用接收的密鑰進(jìn)行解密以固化應(yīng)用程序;
嵌入式設(shè)備啟動應(yīng)用程序,并接收用戶輸入的待校驗的認(rèn)證碼;嵌入式設(shè)備獲取存儲模塊中存儲的認(rèn)證碼,并驗證待校驗的認(rèn)證碼,若驗證通過,則運行應(yīng)用程序,否則終止運行應(yīng)用程序。本發(fā)明所述的方法中,還包括步驟當(dāng)嵌入式設(shè)備的存儲模塊被外部工具非法訪問時,則清除存儲模塊中的全部數(shù)據(jù)。本發(fā)明所述的方法中,步驟嵌入式設(shè)備存儲請求數(shù)據(jù)至存儲模塊中具體包括將密鑰散列地存儲在存儲模塊的空余空間上;本發(fā)明所述的方法中,步驟嵌入式設(shè)備存儲請求數(shù)據(jù)至存儲模塊中具體包括將認(rèn)證碼散列地存儲在存儲模塊的空余空間上。本發(fā)明所述的方法中,主設(shè)備通過數(shù)據(jù)加密標(biāo)準(zhǔn)DES、國際數(shù)據(jù)加密算法IDEA、MD5算法或者高級加密標(biāo)準(zhǔn)AES對應(yīng)用程序進(jìn)行加密。本發(fā)明所述的方法中,嵌入式設(shè)備在運行應(yīng)用程序時,至少進(jìn)行一次認(rèn)證碼校驗。本發(fā)明所述的方法中,若用戶輸入錯誤的驗證碼次數(shù)超過預(yù)設(shè)次數(shù),則在預(yù)先設(shè)定的時間內(nèi)禁止再次運行應(yīng)用程序。本發(fā)明解決其技術(shù)問題所采用的另一技術(shù)方案是提供一種二次開發(fā)的嵌入式應(yīng)用程序的加密和認(rèn)證保護(hù)的系統(tǒng),其特征在于,包括嵌入式設(shè)備和主設(shè)備,嵌入式設(shè)備與主設(shè)備通信連接,其中,主設(shè)備包括請求模塊,用于向嵌入式設(shè)備發(fā)送請求信息;加密模塊,用于對嵌入式的應(yīng)用程序進(jìn)行加密;下載模塊,用于下載數(shù)據(jù)至嵌入式設(shè)備中,數(shù)據(jù)包括認(rèn)證碼、密鑰及加密的應(yīng)用程序;嵌入式設(shè)備包括接收應(yīng)答模塊,用于接收主設(shè)備發(fā)送請求信息并反饋應(yīng)答信息;解密模塊,用于根據(jù)接收的數(shù)據(jù)中的密鑰進(jìn)行解密;存儲模塊,用于存儲認(rèn)證碼、密鑰以及固化應(yīng)用程序;認(rèn)證碼校驗?zāi)K,用于在啟動應(yīng)用程序時,接收用戶輸入的待校驗的認(rèn)證碼,并獲取存儲模塊中存儲的認(rèn)證碼,驗證待校驗的認(rèn)證碼,若驗證通過,則運行應(yīng)用程序,否則終止運行應(yīng)用程序。本發(fā)明所述的系統(tǒng)中,嵌入式設(shè)備還包括
控制模塊,用于當(dāng)嵌入式設(shè)備的存儲模塊被外部工具非法訪問時,則清除存儲模塊中的全部數(shù)據(jù)。本發(fā)明所述的系統(tǒng)中,存儲模塊還用于將密鑰和認(rèn)證碼和散列地存儲在存儲模塊的空余空間上。本發(fā)明產(chǎn)生的有益效果是本發(fā)明中嵌入式設(shè)備通過請求接收主設(shè)備發(fā)送的包括認(rèn)證碼、密鑰及加密的應(yīng)用程序的請求數(shù)據(jù),并利用密鑰對應(yīng)用程序進(jìn)行解密并固化應(yīng)用程序,在嵌入式設(shè)備啟動應(yīng)用程序后接收用戶輸入的待校驗的認(rèn)證碼;嵌入式設(shè)備利用存儲模塊中存儲的認(rèn)證碼對待校驗的認(rèn)證碼進(jìn)行驗證,若驗證通過,則運行應(yīng)用程序,否則終止運行應(yīng)用程序。本發(fā)明適用于在硬件資源受限的嵌入式系統(tǒng)中,不用增加額外的硬件,就提高了嵌入式設(shè)備二次開發(fā)軟件的安全性。進(jìn)一步地,本發(fā)明在嵌入式設(shè)備的存儲模塊被外部工具非法訪問時,則清除存儲模塊中的全部數(shù)據(jù),實現(xiàn)了對存儲模塊的安全訪問。
下面將結(jié)合附圖及實施例對本發(fā)明作進(jìn)一步說明,附圖中圖I為本發(fā)明實施例二次開發(fā)的嵌入式應(yīng)用程序的加密和認(rèn)證保護(hù)的方法;圖2為本發(fā)明另一實施例基于嵌入式系統(tǒng)的二次開發(fā)軟件結(jié)構(gòu)示意圖;圖3為本發(fā)明另一實施例微處理器的Flash ROM存儲結(jié)構(gòu)示意圖;圖4為本發(fā)明另一實施例主設(shè)備的加密流程示意圖;圖5為本發(fā)明另一實施例嵌入式設(shè)備的解密流程示意圖;圖6為二次開發(fā)程序認(rèn)證碼校驗流程圖;圖7為本發(fā)明另一實施例主設(shè)備與嵌入式設(shè)備之間的升級握手協(xié)議流程圖;圖8為本發(fā)明實施例二次開發(fā)的嵌入式應(yīng)用程序的加密和認(rèn)證保護(hù)的系統(tǒng)。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明實施例嵌入式系統(tǒng)中二次開發(fā)的嵌入式應(yīng)用程序的加密和認(rèn)證保護(hù)的方法,如圖I所示,包括以下步驟S101、主設(shè)備向嵌入式設(shè)備發(fā)送請求下載數(shù)據(jù)的信息;S102、嵌入式設(shè)備接收請求信息并向主設(shè)備反饋應(yīng)答信息;S103、主設(shè)備向嵌入式設(shè)備下載數(shù)據(jù),數(shù)據(jù)包括認(rèn)證碼、密鑰及加密的應(yīng)用程序;S104、嵌入式設(shè)備接收認(rèn)證碼和密鑰并保存到存儲模塊中,并用接收的密鑰進(jìn)行解密以固化應(yīng)用程序;在本發(fā)明的一個實施例中,步驟S104中嵌入式設(shè)備存儲請求數(shù)據(jù)至存儲模塊中具體包括將密鑰散列地存儲在存儲模塊的空余空間上;也可以將認(rèn)證碼散列地存儲在存儲模塊的空余空間上。S105、嵌入式設(shè)備啟動應(yīng)用程序,并接收用戶輸入的待校驗的認(rèn)證碼;
S106、嵌入式設(shè)備獲取存儲模塊中存儲的認(rèn)證碼;若認(rèn)證碼被散列地存儲在存儲模塊的空余空間上,則此時嵌入式設(shè)備需要將散列的認(rèn)證碼進(jìn)行整合。S107、嵌入式設(shè)備驗證待校驗的認(rèn)證碼;即用獲取的存儲模塊中的認(rèn)證碼來驗證用戶輸入的待校驗的認(rèn)證碼。S108、若驗證通過,則運行應(yīng)用程序;S109、若驗證未通過,則終止運行應(yīng)用程序。本發(fā)明的方法不用增加額外的硬件成本,就可以提高二次開發(fā)嵌入式程序的保密性,尤其適用于在硬件資源受限的嵌入式系統(tǒng)中。本發(fā)明的一個實施例中,為了防止外部工具非法訪問嵌入式設(shè)備的存儲模塊的數(shù)據(jù),上述方法還包括步驟當(dāng)嵌入式設(shè)備的存儲模塊被外部工具非法訪問時,則清除存儲模塊中的全部數(shù) 據(jù)。嵌入式系統(tǒng)選用可置讀寫保護(hù)的微處理器,存儲模塊為微處理器中的Flash ROM,當(dāng)外部工具企圖清除讀寫保護(hù)功能時,微處理器將擦除Flash ROM的全部數(shù)據(jù),實現(xiàn)了Flash ROM的安全訪問。在本發(fā)明的一個實施例中,主設(shè)備可優(yōu)先選用公共算法,包括數(shù)據(jù)加密標(biāo)準(zhǔn)DES、國際數(shù)據(jù)加密算法IDEA、MD5算法或者高級加密標(biāo)準(zhǔn)AES等對應(yīng)用程序進(jìn)行加密。進(jìn)一步地,在本發(fā)明的一個實施例中,嵌入式設(shè)備在運行應(yīng)用程序時,至少進(jìn)行一次認(rèn)證碼校驗。進(jìn)一步地,在上述實施例的基礎(chǔ)上,若用戶輸入錯誤的驗證碼次數(shù)超過預(yù)設(shè)次數(shù),則在預(yù)先設(shè)定的時間內(nèi)禁止再次運行應(yīng)用程序。如對待校驗的認(rèn)證碼校驗次數(shù)限制為3次或者5次,如果超過設(shè)定的次數(shù),則24小時(或者其他設(shè)定時間)之內(nèi)禁止用戶再次運行應(yīng)用程序,以防止惡意地進(jìn)行無限次試探,盜取應(yīng)用程序的認(rèn)證碼。本發(fā)明的另一實施例中,嵌入式系統(tǒng)選用可置讀寫保護(hù)Flash ROM的微處理器。如圖2所示,基于嵌入式系統(tǒng)的二次開發(fā)軟件結(jié)構(gòu)包含Bootloader、系統(tǒng)程序和應(yīng)用程序,并固化存儲到Flash Rom中。Bootloader固化在Flash ROM存儲器中的地址前端部分,是嵌入式設(shè)備上電啟動的程序,當(dāng)系統(tǒng)上電時會首先運行,起到初始化基本硬件(包括完成微處理器的讀寫保護(hù)的置位的操作)和引導(dǎo)系統(tǒng)程序的雙重作用。Bootloader、系統(tǒng)程序與應(yīng)用程序是相互分離的,Bootloader和系統(tǒng)程序由專業(yè)的開發(fā)工具開發(fā),并預(yù)先下載在嵌入式設(shè)備上。系統(tǒng)程序根據(jù)外部指令進(jìn)入下載狀態(tài),接收密鑰Key、認(rèn)證碼Code和密文文件(SP加密的應(yīng)用程序)解密和存儲。應(yīng)用程序為基于已有的系統(tǒng)程序提供的二次開發(fā)系統(tǒng)接口開發(fā)的程序,在本實施例中,可為軟件升級程序。如圖3所示,微處理器的Flash ROM存儲結(jié)構(gòu)包含Bootloader、系統(tǒng)程序,應(yīng)用程序以及密鑰Key和認(rèn)證碼Code。進(jìn)一步的,微處理器選用可置讀寫保護(hù)Flash ROM的,F(xiàn)lash ROM的內(nèi)容只能通過內(nèi)部程序進(jìn)行訪問。當(dāng)惡意清除讀寫保護(hù)功能時,微處理器將擦除Flash ROM的全部內(nèi)容;進(jìn)一步的,密鑰Key和認(rèn)證碼Code散列存儲在Flash ROM的空余空間上;系統(tǒng)程序通過散列規(guī)則獲取散列存放的密鑰和認(rèn)證碼,并組合成整體。如圖4所示,該實施例中,主設(shè)備的加密流程是
I、在主設(shè)備上運行二次開發(fā)平臺進(jìn)行代碼的編寫,最后編譯生成可執(zhí)行程序。2、在主設(shè)備上運行加密工具軟件,輸入密鑰Key,對可執(zhí)行程序進(jìn)行加密,生成密文文件;在本發(fā)明實施例中,可執(zhí)行程序為可給嵌入式設(shè)備升級的可執(zhí)行程序。加密工具可選用DES算法,密鑰Key長度最長為8Bytes。3、主設(shè)備上輸出密文文件。如圖5所示,該實施例中,嵌入式設(shè)備的解密流程是嵌入式設(shè)備通過接口模塊建立與主設(shè)備的連接,嵌入式設(shè)備執(zhí)行系統(tǒng)程序,進(jìn)入下載狀態(tài);主設(shè)備運行下載工具,嵌入式設(shè)備預(yù)先下載認(rèn)證碼Code,密鑰Key ;主設(shè)備運行下載工具,發(fā)送密文文件到嵌入式設(shè)備,嵌入式設(shè)備接收數(shù)據(jù)解密并 存儲,完成嵌入式設(shè)備應(yīng)用程序的升級。該實施例中,主設(shè)備與嵌入式設(shè)備之間通信的握手協(xié)議如圖6所示步驟601 :嵌入式設(shè)備等待接收詢問信號ASK ;步驟602 :主設(shè)備發(fā)送詢問信號ASK ;步驟603 :主設(shè)備進(jìn)入等待嵌入式設(shè)備的應(yīng)答信號ACKl ;步驟604 :嵌入式設(shè)備接收到詢問信號ASK,立即回復(fù)應(yīng)答信號ACKl ;步驟605 :嵌入式設(shè)備進(jìn)入等待接收數(shù)據(jù)類型TYPE ;步驟606 :主設(shè)備接收到應(yīng)答信號ACK1,立即發(fā)送數(shù)據(jù)類型TYPE ;步驟607 :主設(shè)備進(jìn)入等待嵌入式設(shè)備的應(yīng)答信號ACK2 ;步驟608 :嵌入式設(shè)備接收到數(shù)據(jù)類型TYPE,立即回復(fù)應(yīng)答信號ACK2 ;其中,數(shù)據(jù)類型TYPE=OxOI,發(fā)送的數(shù)據(jù)類型是認(rèn)證碼Code。步驟609 :主設(shè)備接收到應(yīng)答信號ACK2,立即發(fā)送認(rèn)證碼Code ;步驟610 :嵌入式設(shè)備接收認(rèn)證碼Code ;步驟611 :嵌入式設(shè)備散列認(rèn)證碼Code'、認(rèn)證碼Code''并存儲;其中,數(shù)據(jù)類型TYPE=0x02,發(fā)送的數(shù)據(jù)類型是密鑰Key。步驟612 :主設(shè)備接收到應(yīng)答信號ACK2,立即發(fā)送密鑰Key ;步驟613 :嵌入式設(shè)備接收密鑰Key ;步驟614 :嵌入式設(shè)備散列密鑰Key'、密鑰Key''和密鑰Key'''并存儲;其中,數(shù)據(jù)類型TYPE=0x03,發(fā)送的數(shù)據(jù)類型是密文文件。步驟615 :嵌入式設(shè)備獲取散列存儲的密鑰Key'、密鑰Key''和密鑰Key''組合成整體密鑰Key ;步驟616 :主設(shè)備發(fā)送密文數(shù)據(jù)包;步驟617 :主設(shè)備判斷是否完成密文數(shù)據(jù)包的發(fā)送,未完成則跳轉(zhuǎn)到步驟616,完成則發(fā)送結(jié)束符;步驟619 :嵌入式設(shè)備接收密文數(shù)據(jù)包;步驟620 :嵌入式設(shè)備判斷是否接收到結(jié)束符,不是結(jié)束符則跳轉(zhuǎn)到步驟621,是結(jié)束符則跳轉(zhuǎn)到步驟622 ;步驟621 :解密密文數(shù)據(jù)包并存儲到Flash ROM,跳轉(zhuǎn)到步驟619 ;步驟622 :嵌入式設(shè)備完成接收數(shù)據(jù);
步驟623 :主設(shè)備完成發(fā)送數(shù)據(jù),退出下載工具。如圖7所示,該實施例中,應(yīng)用程序認(rèn)證碼Code校驗示意圖是步驟701 :應(yīng)用程序開始執(zhí)行;步驟702 :如果調(diào)用系統(tǒng)認(rèn)證碼校驗接口進(jìn)行認(rèn)證碼的校驗,則跳轉(zhuǎn)到步驟703,沒有進(jìn)行調(diào)用系統(tǒng)認(rèn)證碼校驗接口,則繼續(xù)運行程序,跳轉(zhuǎn)到步驟704 ;
進(jìn)一步的系統(tǒng)認(rèn)證碼校驗接口完成調(diào)用系統(tǒng)認(rèn)證碼校驗函數(shù),系統(tǒng)認(rèn)證碼校驗函數(shù)將獲取散列的認(rèn)證碼Code'和認(rèn)證碼Code''組合成整體,與待校驗的認(rèn)證碼進(jìn)行比較,返回比較結(jié)果(正確或錯誤)。同時,本發(fā)明實施例中,系統(tǒng)認(rèn)證碼校驗函數(shù)對待校驗的認(rèn)證碼校驗次數(shù)限制為5次,以防止惡意地進(jìn)行無限次試探,盜取應(yīng)用程序的認(rèn)證碼。步驟703 :根據(jù)返回校驗結(jié)果決定是否繼續(xù)運行程序,輸入的認(rèn)證碼校驗正確則跳轉(zhuǎn)到步驟704,輸入的認(rèn)證碼校驗錯誤則跳轉(zhuǎn)到步驟705 ;步驟704 :繼續(xù)運行應(yīng)用程序;步驟705 :中止運行應(yīng)用程序;進(jìn)一步的,在本發(fā)明的實施例中應(yīng)用程序可多處進(jìn)行認(rèn)證碼的校驗。本發(fā)明實施例嵌入式設(shè)備中二次開發(fā)的嵌入式應(yīng)用程序的加密和認(rèn)證保護(hù)的系統(tǒng)用于實現(xiàn)上述方法,如圖8所示,包括嵌入式設(shè)備200和主設(shè)備100,嵌入式設(shè)備200與主設(shè)備100通信連接,如可通過接口處理模塊連接,其中,主設(shè)備100包括請求模塊110,用于向嵌入式設(shè)備發(fā)送請求信息;加密模塊120,用于對嵌入式的應(yīng)用程序進(jìn)行加密;下載模塊130,用于下載數(shù)據(jù)至嵌入式設(shè)備中,數(shù)據(jù)包括認(rèn)證碼、密鑰及加密的應(yīng)用程序;嵌入式設(shè)備200包括接收應(yīng)答模塊210,用于接收主設(shè)備發(fā)送請求信息并反饋應(yīng)答信息;解密模塊220,用于根據(jù)接收的數(shù)據(jù)中的密鑰進(jìn)行解密;存儲模塊230,用于存儲認(rèn)證碼、密鑰以及固化應(yīng)用程序;認(rèn)證碼校驗?zāi)K240,用于在啟動應(yīng)用程序時,接收用戶輸入的待校驗的認(rèn)證碼,并獲取存儲模塊中存儲的認(rèn)證碼,驗證待校驗的認(rèn)證碼,若驗證通過,則運行應(yīng)用程序,否則終止運行應(yīng)用程序。進(jìn)一步地,本發(fā)明實施例嵌入式設(shè)備還包括控制模塊250,用于當(dāng)嵌入式設(shè)備的存儲模塊230被外部工具非法訪問時,則清除存儲模塊230中的全部數(shù)據(jù)。進(jìn)一步地,本發(fā)明實施例中,存儲模塊230還用于將密鑰和認(rèn)證碼和散列地存儲在存儲模塊的空余空間上。應(yīng)當(dāng)理解的是,對本領(lǐng)域普通技術(shù)人員來說,可以根據(jù)上述說明加以改進(jìn)或變換,而所有這些改進(jìn)和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.一種二次開發(fā)的嵌入式應(yīng)用程序的加密和認(rèn)證保護(hù)的方法,其特征在于,包括以下步驟 主設(shè)備向嵌入式設(shè)備發(fā)送請求下載數(shù)據(jù)的信息; 嵌入式設(shè)備接收請求信息并根據(jù)請求信息向主設(shè)備反饋應(yīng)答信息; 主設(shè)備向嵌入式設(shè)備下載數(shù)據(jù),數(shù)據(jù)包括認(rèn)證碼、密鑰及加密的應(yīng)用程序; 嵌入式設(shè)備接收和存儲請求數(shù)據(jù)至存儲模塊中,并用接收的密鑰進(jìn)行解密以固化應(yīng)用程序; 嵌入式設(shè)備啟動應(yīng)用程序,并接收用戶輸入的待校驗的認(rèn)證碼; 嵌入式設(shè)備獲取存儲模塊中存儲的認(rèn)證碼,并驗證待校驗的認(rèn)證碼,若驗證通過,則運行應(yīng)用程序,否則終止運行應(yīng)用程序。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,還包括步驟 當(dāng)嵌入式設(shè)備的存儲模塊被外部工具非法訪問時,則清除存儲模塊中的全部數(shù)據(jù)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,步驟嵌入式設(shè)備存儲請求數(shù)據(jù)至存儲模塊中具體包括將密鑰散列地存儲在存儲模塊的空余空間上。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,步驟嵌入式設(shè)備存儲請求數(shù)據(jù)至存儲模塊中具體包括將認(rèn)證碼散列地存儲在存儲模塊的空余空間上。
5.根據(jù)權(quán)利要求3或4所述的方法,其特征在于,主設(shè)備通過數(shù)據(jù)加密標(biāo)準(zhǔn)DES、國際數(shù)據(jù)加密算法IDEA、MD5算法或者高級加密標(biāo)準(zhǔn)AES對應(yīng)用程序進(jìn)行加密。
6.根據(jù)權(quán)利要求I所述的方法,其特征在于,嵌入式設(shè)備在運行應(yīng)用程序時,至少進(jìn)行一次認(rèn)證碼校驗。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,若用戶輸入錯誤的驗證碼次數(shù)超過預(yù)設(shè)次數(shù),則在預(yù)先設(shè)定的時間內(nèi)禁止再次運行應(yīng)用程序。
8.一種二次開發(fā)的嵌入式應(yīng)用程序的加密和認(rèn)證保護(hù)的系統(tǒng),其特征在于,包括嵌入式設(shè)備和主設(shè)備,嵌入式設(shè)備與主設(shè)備通信連接,其中, 主設(shè)備包括 請求模塊,用于向嵌入式設(shè)備發(fā)送請求信息; 加密模塊,用于對嵌入式的應(yīng)用程序進(jìn)行加密; 下載模塊,用于下載數(shù)據(jù)至嵌入式設(shè)備中,數(shù)據(jù)包括認(rèn)證碼、密鑰及加密的應(yīng)用程序; 嵌入式設(shè)備包括 接收和應(yīng)答模塊,用于接收主設(shè)備的請求信息和向主設(shè)備反饋應(yīng)答信息; 解密模塊,用于根據(jù)接收數(shù)據(jù)中的密鑰進(jìn)行解密數(shù)據(jù); 存儲模塊,用于接收并存儲主設(shè)備發(fā)送的數(shù)據(jù)和固化應(yīng)用程序; 認(rèn)證碼校驗?zāi)K,用于在啟動應(yīng)用程序時,接收用戶輸入的待校驗的認(rèn)證碼,并獲取存儲模塊中存儲的認(rèn)證碼來驗證待校驗的認(rèn)證碼,若驗證通過,則運行應(yīng)用程序,否則終止運行應(yīng)用程序。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,嵌入式設(shè)備還包括 控制模塊,用于當(dāng)嵌入式設(shè)備的存儲模塊被外部工具非法訪問時,則清除存儲模塊中的全部數(shù)據(jù)。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,存儲模塊還用于將密鑰和認(rèn)證碼散列地存儲在存儲模塊的空 余空間上。
全文摘要
本發(fā)明提出一種二次開發(fā)嵌入式應(yīng)用程序的加密和認(rèn)證保護(hù)的方法及系統(tǒng),其中方法包括以下步驟主設(shè)備向嵌入式設(shè)備請求下載數(shù)據(jù)的信息;嵌入式設(shè)備接收請求信息并向嵌入式設(shè)備反饋應(yīng)答信息;主設(shè)備向嵌入式設(shè)備下載數(shù)據(jù),數(shù)據(jù)包括認(rèn)證碼、密鑰及加密的應(yīng)用程序;嵌入式設(shè)備接收和存儲請求數(shù)據(jù)至存儲模塊中,并用接收的密鑰進(jìn)行解密以固化應(yīng)用程序;嵌入式設(shè)備啟動應(yīng)用程序,并接收用戶輸入的待校驗的認(rèn)證碼;嵌入式設(shè)備獲取存儲模塊中存儲的認(rèn)證碼,并驗證待校驗的認(rèn)證碼,若驗證通過,則運行應(yīng)用程序,否則終止運行應(yīng)用程序。本發(fā)明不用增加額外的硬件,就可提高了嵌入式設(shè)備二次開發(fā)軟件的安全性。
文檔編號H04L9/32GK102831357SQ201210304130
公開日2012年12月19日 申請日期2012年8月24日 優(yōu)先權(quán)日2012年8月24日
發(fā)明者黃強(qiáng), 林嘉順, 倪贊春 申請人:深圳市民德電子科技有限公司