專利名稱:用于執(zhí)行保護(hù)軟件代碼的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件代碼保密技術(shù),特別涉及一種用于執(zhí)行保護(hù)軟件代碼的 方法及裝置。
背景技術(shù):
軟件由軟件代碼組成的,軟件代碼凝聚了軟件開發(fā)人員的智慧,特別是 核心代碼, 一旦被惡意獲取,將泄漏軟件開發(fā)人員的智力成果,降低軟件的 價值。當(dāng)軟件在軟件執(zhí)行單元如公知的操作系統(tǒng)中運(yùn)行時,如果軟件代碼在軟 件中以明文的方式存在,非常容易通過靜態(tài)反匯編以及動態(tài)調(diào)試等方法對軟 件代碼進(jìn)行分析,獲取軟件代碼的執(zhí)行邏輯或算法。為了有效地保護(hù)軟件, 通常會對軟件中需要保護(hù)的軟件代碼如核心代碼等進(jìn)行加密等保護(hù),本發(fā)明 將這種經(jīng)過加密等保護(hù)手段處理的軟件代碼稱為"保護(hù)軟件代碼"。目前,通常將需要保護(hù)的代碼存儲到安全硬件設(shè)備如安全芯片中,以達(dá) 到對軟件代碼的保護(hù)。在運(yùn)行保護(hù)軟件代碼時,安全硬件設(shè)備通過重新編譯 的方式將該保護(hù)軟件代碼編譯成明文,并一次性全部寫入安全硬件設(shè)備的永久存儲介質(zhì)中,如閃存(Flash)或可電擦除只讀存儲器(EEPROM)中。可 以看出,由于保護(hù)代碼在自身存儲的安全硬件設(shè)備中運(yùn)行,而不在操作系統(tǒng) 中運(yùn)行,實(shí)現(xiàn)了對軟件代碼的保護(hù)?,F(xiàn)有運(yùn)行保護(hù)軟件代碼的方法,需要將大量的保護(hù)軟件代碼存放在安全 硬件設(shè)備的永久存儲介質(zhì)中,這樣才能由安全硬件設(shè)備的處理器對保護(hù)軟件 代碼進(jìn)行處理和計(jì)算。為了有效安全地運(yùn)行保護(hù)軟件代碼,不僅要求安全硬 件設(shè)備具備相當(dāng)?shù)倪\(yùn)算處理能力,而且安全硬件設(shè)備本身必須是一種安全芯片。目前,安全芯片內(nèi)部的永久存儲介質(zhì)的存儲容量都非常小, 一般只有幾 十千字節(jié)大小,遠(yuǎn)遠(yuǎn)不能滿足保護(hù)軟件代碼的存儲和運(yùn)行要求,而且安全芯 片價格昂貴,嚴(yán)重影響了對軟件代碼的保護(hù)。發(fā)明內(nèi)容本發(fā)明的主要目的在于提供一種用于執(zhí)行保護(hù)軟件代碼的方法和裝置, 從而能夠有效安全地保證保護(hù)軟件代碼的運(yùn)行。根據(jù)本發(fā)明的一個方面,提供一種用于執(zhí)行保護(hù)軟件代碼的方法,其特征在于,該方法包括以下步驟(A)從外部設(shè)備獲取所述保護(hù)軟件代碼;(B )將所述保護(hù)4欠件代碼存儲在安全硬件設(shè)備(20 )中;(C) 所述安全硬件設(shè)備(20)對其中已存儲的所述保護(hù)軟件代碼進(jìn)行解密;(D) 執(zhí)行解密后的軟件代碼,同時存儲執(zhí)行結(jié)果;(E) 在執(zhí)行完所有所述保護(hù)軟件代碼后,所述安全硬件設(shè)備(20)返回 所述保護(hù)軟件代碼的執(zhí)行結(jié)果。 '根據(jù)本發(fā)明的一個方面,其特征還在于,所述保護(hù)軟件代碼在加密時所采用的密鑰與所述安全硬件設(shè)備(20)--對應(yīng),只有與密鑰相對應(yīng)的所述安全硬件設(shè)備(20)才能對其內(nèi)部所存儲的已加密的保護(hù)軟件代碼進(jìn)行解密。根據(jù)本發(fā)明的一個方面,其特征還在于,在步驟(D)中執(zhí)行解密后的軟 件代碼之前,還包括步驟在解密所述保護(hù)軟件代碼后直接執(zhí)行所述保護(hù)軟件 代碼。根據(jù)本發(fā)明的一個方面,其特征還在于,在步驟(D)中執(zhí)行解密后的軟 件代碼之前,還包括步驟通過所述安全硬件設(shè)備(20)內(nèi)部的已有代碼解釋 引擎將所述軟件代碼解析成所述安全硬件設(shè)備(20 )能識別的指令格式。'根據(jù)本發(fā)明的一個方面,其特征還在于,在所述安全硬件設(shè)備(20 )中執(zhí)行完成所述保護(hù)軟件代碼。根據(jù)本發(fā)明的一個方面,其特征還在于,在步驟(D)中執(zhí)行已解密的所述保護(hù)軟件代碼之前或之后,還包括步驟對所述保護(hù)軟件代碼進(jìn)行安全鑒別。 根據(jù)本發(fā)明的一個方面,其特征還在于,在步驟(A)之前,還包括步驟 對需要保護(hù)的軟件代碼加密后存儲在獨(dú)立于所述安全硬件設(shè)備(20 )的其他設(shè) 備中。根據(jù)本發(fā)明的一個方面,其特征還在于,還包括步驟對所述加密后的保 護(hù)軟件代碼進(jìn)^f于i人i正。根據(jù)本發(fā)明的一個方面,其特征還在于,還包括步驟對需要保護(hù)的軟件 代碼進(jìn)行認(rèn)證后再執(zhí)行加密。根據(jù)本發(fā)明的另一個方面,提供一種用于執(zhí)行保護(hù)軟件代碼的裝置,其特征 在于,該裝置包括安全硬件設(shè)備(20),用于解密其中已存儲的所述保護(hù)軟件代碼,執(zhí)行 解密后的軟件代碼,并返回執(zhí)行結(jié)果。根據(jù)本發(fā)明的另一個方面,其特征還在于,按照分段的形式執(zhí)行所述保護(hù)軟 件代碼的各分段代碼。根據(jù)本發(fā)明的另一個方面,其特征還在于,所述保護(hù)軟件代碼在加密時所采 用的密鑰與所述安全硬件設(shè)備(20)——對應(yīng),只有與密鑰相對應(yīng)的所述安全 硬件設(shè)備(20)才能對其內(nèi)部所存儲的已加密的保護(hù)軟件代碼進(jìn)行解密。根據(jù)本發(fā)明的另一個方面,其特征還在于,所述安全硬件設(shè)備(20)包括硬件控制模塊(200)、解密模塊(201)和存儲模塊(202),其中,硬件控制模塊(200)用于接收解密通知,向解密模塊(201 )發(fā)送解密控制 指令;接收來自解密模塊(201)的解密完成通知,發(fā)送獲取保護(hù)軟件代碼通知 或獲取執(zhí)行結(jié)果通知,執(zhí)行解密的軟件代碼并存儲執(zhí)行結(jié)果在存儲單元(202);解密模塊(201)用于接收來自硬件控制模塊(200)的解密控制指令,從存 儲模塊(202)中讀取保護(hù)軟件代碼,并進(jìn)行解密后將解密后的軟件代碼存儲在 存儲模塊(202)中,向硬件控制模塊(200)發(fā)送解密完成通知。根據(jù)本發(fā)明的另一個方面,其特征還在于,所述安全硬件設(shè)備(20)還包括 驗(yàn)證模塊(203 ),用于接收來自硬件控制模塊(200)的驗(yàn)證控制指令,對存儲在存儲4莫塊(202 )中的保護(hù)軟件代碼進(jìn)行安全驗(yàn)證,并在通過驗(yàn)證后向硬件控制模塊(200)發(fā)送驗(yàn)證完成通知,將解密控制指令轉(zhuǎn)發(fā)給解密模塊(210 )。 根據(jù)本發(fā)明的另一個方面,其特征還在于,所述硬件控制模塊(200)接收來自驗(yàn)證模塊(203)的驗(yàn)證完成通知,向所述解密模塊(201)發(fā)送解密控制指令。根據(jù)本發(fā)明的另一個方面,其特征還在于,所迷硬件控制才莫塊(200)接收 來自解密模塊(201 )的解密完成通知,向l^正模塊(203 )發(fā)送驗(yàn)證控制指令, 接收來自驗(yàn)證模塊(203)的驗(yàn)證完成通知,發(fā)送獲取保護(hù)軟件代碼通知或獲取 執(zhí)行結(jié)果通知。根據(jù)本發(fā)明的另一個方面,其特征還在于,其特征在于,所述安全硬件設(shè)備 為安全芯片。
圖l是本發(fā)明執(zhí)行保護(hù)軟件代碼的方法的流程圖; 圖2是本發(fā)明軟件代碼運(yùn)行單元實(shí)施例的組成結(jié)構(gòu)示意圖; 圖3a是本發(fā)明軟件代碼處理單元實(shí)施例一的組成結(jié)構(gòu)示意圖; 圖3b是本發(fā)明軟件代碼處理單元實(shí)施例二的組成結(jié)構(gòu)示意圖。
具體實(shí)施方式
本發(fā)明的核心思想是當(dāng)軟件執(zhí)行單元需要執(zhí)行保護(hù)軟件代碼時,從外 部獲取保護(hù)軟件代碼并存儲在安全硬件設(shè)備中;安全硬件設(shè)備解密并執(zhí)行解 密后的軟件代碼,同時存儲執(zhí)行結(jié)果;在執(zhí)行完所有保護(hù)軟件代碼后,安全 硬件設(shè)備將保護(hù)軟件代碼的執(zhí)行結(jié)果返回給軟件執(zhí)行單元。為使本發(fā)明的目的、技術(shù)方案及其優(yōu)點(diǎn)更加清楚明白,以下參照附圖并 例舉較佳實(shí)施例,對本發(fā)明進(jìn)一步詳細(xì)說明。圖1是本發(fā)明執(zhí)行軟件代碼的方法的流程圖。當(dāng)軟件執(zhí)行單元即公知的操作系統(tǒng)需要執(zhí)行保護(hù)軟件代碼時,進(jìn)行以下步驟步驟100:從外部獲取保護(hù)軟件代碼并存儲在安全硬件設(shè)備中。 在步驟100中,軟件執(zhí)行單元直接從獨(dú)立于軟件執(zhí)行單元的存儲了保護(hù) 軟件代碼的外部設(shè)備中讀取所需的保護(hù)軟件代碼,這種讀取方法的具體實(shí)現(xiàn) 技術(shù)屬于本領(lǐng)域的公知常識,不再贅述。步驟100所強(qiáng)調(diào)的是,第一,本發(fā)明的保護(hù)軟件代碼存儲在與軟件執(zhí)行 單元所在設(shè)備不同的其它設(shè)備上,比如移動硬盤(或者U盤)中,如果保 護(hù)軟件代碼比較大,則可以按分段形式存儲在移動硬盤中,并為每段保護(hù)軟 件代碼設(shè)置標(biāo)識,以便識別;第二,在軟件執(zhí)行單元獲得保護(hù)軟件代碼后, 并不立即執(zhí)行保護(hù)軟件代碼,而是將該保護(hù)軟件代碼存儲到安全硬件設(shè)備如 安全芯片中。步驟101:安全硬件設(shè)備解密并執(zhí)行解密后的軟件代碼,同時存儲執(zhí)行 結(jié)果。安全硬件設(shè)備對保護(hù)軟件代碼進(jìn)行解密的方法很多,屬于公知技術(shù),不 再贅述。保護(hù)軟件代碼在加密時,需要密鑰參與計(jì)算,該密鑰信息與安全硬 件設(shè)備一一對應(yīng),這樣, 一方面安全硬件設(shè)備自身采用具有高安全強(qiáng)度的安 全芯片,確保了安全硬件設(shè)備內(nèi)部的密鑰的保密性;另一方面,由于只有配 套的安全硬件設(shè)備可以在其內(nèi)部對被加密的保護(hù)軟件代碼進(jìn)行解密,從而保 證了保護(hù)軟件代碼的安全性。保護(hù)軟件代碼在未被加密之前,若被編譯成安全硬件設(shè)備能夠識別的指 令格式,則在保護(hù)軟件代碼解密后即可直接執(zhí)行;若被編譯成軟件執(zhí)行單元 能夠識別的指令格式,則在保護(hù)軟件代碼解密后,通過安全硬件設(shè)備內(nèi)部的 已有代碼解釋引擎解析成安全硬件設(shè)備可以執(zhí)行的指令格式后再執(zhí)行。步驟102:判斷是否執(zhí)行完所有保護(hù)軟件代碼,若是,則進(jìn)入步驟103; 否則,返回步驟100。通常保護(hù)軟件代碼是分段存儲的,則需要將當(dāng)前執(zhí)行的保護(hù)軟件代碼的各分段代碼執(zhí)行完成。分段存儲及讀取方法屬于本領(lǐng)域的公知常識,這里不 再詳述。步驟103:安全硬件設(shè)備將保護(hù)軟件代碼的執(zhí)行結(jié)果返回給軟件執(zhí)行單元。保護(hù)軟件代碼的執(zhí)行在安全硬件設(shè)備中完成,在執(zhí)行完保護(hù)軟件代碼 后,安全硬件設(shè)備將執(zhí)行結(jié)果返回給軟件執(zhí)行單元,以便軟件執(zhí)行單元進(jìn)行 后續(xù)軟件代碼的運(yùn)行。進(jìn)一步地,保護(hù)軟件代碼在執(zhí)行之前或之后,還包括對保護(hù)軟件代碼的 安全鑒別過程,比如對簽名或其它安全數(shù)據(jù)進(jìn)行驗(yàn)證等,該安全鑒別過程是 為了防止安全硬件設(shè)備執(zhí)行未經(jīng)授權(quán)的代碼。圖2是本發(fā)明軟件代碼運(yùn)行單元實(shí)施例的組成結(jié)構(gòu)示意圖,如圖2所示, 軟件代碼運(yùn)行單元包括安全硬件設(shè)備20和軟件執(zhí)行單元21,其中,安全硬 件設(shè)備20包括硬件控制模塊200、解密模塊201、存儲模塊202,還進(jìn)一步 包括驗(yàn)證模塊203;軟件執(zhí)行單元21包括軟件控制模塊210和軟件執(zhí)行模 塊211。安全硬件設(shè)備20,用于解密存儲的保護(hù)軟件代碼,執(zhí)行解密后的軟件 代碼,并向軟件執(zhí)行單元21返回執(zhí)行結(jié)果。硬件控制模塊200,用于接收來自軟件控制模塊210的解密通知,向解 密模塊201發(fā)送解密控制指令;接收來自解密模塊201的解密完成通知,向 軟件控制模塊210發(fā)送獲取保護(hù)軟件代碼通知或獲取執(zhí)行結(jié)果通知,執(zhí)行解 密的軟件代碼并存儲執(zhí)行結(jié)果在存儲模塊202。解密模塊201,用于接收來自硬件控制模塊200的解密控制指令,從存 儲模塊202中讀取保護(hù)軟件代碼,并進(jìn)行解密后將解密后的軟件代碼存儲在 存儲模塊202中,向硬件控制模塊200發(fā)送解密完成通知。存儲模塊202,用于存儲來自軟件控制模塊210的保護(hù)軟件代碼,或來 自解密模塊201的解密后的軟件代碼,或來自硬件控制模塊200的執(zhí)行結(jié)果。 存儲模塊202為安全硬件設(shè)備20中的數(shù)據(jù)存儲器(RAM)。進(jìn)一步地,安全硬件設(shè)備20包括驗(yàn)證模塊203,驗(yàn)證模塊203置于解 密模塊201之前時,驗(yàn)證模塊203接收來自硬件控制模塊200的解密控制指 令,對存儲在存儲模塊202中的保護(hù)軟件代碼進(jìn)行安全驗(yàn)證并在通過驗(yàn)證 后,向硬件控制模塊200發(fā)送驗(yàn)證完成通知;此時,硬件控制模塊200,接 收到來自驗(yàn)證模塊203的驗(yàn)證完成通知后,向所述解密模塊201發(fā)送解密控 制指令。 '若驗(yàn)證模塊203置于解密模塊之后,則硬件控制模塊200接收到來自解 密模塊201的解密完成通知后,向驗(yàn)證模塊203發(fā)送驗(yàn)證控制指令,并在接 收到耒自驗(yàn)證模塊203的驗(yàn)證完成通知后,向所述軟件執(zhí)行單元21發(fā)送獲 取保護(hù)軟件代碼通知或獲取執(zhí)行結(jié)果通知將解密控制指令轉(zhuǎn)發(fā)給解密模塊 210。軟件執(zhí)行單元21,用于執(zhí)行軟件代碼,并在執(zhí)行保護(hù)軟件代碼時,從 外部獲取保護(hù)軟件代碼,并發(fā)送給安全硬件設(shè)備20。軟件控制模塊210,用于接收來自軟件執(zhí)行模塊211的執(zhí)行保護(hù)軟件代 碼通知,接收來自外部的保護(hù)軟件代碼,將接收到的保護(hù)軟件代碼存儲到安 全硬件設(shè)備20的存儲模塊202中;向硬件控制模塊200發(fā)送解密通知;接 收來自硬件控制模塊200的獲取保護(hù)軟件代碼通知或獲取執(zhí)行結(jié)果通知,將 接收到的保護(hù)軟件代碼存儲到存儲模塊202或從存儲模塊202中讀取執(zhí)行結(jié) 果;將讀取的執(zhí)行結(jié)果發(fā)送給軟件執(zhí)行模塊211。軟件執(zhí)行模塊211,用于執(zhí)行軟件代碼,向軟件控制模塊210發(fā)送執(zhí)行 保護(hù)軟件代碼通知,接收來自軟件控制模塊210的執(zhí)行結(jié)果。以上詳細(xì)描述了本發(fā)明執(zhí)行保護(hù)軟件代碼的方法及裝置,從本發(fā)明方案 可見,保護(hù)軟件代碼存儲在獨(dú)立的外部設(shè)備中,而不是存儲在安全硬件設(shè)備 如安全芯片中,解決了由于安全芯片內(nèi)部的永久存儲介質(zhì)的存儲容量小,遠(yuǎn) 遠(yuǎn)不能滿足保護(hù)軟件代碼的存儲和運(yùn)行要求的問題,也大大降低了對軟件代 碼的保護(hù)的實(shí)現(xiàn)成本。同時,保護(hù)軟件代碼在加密時,參與加密計(jì)算的密鑰與安全硬件設(shè)備一一對應(yīng),這樣, 一方面安全硬件設(shè)備自身采用具有高安全強(qiáng)度的安全芯片,確保了安全硬件設(shè)備內(nèi)部的密鑰的保密性;另一方面,由于只有配套的安全 硬件設(shè)備可以在其內(nèi)部對被加密的保護(hù)軟件代碼進(jìn)行解密,從而保證了保護(hù) 軟件代碼的安全性。本發(fā)明還進(jìn)一步包括對需要保護(hù)的軟件代碼進(jìn)行加密和存儲處理。圖 3a是本發(fā)明軟件代碼處理單元實(shí)施例一的組成結(jié)構(gòu)示意圖,如圖3a所示, 軟件代碼處理單元包括編譯模塊300、加密模塊301、代碼存儲模塊303。編譯模塊300,用于接收需要保護(hù)的軟件代碼,對需要保護(hù)的軟件代碼 進(jìn)行編譯,可編譯成安全硬件設(shè)備能夠執(zhí)行的指令格式,也可以編譯成軟件 執(zhí)行單元能夠執(zhí)行的指令格式;將編譯后的軟件代碼發(fā)送給加密模塊301。加密模塊301,用于接收來自編譯模塊300的編譯后的軟件代碼,存儲 加密后的保護(hù)軟件代碼在代碼存儲模塊303。加密模塊301可以通過硬件或 軟件實(shí)現(xiàn),具體實(shí)現(xiàn)方法很多,屬于本領(lǐng)域的公知技術(shù),這里不再贅述。軟件代碼處理單元30還進(jìn)一步包括簽名模塊302,用于對需要保護(hù) 的軟件代碼進(jìn)行認(rèn)證,安全性認(rèn)證可以采用多種方法,生成簽名或其它安全 數(shù)據(jù)。簽名模塊302可以置于加密模塊301之后,也可以如圖3b所示,設(shè) 置在加密模塊301之前。圖3b是本發(fā)明軟件代碼處理單元實(shí)施例二的組成 結(jié)構(gòu)示意圖。由上述技術(shù)方案可見,在本發(fā)明中,軟件執(zhí)行單元獲得保護(hù)軟件代碼后, 并不立即執(zhí)行保護(hù)軟件代碼,而是將該保護(hù)軟件代碼存儲到安全硬件設(shè)備如 安全芯片中,保護(hù)軟件代碼在安全硬件設(shè)備中解密并執(zhí)行,之后再將執(zhí)行結(jié) 果返回軟件執(zhí)行單元。另外,本發(fā)明中,保護(hù)軟件代碼存儲在與軟件執(zhí)行單 元所在設(shè)備不同的其它設(shè)備上,比如移動硬盤中,而不是存儲在安全硬件設(shè)小,遠(yuǎn)遠(yuǎn)不能滿足保護(hù)軟件代碼的存儲和運(yùn)行要求的問題,也大大降低了對 軟件代碼的保護(hù)的實(shí)現(xiàn)成本。保護(hù)軟件代碼在加密時,參與加密計(jì)算的密鑰與安全硬件設(shè)備——對硬件設(shè)備自身釆用具有高安全強(qiáng)度的安全芯片,確保了安全硬件設(shè)備內(nèi)部的密鑰的保密性;另一方面,由于只有配套的安全硬件 設(shè)備可以在其內(nèi)部對被加密的保護(hù)軟件代碼進(jìn)行解密,從而保證了保護(hù)軟件 代碼的安全性。以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù) 范圍,凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等, 均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1. 一種用于執(zhí)行保護(hù)軟件代碼的方法,其特征在于,該方法包括以下步驟(A)從外部設(shè)備獲取所述保護(hù)軟件代碼;(B)將所述保護(hù)軟件代碼存儲在安全硬件設(shè)備(20)中;(C)所述安全硬件設(shè)備(20)對其中已存儲的所述保護(hù)軟件代碼進(jìn)行解密;(D)執(zhí)行解密后的軟件代碼,同時存儲執(zhí)行結(jié)果;(E)在執(zhí)行完所有所述保護(hù)軟件代碼后,所述安全硬件設(shè)備(20)返回所述保護(hù)軟件代碼的執(zhí)行結(jié)果。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,在步驟(D)中執(zhí)行解密后 的軟件代碼之前,還包括步驟在解密所述保護(hù)軟件代碼后直接執(zhí)行所述保護(hù) 軟件代碼。
3、 根據(jù)權(quán)利要求1所述的方法,其特征在于,在步驟(D)中執(zhí)行解密后 的軟件代碼之前,還包括步驟通過所述安全硬件設(shè)備(20 )內(nèi)部的已有代碼 解釋引擎將所述軟件代碼解析成所述安全硬件設(shè)備(20)能識別的指令格式。
4、 根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述安全硬件設(shè)備(20 ) 中執(zhí)行完成所述保護(hù)軟件代碼。
5、 根據(jù)權(quán)利要求1所述的方法,其特征在于,在步驟(D)中執(zhí)行已解密 的所述保護(hù)軟件代碼之前或之后,還包括步驟對所述保護(hù)軟件代碼進(jìn)行安全 鑒別。
6、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述保護(hù)軟件代碼在加密時 所釆用的密鑰與所述安全石更件設(shè)備(20)——對應(yīng),只有與密鑰相對應(yīng)的所述 安全硬件設(shè)備(20)才能對其內(nèi)部所存儲的已加密的保護(hù)軟件代碼進(jìn)行解密。
7、 根據(jù)權(quán)利要求l-6所述的任一方法,其特征在于,在步驟(A)之前, 還包括步驟對需要保護(hù)的軟件代碼加密后存儲在獨(dú)立于所述安全硬件設(shè)備(20)的其他設(shè)備中。
8、 根據(jù)權(quán)利要求7所述的方法,其特征在于,還包括步驟對所述加密后 的保護(hù)軟件代碼進(jìn)行認(rèn)證。
9、 根據(jù)權(quán)利要求7所述的方法,其特征在于,還包括步驟對需要保護(hù)的 軟件代碼進(jìn)行認(rèn)證后再執(zhí)行加密。
10、 一種用于執(zhí)行保護(hù)軟件代碼的裝置,其特征在于,該裝置包括 安全硬件設(shè)備(20),用于解密其中已存儲的所述保護(hù)軟件代碼,執(zhí)行解密后的軟件代碼,并返回執(zhí)行結(jié)果。
11、 根據(jù)權(quán)利要求10所述的裝置,其特征在于,按照分段的形式執(zhí)行所 述保護(hù)軟件代碼的各分段代碼。
12、 根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述保護(hù)軟件代碼在加 密時所采用的密鑰與所述安全硬件設(shè)備(20) —一對應(yīng),只有與密鑰相對應(yīng)的 所述安全硬件設(shè)備(20)才能對其內(nèi)部所存儲的已加密的保護(hù)軟件代碼進(jìn)行解 密。
13、 根據(jù)權(quán)利要求IO所述的裝置,其特征在于,所述安全硬件設(shè)備(20) 包括硬件控制模塊(200)、解密模塊(201)和存儲模塊(202),其中, 硬件控制模塊(200)用于接收解密通知,向解密模塊(201 )發(fā)送解密控制 指令;接收來自解密模塊(201)的解密完成通知,發(fā)送獲取保護(hù)軟件代碼通知 或獲取執(zhí)行結(jié)果通知,執(zhí)行解密的軟件代碼并存儲執(zhí)行結(jié)果在存儲單元(202 );解密模塊(201)用于接收來自硬件控制模塊(200)的解密控制指令,從存 儲模塊(202)中讀取保護(hù)軟件代碼,并進(jìn)行解密后將解密后的軟件代碼存儲在 存儲模塊(202)中,向硬件控制模塊(200)發(fā)送解密完成通知。
14、 根據(jù)權(quán)利要求IO所述的裝置,其特征在于,所述安全硬件設(shè)備(20) 還包括驗(yàn)證模塊(203 ),用于接收來自硬件控制模塊(200)的驗(yàn)證控制指令,對 存儲在存儲模塊(202)中的保護(hù)軟件代碼進(jìn)行安全aS正,并在通過驗(yàn)證后向硬件控制模塊(200 )發(fā)送驗(yàn)證完成通知,將解密控制指令轉(zhuǎn)發(fā)給解密模塊(210 )。
15、 根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述硬件控制模塊(200) 接收來自驗(yàn)證模塊(203)的驗(yàn)證完成通知,向所述解密模塊(201)發(fā)送解密 控制指令。
16、 根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述硬件控制模塊(200) 接收來自解密模塊(201)的解密完成通知,向驗(yàn)證模塊(203 )發(fā)送驗(yàn)證控制 指令,接收來自驗(yàn)證模塊(203)的驗(yàn)證完成通知,發(fā)送獲取保護(hù)軟件代碼通知 或獲取執(zhí)行結(jié)果通知。
17、 根據(jù)權(quán)利要求10-16任一項(xiàng)所述的裝置,其特征在于,所述安全硬件 設(shè)備為安全芯片。
全文摘要
本發(fā)明公開了一種執(zhí)行保護(hù)軟件代碼的方法,該方法包括當(dāng)軟件執(zhí)行單元需要執(zhí)行保護(hù)的軟件代碼時,從外部獲取保護(hù)軟件代碼并存儲在安全硬件設(shè)備中;安全硬件設(shè)備解密并執(zhí)行解密后的保護(hù)軟件代碼,同時存儲執(zhí)行結(jié)果;在執(zhí)行完所有保軟件代碼后,安全硬件設(shè)備將保護(hù)軟件代碼的執(zhí)行結(jié)果返回給軟件執(zhí)行單元。同時本發(fā)明還公開了一種執(zhí)行保護(hù)軟件代碼的裝置。本發(fā)明中的安全硬件設(shè)備自身采用具有高安全強(qiáng)度的安全芯片,確保了安全硬件設(shè)備內(nèi)部的密鑰的保密性。另外,將保護(hù)軟件代碼存儲在獨(dú)立于安全硬件設(shè)備的外部設(shè)備中,大大降低了對軟件代碼的保護(hù)的實(shí)現(xiàn)成本。
文檔編號G06F21/22GK101281576SQ200810106568
公開日2008年10月8日 申請日期2008年5月14日 優(yōu)先權(quán)日2008年5月14日
發(fā)明者孫吉平, 勇 韓 申請人:北京深思洛克數(shù)據(jù)保護(hù)中心