專利名稱:用于程序狀態(tài)數(shù)據(jù)在電子設(shè)備中的安全存儲的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電子設(shè)備安全。特別地,本發(fā)明涉及一種用于程序狀態(tài)數(shù) 據(jù)在電子設(shè)備中的安全存儲的方法。
背景技術(shù):
在其中所有計算機程序和應(yīng)用都是操作的潛在目標(biāo)的世界中,對用戶 來說有必要能夠確信無疑他們正在使用的程序保持與最初被安裝或下載時
一樣。存在這樣的風(fēng)險程序被用具有類似觀感但收集并泄漏信息(例如 向互聯(lián)網(wǎng))的程序代替。軟件和數(shù)字媒體廠商還認(rèn)識到未授權(quán)分發(fā)和產(chǎn)品 墓改中涉及的風(fēng)險。所述風(fēng)險在計算機程序被用于控制現(xiàn)實資源的情況下 尤為突出。
越來越多移動設(shè)備和計算設(shè)備被配備了可信任環(huán)境,即安全的程序執(zhí) 行環(huán)境。所述可信任環(huán)境被用于運行應(yīng)用,該應(yīng)用處理設(shè)備專用或輸入的 秘密(secret)。所述可信任環(huán)境中的數(shù)據(jù)可以被用于實現(xiàn)數(shù)字版權(quán)管理和 復(fù)制保護。
然而,現(xiàn)有可信任環(huán)境中的問題是,程序和數(shù)據(jù)與可信任環(huán)境的所有 者協(xié)作地被存儲、更新和讀取。所述所有者可以是設(shè)備制造商、業(yè)務(wù)提供 商(xSP)或網(wǎng)絡(luò)運營商。添加的任何新特征和程序需要來自可信任環(huán)境 的所有者的驗證。能夠擁有這樣的解決方案將是有益的,所述解決方案使 第三方能夠利用可信任環(huán)境來為過剩的可信任第三方程序提供基礎(chǔ)。
發(fā)明內(nèi)容
本發(fā)明涉及一種方法,包括將程序信息獲取到包括在電子設(shè)備中的執(zhí)行環(huán)境,所述程序信息至少包括程序代碼;計算特定于所述電子設(shè)備的 秘密值和所述程序信息的至少一部分的機密性密鑰;以及,以所述機密性 密鑰作為密鑰對第一數(shù)據(jù)部分應(yīng)用密碼操作,所述第一數(shù)據(jù)部分包括到所 述程序代碼的第 一輸入數(shù)據(jù)部分或來自所述程序代碼的第 一輸出數(shù)據(jù)部 分,所述密碼操作包括解密和加密中的至少一個。
本發(fā)明還涉及一種電子設(shè)備,所述電子設(shè)備包括執(zhí)行環(huán)境,所述執(zhí)行 環(huán)境被配置為獲取程序信息,所述程序信息至少包括程序代碼;計算特 定于所述電子設(shè)備的秘密值和所述程序信息的至少一部分的機密性密鑰; 以及,以所述機密性密鑰作為密鑰對第一數(shù)據(jù)部分應(yīng)用密碼操作,所述第 一數(shù)據(jù)部分包括到所述程序代碼的第一輸入數(shù)據(jù)部分或來自所述程序代碼 的第一輸出數(shù)據(jù)部分,所述密碼操作包括解密和加密中的至少一個。
本發(fā)明還涉及一種電子設(shè)備,所述電子設(shè)備包括用于獲取程序信息 的裝置,所述程序信息至少包括程序代碼;用于計算特定于所述電子設(shè)備 的秘密值和所述程序信息的至少一部分的機密性密鑰的裝置;用于以所述 機密性密鑰作為密鑰對第一數(shù)據(jù)部分應(yīng)用密碼操作的裝置,其中,所述第 一數(shù)據(jù)部分包括到所述程序代碼的第一輸入數(shù)據(jù)部分或來自所述程序代碼 的第一輸出數(shù)據(jù)部分,所述密碼操作包括解密和加密中的至少一個。
本發(fā)明還涉及一種計算^l^呈序,所述計算^l4呈序包括當(dāng)在數(shù)據(jù)處理系 統(tǒng)上執(zhí)行時適于實施以下步驟的代碼獲取程序信息,所述程序信息至少 包括程序代碼;計算特定于所述電子設(shè)備的秘密值和所述程序信息的至少 一部分的機密性密鑰;以所述機密性密鑰作為密鑰對第一數(shù)據(jù)部分應(yīng)用密 碼操作,所述第一數(shù)據(jù)部分包括到所述程序代碼的第 一輸入數(shù)據(jù)部分或來 自所述程序代碼的第一輸出數(shù)據(jù)部分,所述密碼操作包括解密和加密中的 至少一個。
在本發(fā)明的一個實施例中,從特定于所述電子設(shè)備的主秘密值(master secret value)獲得特定于所述電子i殳備的所述秘密值。通過在所述執(zhí)行環(huán) 境中多樣化所述主秘密值來獲得用于在所述機密性密鑰的計算中使用的秘 密值。例如,可以通過計算所述程序信息(例如所述程序代碼)的散列以及將所述散列連接到所述主秘密值來實施所述多樣化。因此,所述執(zhí)行環(huán)
境以所述連接的散列和主秘密值作為自變量(argument)來計算單向函數(shù) (one-way function )并獲得已多樣化的秘密值,即,特定于所述電子設(shè)備 的秘密值。
在本發(fā)明的一個實施例中,所述電子設(shè)備中的執(zhí)行環(huán)境被配置為,在 所述執(zhí)行環(huán)境中以第二輸入數(shù)據(jù)部分和所述第 一輸入數(shù)據(jù)部分執(zhí)行所述程 序代碼以產(chǎn)生第二輸出數(shù)據(jù)部分。所述執(zhí)行環(huán)境計算所述第二輸入數(shù)據(jù)部 分、所述第二輸出數(shù)據(jù)部分和所述程序信息的第二散列。因此,所述執(zhí)行 環(huán)境用第二私鑰來加密所述第二散列以產(chǎn)生結(jié)果簽名,其中,所述第二私 鑰關(guān)聯(lián)于所述執(zhí)行環(huán)境。
在本發(fā)明的一個實施例中,所述程序信息被獲取到被配置為與所述電 子設(shè)備通信的網(wǎng)絡(luò)節(jié)點。所述網(wǎng)絡(luò)節(jié)點產(chǎn)生第二輸入數(shù)據(jù)部分。所述網(wǎng)絡(luò) 節(jié)點將所述程序信息和所述第二輸入數(shù)據(jù)部分提供到所述電子設(shè)備。所述 網(wǎng)絡(luò)節(jié)點從所述電子設(shè)備獲取第二輸出數(shù)據(jù)部分,并且驗證結(jié)果簽名以確 定包括在所述程序信息中的程序代碼已經(jīng)在所述電子設(shè)備中被執(zhí)行。
在本發(fā)明的一個實施例中,所述網(wǎng)絡(luò)節(jié)點從所述第二輸出數(shù)據(jù)部分提 取控制信息,并且用所述控制信息控制設(shè)備。所述設(shè)備可以直接連接到所 述網(wǎng)絡(luò)節(jié)點。所述設(shè)備例如可以是安全設(shè)備,例如鎖系統(tǒng)或才艮警系統(tǒng)。
在本發(fā)明的一個實施例中,所述電子設(shè)備中的提供方實體在所述程序 信息中提供對于所述執(zhí)行環(huán)境的程序代碼、第一公鑰、程序名稱、版本號 和簽名。所述執(zhí)行環(huán)境用關(guān)聯(lián)于第一私鑰的所述第一/^I檢查所述簽名。 所述執(zhí)行環(huán)境至少從所述第一公鑰、所述程序名稱和所述版本號計算第一 散列。所述提供方實體將所述第一輸入信息部分提供給所述執(zhí)行環(huán)境以用 于所述程序代碼的執(zhí)行。所述執(zhí)行環(huán)境使用單向函數(shù)從特定于所述電子設(shè) 備的所述秘密值和所述第一散列計算機密性密鑰。所述執(zhí)行環(huán)境用所述機 密性密鑰解密所述第一輸入信息部分,并且修改所述第一信息部分。最后, 所述執(zhí)行環(huán)境用所述;f幾密性密鑰加密所述第一輸出信息部分。
在本發(fā)明的一個實施例中,所述提供方實體被配置為獲取所述程序代碼;向所述程序代碼提供所述第一公鑰、所述程序名稱和所述版本號以 產(chǎn)生第二數(shù)據(jù)對象;以及用所述第一y^簽名所述第二數(shù)據(jù)對象以獲取所 述簽名。這些任務(wù)還可以在與所述電子設(shè)備通信的網(wǎng)絡(luò)節(jié)點中提供。
在本發(fā)明的一個實施例中,所述第一輸入數(shù)據(jù)部分包括關(guān)聯(lián)于所述程 序代碼的狀態(tài)信息。
在本發(fā)明的一個實施例中,所述機密性密鑰是對稱密鑰。在本發(fā)明的 一個實施例中,所述機密性密鑰是私鑰和公鑰對,并且用所述私鑰進行加 密以及用所述公鑰來進行解密,或反之亦然。
在本發(fā)明的一個實施例中,所述執(zhí)行環(huán)境是移動節(jié)點中的安全環(huán)境。 在本發(fā)明的一個實施例中,所述執(zhí)行環(huán)境是安全環(huán)境,例如移動節(jié)點。 在本發(fā)明的一個實施例中,所述移動節(jié)點是移動通信系統(tǒng)中的移動臺。 在本發(fā)明的一個實施例中,所述移動節(jié)點包括移動臺或一般而言的移 動終端。在本發(fā)明的一個實施例中,所述移動通信系統(tǒng)包括全球移動通信 系統(tǒng)(GSM)網(wǎng)絡(luò)和通用移動電話系統(tǒng)(UMTS)網(wǎng)絡(luò)中的至少一個。在 本發(fā)明的一個實施例中,所述系統(tǒng)包括無線局域網(wǎng)(WLAN)。在本發(fā)明 的一個實施例中,所述系統(tǒng)還包括微波接入全球互通(WiMAX)網(wǎng)絡(luò)。 在本發(fā)明的一個實施例中,所述移動節(jié)點例如可以是具有用于支持不同接 入類型的雙?;蚨嗄9δ艿腢MTS移動臺或GSM移動臺。
在本發(fā)明的一個實施例中,所述計算機程序被存儲在計算機可讀介質(zhì) 中。所述計算機可讀介質(zhì)可以是可移除存儲卡、磁盤、全息存儲器、光盤 或磁帶。
在本發(fā)明的一個實施例中,程序信息被獲取到所述電子設(shè)備中的執(zhí)行 環(huán)境。所述程序信息至少包括程序代碼。所述程序信息和設(shè)備特定的秘密 值的密鑰祐L計算。所述密鑰^^皮用于在所述執(zhí)行環(huán)境中解密程序特定的狀態(tài) 數(shù)據(jù)以用于所述程序代碼執(zhí)行。所述密鑰在執(zhí)行之后被用于加密已修改狀 態(tài)數(shù)據(jù)。
以上描述的本發(fā)明的實施例可以相互任意組合地被使用。所述實施例 中的幾個可以被合并到一起以構(gòu)成本發(fā)明的進一步實施例。本發(fā)明所涉及的一種方法、系統(tǒng)、電子設(shè)備或計算機程序可以包括以上描述的本發(fā)明的 實施例中的至少一個。
本發(fā)明的好處涉及對于被提供給執(zhí)行環(huán)境的程序代碼的改進的安全性 和安全應(yīng)用的軟件開發(fā)中改進的靈活性。
為提供對本發(fā)明的進一步理解而被包括并且構(gòu)成本說明書的一部分的 附圖示例性示出了本發(fā)明的實施例,并且與說明書一起有助于闡明本發(fā)明
的原理。在附圖中
圖1是示例性示出包括本發(fā)明的一個實施例中的安全執(zhí)行環(huán)境的電子 設(shè)備的框圖2是示例性示出包括本發(fā)明的一個實施例中的由程序代碼計算散列 的安全執(zhí)行環(huán)境的電子設(shè)備的框圖3是示例性示出本發(fā)明的一個實施例中的對遠(yuǎn)程設(shè)備的安全控制的 框圖4是示例性示出本發(fā)明的一個實施例中的用于安全程序執(zhí)行的方法 的流程圖;以及
圖5是示例性示出本發(fā)明的一個實施例中的電子設(shè)備的框圖。
具體實施例方式
現(xiàn)在將詳細(xì)參考本發(fā)明的實施例,其中,所述實施例的示例在附圖中 被示例性示出。
圖1是示例性示出包括本發(fā)明的一個實施例中的安全執(zhí)行環(huán)境的電子 設(shè)備的框圖。在圖1中存在電子設(shè)備100。電子設(shè)備100包括安全執(zhí)行環(huán) 境110和提供方實體112。在本發(fā)明的一個實施例中,提供方實體112與 電子設(shè)備100分離,并且在遠(yuǎn)程節(jié)點(未示出)中執(zhí)行。在提供方實體112 中存儲了至少一個程序記錄,例如程序記錄120、 130和140。程序記錄120 包括計算機程序代碼121、公鑰122 (PK)、程序名稱123 (N)、程序版本124 (V)和該程序的數(shù)字簽名125。程序記錄可以較長期地存儲在電子 設(shè)備100中,或者可以僅在該程序記錄即將在安全執(zhí)行環(huán)境中被執(zhí)行之前 的時刻被接收到網(wǎng)絡(luò)100。在提供方實體112中還存在輸入數(shù)據(jù)150和程 序記錄狀態(tài)170 (DAT)。提供方實體112可以為至少一個程序記錄存儲 程序狀態(tài)。
圖1中的起始點是提供方實體112提供程序記錄120以用于在安全執(zhí) 行環(huán)境110中的執(zhí)行。提供方實體112向程序代碼121附加公鑰122、該 程序的名稱和該程序的版本號124以產(chǎn)生已附加的程序代碼。因此,提供 方實體112使用對應(yīng)于公鑰122的第一私鑰對所述已附加的程序代碼進行 數(shù)字簽名,并且進一步將由此產(chǎn)生的簽名附加到所述已附加的程序代碼以 產(chǎn)生程序記錄120。已附加程序代碼的數(shù)字簽名例如包括對已附加程序代 碼的消息摘要的計算以及使用私鑰對所述消息摘要進行加密以得到簽名。 提供方實體向安全執(zhí)行環(huán)境110提供程序記錄120、程序代碼121的輸入 數(shù)據(jù)150和程序記錄狀態(tài)170以用于程序代碼121的執(zhí)行。提供方實體112 還或者作為程序記錄120的一部分或者作為單獨的數(shù)據(jù)向安全執(zhí)行環(huán)境 110提供z^鑰122、程序名稱123和版本號124。在本發(fā)明的一個實施例中, 提供方實體U2位于不同于電子設(shè)備100的網(wǎng)絡(luò)節(jié)點中。
在安全執(zhí)行環(huán)境110中,檢查功能塊101例如通過解密簽名125并將 已解密簽名與使用安全執(zhí)行環(huán)境110中的已附加程序代碼重復(fù)計算出的消 息摘要匹配,來驗證程序記錄120中的簽名125是否是實際上使用對應(yīng)于 公鑰122的私鑰產(chǎn)生的?;跈z查功能塊101的成功,安全執(zhí)行環(huán)境110 由公鑰122、程序名稱123和版本號124計算散列函數(shù)102。散列函數(shù)102 的結(jié)果被作為輸入與電子設(shè)備100的唯一設(shè)備秘密114 一起提供給單向功 能塊103。單向功能塊103產(chǎn)生特定于程序記錄的密鑰180。密鑰180可以 是對稱密鑰。密鑰180被用于在解密功能塊104中解密程序記錄狀態(tài)170 以產(chǎn)生已解密程序記錄狀態(tài)171?;诮饷芄δ軌K104的完成,執(zhí)行功能 塊105可以使用輸入數(shù)據(jù)150和已解密程序記錄狀態(tài)171來執(zhí)行程序代碼 121。已解密程序記錄狀態(tài)171包括在程序代碼121的不同執(zhí)行之間傳送的信息。在程序代碼121在執(zhí)行功能塊105中的執(zhí)行期間,來自程序代碼121 的輸出被收集作為輸出160,并且被更改的程序記錄狀態(tài)被認(rèn)為是已修改 的程序記錄狀態(tài)172。在執(zhí)行功能塊105完成之后,輸入150、程序代碼 121和輸出160在散列功能塊106中被散列以產(chǎn)生第二散列結(jié)果。該第二 散列結(jié)果在簽名功能塊108中被使用第二私鑰116加密以產(chǎn)生結(jié)果簽名 162 (RES)。私鑰116可以與可信任公鑰相關(guān)??梢酝ㄟ^任何方式來形成 信任關(guān)系,例如經(jīng)由來自第三方的證書或經(jīng)由設(shè)備的物理所有權(quán)。結(jié)果簽 名162提供這樣的證明即,輸出160是使用擁有第二私鑰116的安全執(zhí) 行環(huán)境中程序代碼121中的輸入150產(chǎn)生的??梢允褂藐P(guān)聯(lián)于第二私鑰116 的公鑰來驗證結(jié)果簽名。第二私鑰116可以關(guān)聯(lián)于安全環(huán)境110和電子設(shè) 備100或者安全環(huán)境110的所有者。已修改程序記錄狀態(tài)172被提供給加 密功能塊107,該加密功能塊107使用密鑰180來加密已修改程序記錄狀 態(tài)172以產(chǎn)生新的已加密程序記錄狀態(tài)173。新的已加密程序記錄狀態(tài)173 被提供給提供方實體112以便于直到程序記錄120被重復(fù)提供用于執(zhí)行之 前的存儲。
圖2是示例性示出電子設(shè)備的框圖,其包括本發(fā)明的一個實施例中的 從程序代碼計算散列的安全執(zhí)行環(huán)境。在圖2中存在電子設(shè)備200。電子 設(shè)備200包括安全執(zhí)行環(huán)境210和提供方實體212。在本發(fā)明的一個實施 例中,提供方實體212與電子設(shè)備200分離,并且在遠(yuǎn)程節(jié)點(未示出) 中執(zhí)行。在提供方實體212中存儲了至少一個程序記錄,例如程序記錄220、 230和240。程序記錄220至少包括計算機程序代碼221。在提供方實體212 中還存在輸入數(shù)據(jù)250和程序記錄狀態(tài)270。提供方實體212可以為至少 一個程序記錄存儲程序狀態(tài)。
圖2中的起始點是提供方實體212,其提供程序記錄220以用于在安 全執(zhí)行環(huán)境210中的執(zhí)行。提供方實體向安全執(zhí)行環(huán)境210提供程序記錄 220、程序代碼221的輸入數(shù)據(jù)250和程序記錄狀態(tài)270以用于程序代碼 221的執(zhí)行。在本發(fā)明的一個實施例中,提供方實體212位于不同于電子 設(shè)備200的網(wǎng)絡(luò)節(jié)點中。安全執(zhí)行環(huán)境210從程序代碼221的至少一部分計算散列函數(shù)201。 散列函數(shù)201的結(jié)果被作為輸入與電子設(shè)備200的唯一設(shè)備秘密214 —起 提供給單向功能塊202。單向功能塊202產(chǎn)生特定于程序記錄的密鑰280。 密鑰280可以是對稱密鑰。密鑰280被用于在解密功能塊203中解密程序 記錄狀態(tài)270以產(chǎn)生已解密程序記錄狀態(tài)271。基于解密功能塊203的完 成,執(zhí)行功能塊204可以使用輸入數(shù)據(jù)250和已解密程序記錄狀態(tài)271來 執(zhí)行程序代碼221。已解密程序記錄狀態(tài)271包括在程序代碼221的不同 執(zhí)行之間傳送的信息。在程序代碼221在執(zhí)行功能塊204中的執(zhí)行期間, 來自程序代碼221的輸出被收集作為輸出260,以及,皮更改的程序記錄狀 態(tài)被認(rèn)為是已修改程序記錄狀態(tài)272。在執(zhí)行功能塊204完成之后,輸入 250、程序代碼221和輸出260在散列功能塊205中,皮散列,以產(chǎn)生第二散 列結(jié)果。該第二散列結(jié)果在簽名功能塊207中被使用可與公鑰證書相關(guān)的 笫二私鑰216加密以產(chǎn)生結(jié)果簽名262。結(jié)果簽名262提供這樣的證明 即,輸出260 ;l^吏用擁有第二私鑰216的安全執(zhí)行環(huán)境中程序代碼221中 的輸入250產(chǎn)生的??梢允褂藐P(guān)聯(lián)于第二私鑰216的公鑰來!HiE結(jié)果簽名。 第二私鑰216可以關(guān)聯(lián)于安全執(zhí)行環(huán)境210和電子設(shè)備200或者安全執(zhí)行 環(huán)境210的所有者。已修改程序記錄狀態(tài)272 ^L提供給加密功能塊206, 該加密功能塊206使用密鑰280來加密已修改程序記錄狀態(tài)272以產(chǎn)生新 的已加密程序記錄狀態(tài)273。新的已加密程序記錄狀態(tài)273 ,皮提供給提供 方實體212以便于直到程序記錄220被重復(fù)提供用于執(zhí)行之前的存儲。
圖3是示例性示出本發(fā)明的一個實施例中的遠(yuǎn)程設(shè)備的安全控制的框 圖。在圖3中存在包括移動節(jié)點360、移動網(wǎng)絡(luò)370 (MN)和互聯(lián)網(wǎng)380 的通信系統(tǒng)350。移動節(jié)點360的內(nèi)部功能塊用框362示例性示出。移動 節(jié)點360包括通信實體363、安全執(zhí)行環(huán)境364和提供方實體365。圖3 中的起始點是移動節(jié)點360想要向遠(yuǎn)程客戶端382發(fā)出控制請求。遠(yuǎn)程客 戶端382例如控制對現(xiàn)實資源提供接入的i殳備。現(xiàn)實資源例如可以是住宅 或車輛。如用箭頭301所示,移動節(jié)點360向遠(yuǎn)程客戶端382發(fā)送初始消 息。該初始消息例如包括現(xiàn)時(nonce)即非重復(fù)的隨機字符串、關(guān)聯(lián)于移動節(jié)點360的公共用戶身份和用于該設(shè)備的指令?;诮邮盏皆摮跏枷ⅲ?如用箭頭302所示,遠(yuǎn)程客戶端382向移動節(jié)點360發(fā)送i人證請求。該認(rèn) 證請求包括質(zhì)疑,其中,所述質(zhì)疑進一步包括至少所述現(xiàn)時。所M疑被 移動節(jié)點360和提供方實體365接收。提供方實體365基于例如發(fā)送者和 消息302的類型選擇程序記錄。提供方實體365將所選擇的程序記錄和質(zhì) 疑提供給安全執(zhí)行環(huán)境364進行處理。如關(guān)聯(lián)于圖l所闡明的,來自安全 執(zhí)行環(huán)境364的結(jié)果包括輸入、輸出和結(jié)果簽名。如用箭頭303所示,所 述輸出和簽名被從移動節(jié)點360提供給遠(yuǎn)程客戶端382?;谑褂藐P(guān)聯(lián)于 第二私鑰的公鑰發(fā)汪該簽名,遠(yuǎn)程客戶端382根據(jù)在初始消息中獲得的指 令控制設(shè)備。
圖4是示例性示出用于本發(fā)明的一個實施例中的安全程序執(zhí)行的方法 的流程圖。
在步驟400,程序代碼被獲取到包括在電子設(shè)備中的提供方實體。所 述電子設(shè)備可以還包括安全執(zhí)行環(huán)境。所述程序代碼可以例如是機器代碼、 字節(jié)代碼、中間語言、虛擬機器代碼、源代碼、其任意組合或可以在安全 執(zhí)行環(huán)境中被處理的任意程序代碼。
在步驟402,所述程序代碼在提供方實體中被提供了第一公鑰、程序 名稱和版本號。程序的名稱、版本號和第一公鑰可以被添加到所述程序代 碼的頭部。程序名稱、版本號和第一>5^鑰還可以被附加到所述程序代碼, 或者被放置到不阻礙該程序代碼的執(zhí)行的程序代碼部分。在本發(fā)明的一個 實施例中,僅程序代碼被提供給執(zhí)行環(huán)境。
在步驟404,在提供方實體中用關(guān)聯(lián)于第一公鑰的第一私鑰對已提供 (furnished)程序代碼進行簽名。已提供程序代碼的數(shù)字簽名例如包括 已提供程序代碼的消息摘要的計算,以及使用私鑰對所述消息摘要進行加 密以產(chǎn)生簽名。所述簽名也被提供給程序代碼。產(chǎn)生的最終已提供程序代 碼被稱為程序記錄。
在步驟406,程序記錄與已加密程序記錄狀態(tài)和輸入數(shù)據(jù)一起被從提 供方實體提供給安全執(zhí)行環(huán)境。該提供可包括程序記錄向包括安全執(zhí)行環(huán)境的第二網(wǎng)絡(luò)節(jié)點的發(fā)送,如果提供方實體和安全執(zhí)行環(huán)境在不同節(jié)點中。 程序記錄和關(guān)聯(lián)的輸入數(shù)據(jù)和已加密程序記錄狀態(tài)可以被提供一個過程、 功能塊或方法調(diào)用或以若干部分來提供。輸入數(shù)據(jù)部分可以凈皮作為 一個或 幾個自變量提供給任意數(shù)量的過程、部分、功能、模塊、方法或等價計算 機程序代碼調(diào)用。
在步驟408,安全執(zhí)行環(huán)境檢查簽名是否可以,即,其使用關(guān)聯(lián)于第 一私鑰的公鑰來發(fā)汪簽名。如果簽名不4于,則方法在步驟422繼續(xù)。簽名 發(fā)汪不是強制的。
在步驟410,安全執(zhí)行環(huán)境從第一7>鑰、程序名稱和可選地版本號的 至少一部分計算散列值Hl。
在本發(fā)明的一個實施例中,僅從程序代碼來計算散列值Hl。
在步驟412,在安全執(zhí)行環(huán)境中使用散列值Hl和唯一設(shè)備秘密,以 便在單向函數(shù)中計算密鑰K(V)。密鑰K(V)是特定于所處理的程序記錄的 密鑰。密鑰K(V)可以是對稱密鑰或者公鑰和私鑰對。
在步驟414,在安全執(zhí)行環(huán)境中使用密鑰K(V),以便解密從提供方實 體獲取的程序記錄狀態(tài)。程序記錄狀態(tài)在安全執(zhí)行環(huán)境之外^f皮以已加密格 式維護以防止數(shù)據(jù)的篡改。
在步驟416,來自程序記錄的程序代碼被在安全執(zhí)行環(huán)境中執(zhí)行,從 而輸入數(shù)據(jù)和程序記錄狀態(tài)被提供為對所述執(zhí)行的輸入。程序記錄狀態(tài)包 括在程序代碼的后續(xù)執(zhí)行之間傳送的信息。程序代碼在安全執(zhí)行環(huán)境中的 執(zhí)行提供輸出數(shù)據(jù)。
在步驟418,在程序代碼的執(zhí)行期間被修改的程序記錄狀態(tài)被在安全 執(zhí)行環(huán)境中用密鑰K(V)加密。已加密程序記錄狀態(tài)被向回提供給提供方實 體進行存儲。
在步驟420,通過簽名散列H2來在安全執(zhí)行環(huán)境中計算結(jié)果簽名, 其中,通過用第二私鑰對輸入數(shù)據(jù)、輸出數(shù)據(jù)和程序代碼進行散列來獲得 散列H2。結(jié)果簽名與輸出數(shù)據(jù)一起被從安全執(zhí)行環(huán)境提供給提供方實體。
在步驟422,安全執(zhí)行環(huán)境向提供方實體發(fā)出錯誤。在本發(fā)明的一個實施例中,安全執(zhí)行環(huán)境負(fù)責(zé)程序記錄狀態(tài)的存儲。 在本發(fā)明的一個實施例中,沒有存儲程序記錄狀態(tài)。
圖5是示例性示出本發(fā)明的一個實施例中的電子設(shè)備的框圖。 在圖5中示出了電子設(shè)備500。電子設(shè)備500包括處理器510、輔存儲 器520、主存儲器530、顯示器550和用戶接口 560。用戶接口可以是例如 鍵區(qū)(keypad)、鍵盤或控制桿或控制臺。電子設(shè)備500還可以包括任意
數(shù)量的其它處理器和任意數(shù)量的輔存儲器單元。還可以存在具有單獨地址 空間的其它主存儲器。電子設(shè)備500還包括網(wǎng)絡(luò)接口 540。處理器510執(zhí) 行至少部分地存儲在主存儲器530中的多個軟件實體。主存儲器530包括 通信實體532、提供方實體534和安全執(zhí)行環(huán)境536。實體534和536可以 在功能上類似于圖1中的實體110和112以及圖2中的實體210和212。 在本發(fā)明的一個實施例中,控制實體535、 536和537的一部分被包括在電 子設(shè)備500的操作系統(tǒng)中。
在圖5中,電子i殳備500中的實體可以用多種方式來實現(xiàn)。其可以作 為在電子設(shè)備的自帶操作系統(tǒng)下被執(zhí)行的進程來實現(xiàn)。所述實體可以作為 單獨的進程或線程來實現(xiàn),或使得許多不同實體借助于一個進程或線程來 實現(xiàn)。進程或線程可以是包括許多例程的程序塊的實例,其中,所述例程 即例如過程和函數(shù)。所述實體可以作為單獨的計算機程序或作為包括實現(xiàn) 所述實體的幾個例程或函數(shù)的單一計算機程序來實現(xiàn)。所述程序塊被存儲 在至少一個計算機可讀介質(zhì)中,例如存儲器電路、存儲卡、全息存儲器、 磁或光盤。 一些實體可以作為鏈接到另一實體的程序模塊來實現(xiàn)。圖5中 的實體還可以被存儲在單獨的存儲器中,并且被單獨的處理器執(zhí)行,其中, 所述單獨的處理器例如經(jīng)由電子設(shè)備中的消息總線或內(nèi)部網(wǎng)絡(luò)通信。這種 消息總線的示例是外圍部件互連(PCI)總線。所述內(nèi)部網(wǎng)絡(luò)可以是例如 局域網(wǎng)。所述實體還可以部分上或整體上實現(xiàn)為石更件,例如ASIC或FPGA。
對于本領(lǐng)域的技術(shù)人員顯而易見,隨著技術(shù)的進步,本發(fā)明的基4^t 念可以用各種方法來實現(xiàn)。本發(fā)明及其實施例由此不限于以上描述的示例; 相反,其可以在權(quán)利要求的范圍內(nèi)改變。
權(quán)利要求
1.一種方法,包括將程序信息獲取到包含在電子設(shè)備中的執(zhí)行環(huán)境,所述程序信息至少包括程序代碼;計算特定于所述電子設(shè)備的秘密值和所述程序信息的至少一部分的機密性密鑰;以及用所述機密性密鑰作為密鑰對第一數(shù)據(jù)部分應(yīng)用密碼操作,所述第一數(shù)據(jù)部分包括到所述程序代碼的第一輸入數(shù)據(jù)部分或來自所述程序代碼的第一輸出數(shù)據(jù)部分,所述密碼操作包括解密和加密中的至少一個。
2. 根據(jù)權(quán)利要求1所述的方法,所述方法進一步包括 在所述執(zhí)行環(huán)境中用第二輸入數(shù)據(jù)部分和所述第 一輸入數(shù)據(jù)部分執(zhí)行所述程序代碼以產(chǎn)生第二輸出數(shù)據(jù)部分;計算所述第二輸入數(shù)據(jù)部分、所述第二輸出數(shù)據(jù)部分和所述程序信息 的第二散列;以及用第二私鑰加密所述第二散列以產(chǎn)生結(jié)果簽名,所述第二私鑰關(guān)聯(lián)于所述執(zhí)行環(huán)境。
3. 根據(jù)權(quán)利要求1或2所述的方法,所述方法進一步包括 將所述程序信息獲取到網(wǎng)絡(luò)節(jié)點;在所述網(wǎng)絡(luò)節(jié)點中產(chǎn)生第二輸入數(shù)據(jù)部分; 將所述程序信息和所述第二輸入數(shù)據(jù)部分提供給所述電子設(shè)備; 將來自所述電子設(shè)備的第二輸出數(shù)據(jù)部分獲取到所述網(wǎng)絡(luò)節(jié)點;以及 在所述網(wǎng)絡(luò)節(jié)點中驗證所述結(jié)果簽名,以確定包括在所述程序信息中 的程序代碼已在所述電子設(shè)備中被執(zhí)行。
4. 根據(jù)權(quán)利要求3所述的方法,所述方法進一步包括 所述網(wǎng)絡(luò)節(jié)點從所述第二輸出數(shù)據(jù)部分提取控制信息; 所述網(wǎng)絡(luò)節(jié)點用所述控制信息控制設(shè)備。
5. 根據(jù)前述權(quán)利要求1-4中任一個所述的方法,所述方法進一步包括在所述程序信息中提供對于所述執(zhí)行環(huán)境的程序代碼、第一公鑰、程序名稱、版本號和簽名;用關(guān)聯(lián)于第 一私鑰的所述第一^^檢查所述簽名;至少由所述第一公鑰、所述程序名稱和所述版本號計算第一散列;將所述第一輸入信息部分提供給所述執(zhí)行環(huán)境以用于所述程序代碼的執(zhí)行;使用單向函數(shù)從所述第一散列和特定于所述電子設(shè)備的所述秘密值計 算機密性密鑰;用所述^L密性密鑰解密所述第一輸入信息部分; 在所述執(zhí)行環(huán)境中修改所述第一信息部分;以及 使用所述機密性密鑰加密所述第 一輸出信息部分。
6. 根據(jù)權(quán)利要求5所述的方法,所述方法進一步包括 獲取所述程序代碼;為所述程序代碼提供所述第二公鑰、所述程序名稱和所述版本號以產(chǎn) 生第二數(shù)據(jù)對象;以及用所述第一公鑰簽名所述第二數(shù)據(jù)對象以獲得所述簽名。
7. 根據(jù)權(quán)利要求5所述的方法,其中,所述第一輸入數(shù)據(jù)部分包括關(guān) 聯(lián)于所述程序代碼的狀態(tài)信息。
8. 根據(jù)前述權(quán)利要求1-7中任一個所述的方法,其中,所述機密性 密鑰是對稱密鑰。
9. 根據(jù)前述權(quán)利要求1-8中任一個所述的方法,其中,所述執(zhí)行環(huán) 境是移動節(jié)點中的安全環(huán)境。
10. —種電子設(shè)備,包括執(zhí)行環(huán)境,其被配置為獲取程序信息,所述程序信息至少包括程序 代碼;計算特定于所述電子設(shè)備的秘密值和所述程序信息的至少一部分的機密性密鑰;以及,用所述機密性密鑰作為密鑰對第一數(shù)據(jù)部分應(yīng)用密碼 操作,所述密碼操作包括到所述程序代碼的第一輸入數(shù)據(jù)部分或來自所述程序代碼的第一輸出數(shù)據(jù)部分,所述密碼操作包括解密和加密中的至少一 個。
11. 根據(jù)權(quán)利要求10所述的電子設(shè)備,所述電子設(shè)備進一步包括 所述執(zhí)行環(huán)境被配置為在所述執(zhí)行環(huán)境中用第二輸入數(shù)據(jù)部分和所述第 一輸入數(shù)據(jù)部分執(zhí)行所述程序代碼以產(chǎn)生第二輸出數(shù)據(jù)部分;計算所 述第二輸入數(shù)據(jù)部分、所述第二輸出數(shù)據(jù)部分和所述程序信息的第二散列; 以及,用第二私鑰加密所述第二散列以產(chǎn)生結(jié)果簽名,所述第二私鑰關(guān)聯(lián) 于所述執(zhí)行環(huán)境。
12. 根據(jù)權(quán)利要求l(T或11所述的電子設(shè)備,所述電子設(shè)備進一步包括提供方實體,其被配置為,在所述程序信息中提供對于所述執(zhí)行環(huán)境 的程序代碼、第一公鑰、程序名稱、版本號和簽名;將所述第一輸入信息 部分提供給所述執(zhí)行環(huán)境以用于所述程序代碼的執(zhí)行;所述執(zhí)行環(huán)境被配置為用關(guān)聯(lián)于第一私鑰的第一7>鑰檢查所述簽名; 至少由所述第一公鑰、所述程序名稱和所述版本號計算第一散列;使用單 向函數(shù)從所述第一散列和特定于所述電子設(shè)備的所述秘密值計算機密性密 鑰;使用所述機密性密鑰解密所述第一輸入信息部分;在所述執(zhí)行環(huán)境中 修改所述第一信息部分;以及,使用所述機密性密鑰加密所述第一輸出信 息部分。
13. 根據(jù)權(quán)利要求12所述的電子設(shè)備,所述電子設(shè)備進一步包括 所述提供方實體,其^皮配置為獲取所述程序代碼;為所述程序代碼提供所述第二公鑰、所述程序名稱和所述版本號以產(chǎn)生第二數(shù)據(jù)對象;以 及,用所述第 一公鑰簽名所述第二數(shù)據(jù)對象以獲得所述第 一數(shù)據(jù)對象。
14. 根據(jù)前述權(quán)利要求10-13中任一個所述的電子設(shè)備,其中,所述 第 一輸入數(shù)據(jù)部分包括關(guān)聯(lián)于所述程序代碼的狀態(tài)信息。
15. 才艮據(jù)前述權(quán)利要求10-14中任一個所述的電子設(shè)備,其中,所述 機密性密鑰是對稱密鑰。
16. 根據(jù)前述權(quán)利要求10-15中任一個所述的電子設(shè)備,其中,所述執(zhí)行環(huán)境是移動節(jié)點中的安全環(huán)境。
17. —種電子設(shè)備,包括用于獲^^呈序信息的裝置,所述程序信息至少包括程序代碼;用于計算特定于所述電子i更備的秘密值和所述程序信息的至少一部分的機密性密鑰的裝置;用于以所述機密性密鑰作為密鑰對第一數(shù)據(jù)部分應(yīng)用密碼操作的裝 置,所述第一數(shù)據(jù)部分包括到所述程序代碼的第一輸入數(shù)據(jù)部分或來自所 述程序代碼的第 一輸出數(shù)據(jù)部分,所述密碼操作包括解密和加密中的至少一個。
18. —種包含在計算機可讀介質(zhì)中的計算機程序,所述計算機程序包 括用于控制處理器執(zhí)行包括以下的方法的代碼獲取程序信息,所述程序信息至少包括程序代碼; 計算特定于所述電子設(shè)備的秘密值和所述程序信息的至少一部分的機 密性密鑰;以所述機密性密鑰作為密鑰對第一數(shù)據(jù)部分應(yīng)用密碼操作,所述第一 數(shù)據(jù)部分包括到所述程序代碼的第一輸入數(shù)據(jù)部分或來自所述程序代碼的 第一輸出數(shù)據(jù)部分,所述密碼操作包括解密和加密中的至少一個。
19. 根據(jù)權(quán)利要求18所述的計算機程序,其中,所述計算機可讀介質(zhì) 是可移除存儲卡。
20. 根據(jù)權(quán)利要求18所述的計算機程序,其中,所述計算機可讀介質(zhì) 是磁或光盤或全息存儲器。
全文摘要
本發(fā)明涉及一種方法,在所述方法中,程序信息被獲取到電子設(shè)備(100)中的執(zhí)行環(huán)境(110)。所述程序信息至少包括程序代碼(121)。所述程序信息和特定于設(shè)備的秘密值(114)的密鑰被計算。所述密鑰被用于在所述執(zhí)行環(huán)境(110)中解密特定于程序的狀態(tài)數(shù)據(jù)(170),以及在所述執(zhí)行后加密已修改狀態(tài)數(shù)據(jù)。
文檔編號G06F21/00GK101627390SQ200780051188
公開日2010年1月13日 申請日期2007年12月4日 優(yōu)先權(quán)日2006年12月14日
發(fā)明者J-E·??素惱? L·帕特洛 申請人:諾基亞公司