專利名稱:用于提供應(yīng)用安全性的方法、裝置和計(jì)算機(jī)程序的制作方法
技術(shù)領(lǐng)域:
本說明書大體上涉及計(jì)算機(jī)安全,并且更具體地涉及在移動軟件平臺中用于應(yīng)用安全性的系統(tǒng)、裝置、計(jì)算機(jī)程序和方法。
背景技術(shù):
在無線電話技術(shù)的早期,多數(shù)移動設(shè)備(諸如蜂窩電話)為嵌入式設(shè)備(例如專用設(shè)備,這些專用設(shè)備具有用于執(zhí)行少數(shù)專用功能的固定一組程序)。近年來,移動設(shè)備(例如“智能手機(jī)”)已經(jīng)演變成如下通用計(jì)算設(shè)備,這些計(jì)算設(shè)備可以接受對現(xiàn)有功能的改變并且添加新功能。這可以通過更新現(xiàn)有程序和/或向設(shè)備添加新程序來實(shí)現(xiàn)。情況經(jīng)常是移動設(shè)備的新程序或者經(jīng)修改的程序的僅有合法來源是設(shè)備制造商,和/或在創(chuàng)建服務(wù)并且向設(shè)備提供服務(wù)時(shí)涉及到的服務(wù)承運(yùn)商。盡管這允許制造商和服務(wù)提供商維持對如何使用設(shè)備的密切控制,但是消費(fèi)者一直要求他們的移動設(shè)備執(zhí)行更多樣化的功能。這些功能中的一些功能高度地專業(yè)化或者定向于小集團(tuán)用戶。這樣,即使這種特征與現(xiàn)有設(shè)備和服務(wù)網(wǎng)絡(luò)兼容,對于制造商和服務(wù)提供商他們自己而言,生產(chǎn)提供這種特征的軟件仍然可能無利可圖。近來,移動軟件平臺已經(jīng)變得更開放地允許安裝和運(yùn)行第三方開發(fā)的應(yīng)用軟件。例如存在移動操作系統(tǒng)(諸如Symbian 、iPhoneTM0S和Android )的大型和活躍應(yīng)用開發(fā)商團(tuán)體。這些第三方開發(fā)商團(tuán)體可以包括受信任和不受信任的軟件銷售商。受信任的開發(fā)商可以包括參與證書程序,或者具有強(qiáng)烈動機(jī)(例如法律責(zé)任)確保它們提供的軟件安全和可靠的企業(yè)和其它實(shí)體。雖然開發(fā)商可以分類為未受信任,但是這未必意味著開發(fā)商的軟件不安全或者不可靠,而只是這種軟件的安全未知。盡管未受信任的軟件的使用和可用性可能讓那些對他們而言安全性是最主要的關(guān)注的實(shí)體(例如政府、企業(yè))感到麻煩,但是允許任何人編寫和發(fā)布軟件一般視為凈效益。最具有想象力的新產(chǎn)品往往來自個(gè)人或者小團(tuán)體獨(dú)立開發(fā)商。同樣,軟件是對于小團(tuán)體或者個(gè)人而言有可能生產(chǎn)正如公司生產(chǎn)的軟件一樣可靠和易于使用(有時(shí)甚至更可靠和易于使用)的產(chǎn)品的領(lǐng)域。因此,使小型開發(fā)商對移動計(jì)算平臺做貢獻(xiàn)可以幫助平臺保持生機(jī)并且讓利益相關(guān)者有利可圖。對于制造商和軟件/服務(wù)提供商而言,必須應(yīng)對由于不受信任的軟件所致的與安全有關(guān)的威脅。即使制造商和提供商并非可能造成威脅的并受信任的軟件的來源,但是如果它們的平臺視為容易為惡意軟件所利用,則它們的聲譽(yù)可能蒙羞。即使軟件并非有意具有惡意,但是在它們的平臺上運(yùn)行的不可靠或者受破壞的軟件導(dǎo)致設(shè)備和/或系統(tǒng)故障,并且這可能有害地反映在提供商和制造商上。
發(fā)明內(nèi)容
本說明書公開了用于提供應(yīng)用安全性的系統(tǒng)、裝置、計(jì)算機(jī)程序、數(shù)據(jù)結(jié)構(gòu)和方法。在一個(gè)實(shí)施例中,一種裝置,包括具有受保護(hù)的存儲器部分的隨機(jī)訪問存儲器。該裝置包括耦合到隨機(jī)訪問存儲器的處理器。處理器配置有可執(zhí)行指令,這些指令使該裝置響應(yīng)于裝置的初始化來為多個(gè)應(yīng)用可執(zhí)行文件中的每個(gè)應(yīng)用可執(zhí)行文件計(jì)算驗(yàn)證值,并且在受保護(hù)的存儲器部分中存儲該驗(yàn)證值。處理器確定對在裝置上啟動應(yīng)用的嘗試,并且計(jì)算用于與應(yīng)用關(guān)聯(lián)的可執(zhí)行文件的當(dāng)前驗(yàn)證值。處理器比較當(dāng)前驗(yàn)證值與存儲的驗(yàn)證值中的對應(yīng)存儲的驗(yàn)證值,并且基于比較的結(jié)果調(diào)控應(yīng)用的啟動。在更多具體實(shí)施例中,可執(zhí)行指令還可以使裝置響應(yīng)于與應(yīng)用的啟動無關(guān)的運(yùn)行時(shí)間事件,為與應(yīng)用關(guān)聯(lián)的可執(zhí)行文件重新計(jì)算驗(yàn)證值,并且比較所計(jì)算的值與存儲的驗(yàn)證值以保證應(yīng)用尚未被篡改。在值不匹配的情況下,將應(yīng)用視為不受信任,并且不批準(zhǔn)對它的進(jìn)一步訪問,并且可以終止對它的任何未決訪問操作(例如讀取和執(zhí)行)。運(yùn)行時(shí)間事件可以包括對可執(zhí)行文件的分頁與從先前計(jì)算對應(yīng)存儲的驗(yàn)證值起的時(shí)間流逝的任何組合。在安裝新應(yīng)用的情況下,為應(yīng)用計(jì)算新驗(yàn)證值,并且將其存儲到受保護(hù)的存儲器部分。在重新安裝任何現(xiàn)有應(yīng)用的情況下,用重新計(jì)算的值替換受保護(hù)的存儲器部分中的
應(yīng)用的對應(yīng)存儲的驗(yàn)證值。可以根據(jù)所用過的驗(yàn)證算法計(jì)算驗(yàn)證值,或者可以僅恰在成功驗(yàn)證應(yīng)用之后單獨(dú)生成所安裝的應(yīng)用的所存儲驗(yàn)證值。在其它更多具體實(shí)施例中,可執(zhí)行指令還可以使裝置基于預(yù)計(jì)使用來為多個(gè)應(yīng)用文件中的每個(gè)應(yīng)用文件建立優(yōu)先級,并且其中計(jì)算驗(yàn)證值并且在受保護(hù)的存儲器部分中存儲驗(yàn)證值由相應(yīng)優(yōu)先級支配。在其它更多具體實(shí)施例中,計(jì)算驗(yàn)證值并且在受保護(hù)的存儲器部分中存儲驗(yàn)證值可以與確定對啟動應(yīng)用程序的嘗試并行發(fā)生。在這種情況下,可執(zhí)行指令還可以使裝置a)在比較當(dāng)前驗(yàn)證值與對應(yīng)存儲的驗(yàn)證值時(shí)確定對應(yīng)存儲的驗(yàn)證值不可用;以及b)使對應(yīng)驗(yàn)證值的計(jì)算和存儲按照更高優(yōu)先級發(fā)生,以有助于比較當(dāng)前驗(yàn)證值與所存儲的驗(yàn)證值中的對應(yīng)存儲的驗(yàn)證值。在本發(fā)明的另一實(shí)施例中,一種方法涉及響應(yīng)于裝置的初始化,為多個(gè)應(yīng)用可執(zhí)行文件中的每個(gè)應(yīng)用可執(zhí)行文件計(jì)算驗(yàn)證值,并且在裝置的隨機(jī)訪問存儲器的受保護(hù)的存儲器部分中存儲驗(yàn)證值。確定對在裝置上啟動應(yīng)用的嘗試,并且計(jì)算與應(yīng)用關(guān)聯(lián)的可執(zhí)行文件的當(dāng)前驗(yàn)證值。比較當(dāng)前驗(yàn)證值與所存儲的驗(yàn)證值中的對應(yīng)存儲的驗(yàn)證值,并且基于比較的結(jié)果調(diào)控應(yīng)用的啟動。在更具體實(shí)施例中,該方法還可以涉及響應(yīng)于應(yīng)用的軟件初始化事件,為與應(yīng)用關(guān)聯(lián)的可執(zhí)行文件計(jì)算更新的驗(yàn)證值。在這種情況下,在受保護(hù)的存儲器部分中用更新的驗(yàn)證值替換對應(yīng)存儲的驗(yàn)證值。在這種情況下的軟件初始化事件可以包括重新安裝應(yīng)用與在裝置的自檢初始化運(yùn)行時(shí)間期間驗(yàn)證應(yīng)用的任何組合。在本發(fā)明的另一實(shí)施例中,一種計(jì)算機(jī)可讀存儲介質(zhì)用如下指令來編碼,這些指令在由裝置運(yùn)行時(shí)執(zhí)行a)響應(yīng)于裝置的初始化,為多個(gè)應(yīng)用可執(zhí)行文件中的每個(gè)應(yīng)用可執(zhí)行文件計(jì)算驗(yàn)證值,并且在隨機(jī)訪問存儲器的受保護(hù)的存儲器部分中存儲驗(yàn)證值山)確定對在裝置上啟動應(yīng)用的嘗試;c)為與應(yīng)用關(guān)聯(lián)的可執(zhí)行文件計(jì)算當(dāng)前驗(yàn)證值;d)比較當(dāng)前驗(yàn)證值與所存儲的驗(yàn)證值中的對應(yīng)存儲的驗(yàn)證值;并且d)基于比較的結(jié)果調(diào)控應(yīng)用的啟動。在本發(fā)明的另一實(shí)施例中,一種方法涉及響應(yīng)于裝置上的應(yīng)用的修改事件,為與應(yīng)用關(guān)聯(lián)的一個(gè)或者多個(gè)可執(zhí)行文件計(jì)算驗(yàn)證值。在裝置的隨機(jī)訪問存儲器的受保護(hù)的存儲器部分中存儲驗(yàn)證值。確定對在裝置上啟動應(yīng)用的嘗試,并且為與應(yīng)用關(guān)聯(lián)的可執(zhí)行文件確定當(dāng)前驗(yàn)證值。比較當(dāng)前驗(yàn)證值與存儲的驗(yàn)證值中的對應(yīng)存儲的驗(yàn)證值,并且基于比較的結(jié)果調(diào)控應(yīng)用的啟動。修改事件可以包括初始安裝應(yīng)用、重新安裝應(yīng)用和在裝置的運(yùn)行時(shí)間期間的驗(yàn)證應(yīng)用的任何組合。這些和各種其它優(yōu)點(diǎn)和特征在所附權(quán)利要求中被具體指出并且形成其一部分。然而為了更好地理解變化和優(yōu)點(diǎn),應(yīng)當(dāng)參考形成其又一部分的附圖以及附帶描述內(nèi)容,其中圖示并描述了根據(jù)本發(fā)明示例實(shí)施例的系統(tǒng)、裝置、計(jì)算機(jī)程序產(chǎn)品和方法的有代表性的示例。
結(jié)合隨后附圖中圖示的示例實(shí)施例描述本發(fā)明圖I是根據(jù)一個(gè)示例實(shí)施例的移動安全框架的框圖;圖2是根據(jù)本發(fā)明一個(gè)示例實(shí)施例的移動安全框架細(xì)節(jié)的框圖;圖3是根據(jù)本發(fā)明一個(gè)示例實(shí)施例的移動裝置的框圖;并且圖4A、圖4B和圖5是圖示了根據(jù)本發(fā)明示例實(shí)施例的過程的流程圖。
具體實(shí)施例方式在對各種示例實(shí)施例的下文描述中參照如下附圖,這些附圖形成其一部分,并且在附圖中通過圖示示出各種示例實(shí)施例。將理解可以利用其它實(shí)施例,因?yàn)榭梢宰龀鼋Y(jié)構(gòu)和操作上的改變而未脫離本發(fā)明的范圍。一般而言,本公開內(nèi)容涉及對移動計(jì)算框架的改進(jìn)以保證應(yīng)用軟件在原始安裝驗(yàn)證過程之后未被篡改。這種驗(yàn)證可以保證應(yīng)用軟件尚未被改變或者破壞、因而可以安全運(yùn)行。軟件破壞可能諸如由于用戶和/或系統(tǒng)交互所引起的數(shù)據(jù)破壞而意外出現(xiàn)。這種破壞也可能諸如由于惡意軟件在設(shè)備上運(yùn)行或者由于用戶的動作(例如無視在用戶工作設(shè)備上的公司安全預(yù)防措施)而有意出現(xiàn)。在下文描述中,術(shù)語“驗(yàn)證數(shù)據(jù)”可以用來表明任何單個(gè)如下值(例如固定比特大小的字),該值用來標(biāo)識數(shù)據(jù)塊(例如文件)的狀態(tài)。校驗(yàn)和或者密碼哈??梢杂米黩?yàn)證數(shù)據(jù)。一般而言,應(yīng)當(dāng)選擇如下用于生成驗(yàn)證數(shù)據(jù)的算法,其使得對數(shù)據(jù)塊的任何改變將生成與用于未修改的數(shù)據(jù)塊的值相同的驗(yàn)證值的可能性在統(tǒng)計(jì)上微乎其微。這種改變可以包括向/從數(shù)據(jù)塊添加/刪除數(shù)據(jù),或者改變數(shù)據(jù)的任何部分而塊的大小無凈改變。軟件平臺可以通過使用驗(yàn)證數(shù)據(jù)(諸如校驗(yàn)和和/或密碼哈希)驗(yàn)證待啟動的軟件來保護(hù)可執(zhí)行文件和其它數(shù)據(jù)免遭篡改。例如在軟件已經(jīng)成功安裝于系統(tǒng)中之后,可以針對所有關(guān)鍵文件(諸如可執(zhí)行文件和配置數(shù)據(jù))計(jì)算哈希。這一哈??梢园ㄊ褂帽绢I(lǐng)域中已知的任何哈希型函數(shù)來導(dǎo)出的校驗(yàn)和或者相似變量。向持久儲存器(例如硬驅(qū)動、閃存)中的特殊文件系統(tǒng)位置存儲這一變量。隨后在啟動軟件時(shí),系統(tǒng)重新計(jì)算哈希并且將其與先前存儲的值進(jìn)行比較。如果比較成功,則啟動可以繼續(xù),因?yàn)橛糜趹?yīng)用的關(guān)鍵數(shù)據(jù)尚未被篡改。如果上述平臺的持久文件系統(tǒng)不能提供足夠保護(hù)以防止惡意改寫持久存儲的校驗(yàn)和數(shù)據(jù),則該平臺可能易被損害。例如不友好用戶/軟件可以利用對存儲于盤驅(qū)動或者閃存上的這一數(shù)據(jù)的了解以修改關(guān)鍵文件、對修改后的文件重新計(jì)算哈希值,并且用重新計(jì)算的值替換所存儲的值。這可能會讓系統(tǒng)啟動篡改過或者未驗(yàn)證的軟件以在移動設(shè)備中運(yùn)行。在圖I中看到一種用于克服上述缺陷的方式,該示了根據(jù)本發(fā)明實(shí)施例的安全平臺100的方面。安全平臺100可以在啟動應(yīng)用文件之前驗(yàn)證它們的完整性。安全平臺100將隨機(jī)訪問存儲器(RAM)用于存儲與應(yīng)用關(guān)聯(lián)的校驗(yàn)和數(shù)據(jù)。平臺100使用如塊104所指示的存儲器訪問保護(hù)。存儲器訪問保護(hù)104可以由硬件與軟件特征的任何組合提供。在存儲器訪問保護(hù)104的一個(gè)示例中,可以通過在中央處理單元(CPU)架構(gòu)中限定的分級保護(hù)域來限制某些硬件和存儲器訪問。在這種情況下,處理器可以包括如下“系統(tǒng)”執(zhí)行模式,該模式使得能夠執(zhí)行包括特權(quán)指令的所有指令。在系統(tǒng)模式中,可以向進(jìn)程給予對除了在更少的保護(hù)模式(“用戶”模式)中提供的地址空間之外的不同的地址空間的訪問,以及對存儲器管理硬件和其它外設(shè)的訪問。例如操作系統(tǒng)內(nèi)核通常在系統(tǒng)模式中有權(quán)訪問存儲器,而用戶程序(例如字處理器)不能直接訪問這一存儲器。用戶模式可以
用來“沙盒”實(shí)現(xiàn)在普通使用時(shí)出故障的可能性更高的所有軟件(例如應(yīng)用軟件)。通過安全控制的系統(tǒng)調(diào)用來執(zhí)行用戶模式的所有對系統(tǒng)模式的資源的訪問嘗試。如果用戶模式的進(jìn)程嘗試無效或者不可訪問的系統(tǒng)調(diào)用,則可以正常終止用戶模式的進(jìn)程而不影響系統(tǒng)的其余部分。架構(gòu)100包括在上電、復(fù)位或者與架構(gòu)100的硬件關(guān)聯(lián)的其它初始化條件時(shí)預(yù)備驗(yàn)證數(shù)據(jù)的引導(dǎo)時(shí)間模塊106。一般而言,引導(dǎo)時(shí)間模塊106可以通讀持久儲存器108,并且計(jì)算與多個(gè)應(yīng)用110關(guān)聯(lián)的關(guān)鍵文件的驗(yàn)證值(例如校驗(yàn)和、哈希)。這些驗(yàn)證值在受保護(hù)的RAM 102中顯示為引導(dǎo)時(shí)間模塊106存儲的值112 (HI-Hn)。值112的位置可以在系統(tǒng)繼續(xù)運(yùn)行之時(shí)由引導(dǎo)時(shí)間模塊106保持和維護(hù),或者可以傳遞給其它模塊(諸如運(yùn)行時(shí)間模塊114)以供使用。在引導(dǎo)時(shí)間模塊106已經(jīng)驗(yàn)證應(yīng)用110并且存儲值112之后,運(yùn)行時(shí)間模塊114可以在接收執(zhí)行應(yīng)用Iio的請求時(shí)對應(yīng)用110的關(guān)鍵文件重新計(jì)算相同值。運(yùn)行時(shí)間模塊114還可以諸如通過與引導(dǎo)時(shí)間模塊106通信和/或集成來訪問RAM 112中的對應(yīng)值112。如果重新計(jì)算的值匹配于RAM 102中的對應(yīng)值112,則運(yùn)行時(shí)間模塊114允許運(yùn)行應(yīng)用110。否則,運(yùn)行時(shí)間模塊114可以拒絕運(yùn)行應(yīng)用110,并且采取其它適當(dāng)動作(例如記錄系統(tǒng)錯(cuò)誤、警告用戶)。如果當(dāng)前重新計(jì)算的值不對應(yīng)于所存儲的值,則運(yùn)行時(shí)間模塊114可以用其它方式調(diào)控應(yīng)用110的執(zhí)行、諸如降低用于進(jìn)程的訪問權(quán)限、在虛擬“沙盒”中運(yùn)行等。將理解引導(dǎo)時(shí)間和運(yùn)行時(shí)間模塊106、114中的任一模塊可以針對在運(yùn)行時(shí)間新安裝的應(yīng)用110執(zhí)行相似的驗(yàn)證過程。例如,如果下載并且安裝應(yīng)用,則模塊106、114中的一個(gè)或者這兩者可以協(xié)同計(jì)算用于新安裝的應(yīng)用的驗(yàn)證數(shù)據(jù)112,并且將其添加到受保護(hù)的RAM102。此后,如果運(yùn)行新添加的應(yīng)用而未重新引導(dǎo)或者復(fù)位系統(tǒng),則運(yùn)行時(shí)間模塊114可以用通常方式驗(yàn)證新應(yīng)用。所圖示的軟件平臺100不依賴于哈希/校驗(yàn)和數(shù)據(jù)在持久文件系統(tǒng)(例如存儲設(shè)備108)上的存儲。相反,僅在運(yùn)行時(shí)間模塊106的成功安裝/驗(yàn)證過程之后,向RAM 102存儲數(shù)據(jù)。由于平臺100提供存儲器保護(hù)104,所以不友好或者出故障的軟件不能訪問RAM102并且修改所存儲的值112。在啟動應(yīng)用軟件之前由運(yùn)行時(shí)間模塊114完成的哈希/校驗(yàn)和校驗(yàn)保證軟件有效并且在執(zhí)行之前尚未被破壞或者篡改。由于未向永久和/或持久存儲器存儲驗(yàn)證數(shù)據(jù)112,所以在設(shè)備引導(dǎo)之后,可能需要例如通過運(yùn)行與原先用來安裝軟件應(yīng)用110的驗(yàn)證相同或者相似的驗(yàn)證過程來再次計(jì)算驗(yàn)證數(shù)據(jù)112。根據(jù)處理器速度、應(yīng)用數(shù)目等,引導(dǎo)時(shí)間驗(yàn)證可能占用相當(dāng)?shù)臅r(shí)間量。這在移動設(shè)備中有所緩和,因?yàn)樗鼈兘?jīng)常為常通(在供電或者待機(jī)模式中),并且可能數(shù)周或者數(shù)月未被重新引導(dǎo)一次。另外,各種方案可以用來減少應(yīng)用驗(yàn)證對引導(dǎo)時(shí)間的影響。在一些實(shí)施例中,在已經(jīng)驗(yàn)證關(guān)鍵系統(tǒng)文件之后,可以后臺操縱引導(dǎo)時(shí)間驗(yàn)證。一般而言,有可能追蹤設(shè)備上的使用最多的軟件,并且保證向這一軟件給予最高優(yōu)先級。這允許用戶在對更少使用的應(yīng)用執(zhí)行驗(yàn)證的同時(shí)使用移動設(shè)備的一些特征。同樣,可以向“常通”的軟件給予最高優(yōu)先級(諸如偵聽網(wǎng)絡(luò)事件和在接收到新事件的情況下向用戶的提示/顯示數(shù)據(jù)的軟件)。如果用戶(或者系統(tǒng))在針對應(yīng)用軟件的驗(yàn)證已經(jīng)開始之前請求使用該應(yīng)用軟件,則系統(tǒng)可以包括提供使驗(yàn)證過程優(yōu)先以最小化所請求的應(yīng)用的啟動時(shí)間。這
可以涉及停止任何當(dāng)前驗(yàn)證動作,并且將所請求的軟件移動到隊(duì)列的頂部以供引導(dǎo)時(shí)間模塊106即時(shí)驗(yàn)證。這還可以涉及向操縱驗(yàn)證的任何線程或者進(jìn)程給予更高CPU優(yōu)先級(例如如在可搶先的(pre-emptive)多任務(wù)操作系統(tǒng)中可能的那樣)?,F(xiàn)在參照圖2,框示了根據(jù)本發(fā)明一個(gè)示例實(shí)施例的安全架構(gòu)部件的更具體視圖。圖2中的部件可以包括與圖I的相似或者類似部件相同的標(biāo)號。例如引導(dǎo)時(shí)間模塊106被配置成訪問在受保護(hù)的存儲器空間104中的RAM 102,并且可以訪問在持久數(shù)據(jù)儲存器108中的應(yīng)用數(shù)據(jù)(例如文件)。引導(dǎo)時(shí)間模塊106可以包括接收引導(dǎo)和/或復(fù)位信號204作為輸入的初始化器202。引導(dǎo)和/或復(fù)位信號204可以由硬件和/或軟件提供。后者可以包括引導(dǎo)加載器、弓丨導(dǎo)腳本,或者執(zhí)行某一層面的系統(tǒng)初始化的任何其它軟件。響應(yīng)于信號204,初始化器202用信號通知(208)優(yōu)先級器206以開始選擇文件和/或其它系統(tǒng)數(shù)據(jù)以供驗(yàn)證。優(yōu)先級器206可以訪問(210)包含當(dāng)前應(yīng)用優(yōu)先級的數(shù)據(jù)庫212,并且使得能夠?qū)?yīng)用映射到特定文件。例如,一個(gè)應(yīng)用可以包括運(yùn)行所需要的可執(zhí)行文件、配置文件、對象文件、庫等的任何組合。可能僅需驗(yàn)證這些文件的子集。例如,關(guān)鍵應(yīng)用文件可以被封裝成單個(gè)包(例如zip存檔),并且僅可以從包訪問文件。在這種情況下,可以針對整個(gè)包而不是包內(nèi)的多個(gè)單一文件一次完成驗(yàn)證。數(shù)據(jù)庫212可以包括臨時(shí)或者持久儲存器,并且可以由引導(dǎo)時(shí)間模塊106變更和/或更新。例如,隨著使用模式改變,應(yīng)用和文件驗(yàn)證的優(yōu)先級可以改變。數(shù)據(jù)庫212可以包括任何數(shù)據(jù)結(jié)構(gòu)(諸如從開始遍歷至結(jié)束的鏈表)。數(shù)據(jù)庫212可以包括使得能夠快速查找的更復(fù)雜結(jié)構(gòu)(例如二進(jìn)制樹、哈希集),并且可以提供與完整功能的關(guān)系數(shù)據(jù)庫關(guān)聯(lián)的高級特征(諸如利用搜索和查詢以找到數(shù)據(jù))。對于在數(shù)據(jù)庫212中找到的每個(gè)文件,優(yōu)先級器206可以向哈希生成器218發(fā)送(例如經(jīng)由信號216)文件引用。所發(fā)送的引用216可以包括文件名或者適合于文件系統(tǒng)108的其它數(shù)據(jù)(例如句柄、指針、索引節(jié)點(diǎn)等)。哈希生成器218取回文件數(shù)據(jù)220,并且生成哈希222 (或者類似值)。向受保護(hù)的如下存儲部件224發(fā)送哈希值222,該存儲部件將值222與哈希/驗(yàn)證值的集合112 —起存儲(226)于RAM102中的適當(dāng)位置中。驗(yàn)證值112可以存儲于存儲器的連續(xù)塊中作為列表,并且在這種情況下可以由單個(gè)值(例如指向列表頂層的指針228)引用。值112可以存儲于本領(lǐng)域已知的任何其它數(shù)據(jù)結(jié)構(gòu)中。根據(jù)查找頻率和在受保護(hù)的RAM 102中的空間可用性,值可以存儲為比列表允許更快速查找的、諸如二進(jìn)制樹、哈希集等之類的數(shù)據(jù)結(jié)構(gòu)。也示出了運(yùn)行時(shí)間模塊114耦合到受保護(hù)的存儲器空間104中的RAM 102和持久數(shù)據(jù)儲存器108。運(yùn)行時(shí)間模塊114的啟動器部件232可以接收與啟動應(yīng)用關(guān)聯(lián)的請求230。請求230可能造成啟動器232實(shí)際地啟動程序(例如實(shí)例化與應(yīng)用關(guān)聯(lián)的新系統(tǒng)進(jìn)程),或者如果應(yīng)用已被驗(yàn)證,則可以僅使啟動器部件232轉(zhuǎn)發(fā)請求。啟動器向查找部件236發(fā)送對確定與所請求的應(yīng)用關(guān)聯(lián)的所有關(guān)鍵文件的請求234。查找部件236可以如路徑238代表的那樣訪問數(shù)據(jù)庫212以確定這一數(shù)據(jù)。在獲得這一文件列表時(shí),查找模塊向哈希生成器部件240和受保護(hù)的訪問模塊242這兩者發(fā)送列表。哈希生成器240可以使用與初始生成當(dāng)前在存儲器102中的驗(yàn)證值112的哈希生成器218相同的算法和/或代碼。哈希生成器240如路徑243代表的那樣取回文件數(shù)據(jù),并且經(jīng)
由路徑244向比較器248輸出哈希值。在部件240生成哈希的同時(shí),受保護(hù)的訪問模塊242取回(246) RAM 102中的存儲值,這些值還經(jīng)由路徑250傳遞給比較器248。比較器242比較所存儲的驗(yàn)證值250與所生成的值244,并且輸出表明是否存在匹配的、向啟動器232發(fā)送的信號252。如果信號252表明匹配,則可以認(rèn)為應(yīng)用可接受用于執(zhí)行,并且啟動器232可以輸出表明成功和/或使該應(yīng)用啟動的信號254。如先前提到的那樣,引導(dǎo)時(shí)間部件106向RAM 102中插入值112可以在引導(dǎo)期間和引導(dǎo)之后發(fā)生。在后一種情況下可能存在如下情形運(yùn)行時(shí)間模塊114需要在已經(jīng)計(jì)算存儲于受保護(hù)的RAM 102中的驗(yàn)證值之前訪問該驗(yàn)證值。如圖2中所見,查找模塊236可以(直接或者間接地)確定尚未計(jì)算出的所需值,并且可以向優(yōu)先級器206發(fā)送重排優(yōu)先級信號254,以使這種計(jì)算被給予高優(yōu)先級或者即時(shí)優(yōu)先級。這一信號254可以使運(yùn)行時(shí)間模塊114阻止驗(yàn)證,直至驗(yàn)證值被放入RAM 102中。圖2中所示功能部件僅為旨在于舉例說明本發(fā)明各種方面的示例布置。本領(lǐng)域技術(shù)人員將理解諸多變化按照這些教導(dǎo)是可能的。例如引導(dǎo)時(shí)間模塊和運(yùn)行時(shí)間模塊106、114可以組合成單個(gè)功能單元/進(jìn)程,或者可以分離成甚至更小的獨(dú)立運(yùn)行的單元/進(jìn)程。各種接口可以使用附加措施以保護(hù)驗(yàn)證數(shù)據(jù)免受外部分析(諸如在模塊106、114以及RAM102、文件系統(tǒng)108和/或數(shù)據(jù)庫212這些各種部件之間使用加密通信)。將理解所圖示的實(shí)施例可以幫助保證關(guān)鍵文件在啟動應(yīng)用軟件期間未被損害??赡艹霈F(xiàn)的一個(gè)問題包括在運(yùn)行時(shí)間動態(tài)加載代碼這樣的情況。例如系統(tǒng)可以使用按需分頁(paging),這使代碼在執(zhí)行需要時(shí)從硬盤加載到RAM。在這種情況下,代碼的一些部分可以在應(yīng)用首次啟動時(shí)不加載到RAM中、而是可以在隨后訪問特定功能時(shí)放入存儲器中。在這種情況下,不友好用戶或者軟件可以能夠在驗(yàn)證校驗(yàn)之后、但是在向RAM中加載實(shí)際代碼以供執(zhí)行之前改寫應(yīng)用。—種應(yīng)對按需分頁的方式是實(shí)施如下定期校驗(yàn)和校驗(yàn),該校驗(yàn)保證應(yīng)用軟件在軟件的至少某一部分運(yùn)行之時(shí)的完整性。例如,如果針對特定應(yīng)用檢測到對按需頁面的訪問,則可以重新驗(yàn)證分頁部分(或者整個(gè)應(yīng)用)。在其它情況下,如果未影響明顯性能(例如當(dāng)設(shè)備在空閑狀態(tài)中時(shí)),則周期性地重新驗(yàn)證可以例如按照隨機(jī)間隔發(fā)生。
諸多類型的裝置可以用于如在此描述的那樣驗(yàn)證應(yīng)用。例如用戶越來越多地使用移動通信設(shè)備(例如蜂窩電話)作為主要計(jì)算設(shè)備?,F(xiàn)在參照圖3,圖示了能夠根據(jù)本發(fā)明的示例實(shí)施例執(zhí)行操作的、有代表性的移動裝置300的一個(gè)示例實(shí)施例。本領(lǐng)域技術(shù)人員將理解示例裝置300僅代表可以與這種設(shè)備關(guān)聯(lián)的一般功能,并且固定計(jì)算系統(tǒng)也相似地包括用于執(zhí)行這種操作的計(jì)算電路。用戶裝置300可以例如包括移動裝置、移動電話、移動通信設(shè)備、移動計(jì)算機(jī)、膝上型計(jì)算機(jī)、桌面型計(jì)算機(jī)、電話設(shè)備、視頻電話、會議電話、電視裝置、數(shù)字視頻記錄機(jī)(DVR)、機(jī)頂盒(STB)、無線電裝置、音頻/視頻播放器、游戲設(shè)備、定位設(shè)備、數(shù)字相機(jī)/攝像機(jī)等,或者任何其的組合。另外,用戶裝置300可以包括關(guān)于圖I和圖2示出和描述的應(yīng)用安全框架的特征的任何組合。該裝置也可以執(zhí)行下文關(guān)于圖4A-圖4B和圖5描述的任何處理功能。處理單元302控制裝置300的基本功能??梢詫⑺P(guān)聯(lián)的那些功能包括作為存儲于程序儲存器/存儲器304中的指令。在本發(fā)明的一個(gè)示例實(shí)施例中,與儲存器/存儲器304關(guān)聯(lián)的程序模塊存儲于非易失性電可擦除可編程只讀存儲器(EEPROM)、閃存只讀存儲器(ROM)、硬盤等中,從而在移動終端掉電時(shí)不丟失信息。也可以經(jīng)由計(jì)算機(jī)程序產(chǎn)品、計(jì)算機(jī)可讀介質(zhì)提供和/或經(jīng)由數(shù)據(jù)信號向移動裝置300發(fā)送(例如經(jīng)由一個(gè)或者多個(gè)網(wǎng)絡(luò)(諸如因特網(wǎng)和中間無線網(wǎng)絡(luò))電子下載)用于根據(jù)本發(fā)明執(zhí)行操作的相關(guān)軟件。移動裝置300可以包括耦合到處理/控制單元302的硬件和軟件部件。移動裝置300可以包括用于維護(hù)有線或者無線數(shù)據(jù)連接的任何組合的多個(gè)網(wǎng)絡(luò)接口。所圖示的移動裝置300包括用于執(zhí)行網(wǎng)絡(luò)數(shù)據(jù)交換的無線數(shù)據(jù)發(fā)送電路。這一無線電路包括用來執(zhí)行多種功能(包括模數(shù)(A/D)轉(zhuǎn)換、數(shù)模(D/A)轉(zhuǎn)換、話音編碼/解碼、加密/解密、檢錯(cuò)和糾錯(cuò)、比特流譯碼、濾波等)的數(shù)字信號處理器(DSP) 306。一般耦合到天線310的收發(fā)器308發(fā)送傳出的無線電信號312,并且接收與無線設(shè)備關(guān)聯(lián)的傳入無線電信號314。這些部件可以使裝置300能夠加入一個(gè)或者多個(gè)通信網(wǎng)絡(luò)315(包括移動服務(wù)提供商網(wǎng)絡(luò)、局域網(wǎng)和公共網(wǎng)絡(luò)(諸如因特網(wǎng)和公共交換電話網(wǎng)絡(luò)(PSTN)))。 移動裝置300還可以包括耦合到處理/控制單元302的備用網(wǎng)絡(luò)/數(shù)據(jù)接口 316。備用數(shù)據(jù)接口 316可以包括使用任何方式的數(shù)據(jù)傳輸介質(zhì)(包括有線和無線介質(zhì))、經(jīng)由輔助數(shù)據(jù)路徑通信的能力。備用數(shù)據(jù)接口 316的示例包括USB、藍(lán)牙、RFID、以太網(wǎng)、302. 11町41、11^^、超寬帶、118代6、6 5等。這些備用接口 316還可以能夠經(jīng)由網(wǎng)絡(luò)315、或者經(jīng)由直接和/或?qū)Φ韧ㄐ沛溌吠ㄐ?。處理?02還耦合到與移動終端關(guān)聯(lián)的用戶接口硬件318。移動終端的用戶接口318可以例如包括顯示器320。用戶接口硬件318還可以包括轉(zhuǎn)換器324 (諸如能夠接收用戶輸入的輸入設(shè)備)。轉(zhuǎn)換器324也可以包括能夠測量本地環(huán)境(例如位置溫度、加速度、定向、鄰近度等),并且產(chǎn)生媒體(例如文本、靜止畫面、視頻、聲音等)的感測設(shè)備。可以在接口 318中包括諸如小鍵盤、揚(yáng)聲器、麥克風(fēng)、語音命令、開關(guān)、觸板/觸屏、指點(diǎn)設(shè)備、軌跡球、操縱桿、振動生成器、燈、加速度計(jì)等其它用戶接口硬件/軟件。這些和其它用戶接口部件如本領(lǐng)域已知的那樣耦合到處理器302。程序儲存器/存儲器304包括用于執(zhí)行與移動裝置300上的功能關(guān)聯(lián)的功能和應(yīng)用的操作系統(tǒng)。程序儲存器304可以包括只讀存儲器(ROM)、閃存ROM、可編程和/或可擦除ROM、隨機(jī)訪問存儲器(RAM)、用戶接口模塊(SIM)、無線接口模塊(WIM)、智能卡、硬盤、計(jì)算機(jī)程序產(chǎn)品或者其它可移除存儲器設(shè)備中的一個(gè)或者多個(gè)。移動裝置300的儲存器/存儲器304還可以包括用于根據(jù)本發(fā)明的示例實(shí)施例執(zhí)行功能的專門化軟件模塊。例如程序儲存器/存儲器304可以包括能夠存儲如下驗(yàn)證值(例如校驗(yàn)和、哈希)的RAM的受保護(hù)的存儲器部分328,這些驗(yàn)證值驗(yàn)證一個(gè)或者多個(gè)應(yīng)用330的狀態(tài)和/或與之關(guān)聯(lián)的文件的狀態(tài)。引導(dǎo)時(shí)間驗(yàn)證模塊332響應(yīng)于諸如引導(dǎo)、復(fù)位、在低功率/待機(jī)與全功率模式之間的轉(zhuǎn)換等之類的設(shè)備初始化事件來計(jì)算這些驗(yàn)證值。儲存器/存儲器304可以包括引導(dǎo)時(shí)間驗(yàn)證模塊332 (和其它系統(tǒng)部件)可用的應(yīng)用元數(shù)據(jù)334。應(yīng)用元數(shù)據(jù)334可以是數(shù)據(jù)庫、注冊表、文件或者任何其它數(shù)據(jù)構(gòu)造的部分。應(yīng)用元數(shù)據(jù)334可以包括諸如應(yīng)用330的名稱/標(biāo)識符、每個(gè)應(yīng)用330使用的或者與每個(gè)應(yīng)用330包括在一起的關(guān)鍵文件、應(yīng)用330的使用數(shù)據(jù)等之類的數(shù)據(jù)。啟動器336可以是如下操作系統(tǒng)部件,該部件諸如通過從持久儲存器向RAM傳送指令、創(chuàng)建進(jìn)程標(biāo)識符、確定/設(shè)置權(quán)限、為CPU時(shí)間確定/設(shè)置優(yōu)先級等來支配應(yīng)用330的啟動。運(yùn)行時(shí)間驗(yàn)證模塊338檢測以啟動器336為目標(biāo)的啟動請求,并且作為響應(yīng)基于可執(zhí)行文件(和其它數(shù)據(jù))在它們當(dāng)前存在于持久儲存器中時(shí)的現(xiàn)有狀態(tài),來確定待啟動的應(yīng)用的當(dāng)前驗(yàn)證數(shù)據(jù)。比較這些當(dāng)前值與存儲于受保護(hù)的RAM 328中的先前計(jì)算的值。如果比較顯示尚無改變,則驗(yàn)證模塊338允許啟動器336繼續(xù)執(zhí)行應(yīng)用進(jìn)程。運(yùn)行時(shí)間驗(yàn)證模塊338可以出于與針對引導(dǎo)時(shí)間模塊332描述的目的相似的目的(例如確定關(guān)鍵文件)而訪問應(yīng)用元數(shù)據(jù)334。雖然運(yùn)行時(shí)間模塊338可以無需關(guān)注相對應(yīng)用優(yōu)先級,但是運(yùn)行時(shí)間和引導(dǎo)時(shí)間模塊338、332可以并行運(yùn)行,這可能引起在受保護(hù)的存儲器328中不存在先前計(jì)算和存儲的驗(yàn)證數(shù)據(jù)這樣的情形。在這種情況下,運(yùn)行時(shí)間模塊338可以用信號通知引導(dǎo)時(shí)間模塊332來執(zhí)行這種驗(yàn)證(例如通過增加所請求的應(yīng)用的相對優(yōu)先級)。其它布置是有可能的,例如運(yùn)行時(shí)間模塊338本身可以在受保護(hù)的存儲器中插入其已經(jīng)計(jì)算的值,并且假定當(dāng)前應(yīng)用尚未被損害(例如裝置300可能僅僅運(yùn)行了少量時(shí)間,因而文件被當(dāng)前運(yùn)行軟件損害的可能性低)。啟動器336和/或運(yùn)行時(shí)間驗(yàn)證模塊338還可以動作以更新應(yīng)用元數(shù)據(jù)334。例如,啟動器336可以基于請求應(yīng)用啟動的頻率來提供對應(yīng)用330的相對優(yōu)先級有影響的統(tǒng)計(jì)。當(dāng)數(shù)據(jù)已經(jīng)被損害時(shí),驗(yàn)證模塊338可以在元數(shù)據(jù)334中標(biāo)記數(shù)據(jù)為受破壞、由此防止將來執(zhí)行受影響的應(yīng)用和/或發(fā)起修復(fù)或者重新安裝受影響的應(yīng)用。這種發(fā)現(xiàn)對于服務(wù)提供商、設(shè)備制造商和/或軟件生產(chǎn)商可能有用。這樣,運(yùn)行時(shí)間模塊338可以提供如下報(bào)告功能,該功能經(jīng)由網(wǎng)絡(luò)315報(bào)告被損害的文件事故。提供圖3的移動裝置300作為本發(fā)明的原理可以應(yīng)用于其中的計(jì)算環(huán)境的有代表性的示例。根據(jù)在此提供的描述,本領(lǐng)域技術(shù)人員將理解本發(fā)明同樣可應(yīng)用于多種其它當(dāng)前已知的、以及將來的移動和陸線計(jì)算環(huán)境中。例如桌面型和服務(wù)器計(jì)算設(shè)備類似地包括處理器、存儲器、用戶接口和數(shù)據(jù)通信電路。因此,本發(fā)明可應(yīng)用于其中可以經(jīng)由網(wǎng)絡(luò)傳達(dá)數(shù)據(jù)的任何已知計(jì)算結(jié)構(gòu)中?,F(xiàn)在參照圖4A,流程示了用于對裝置上的應(yīng)用執(zhí)行初始化校驗(yàn)的過程400。該過程涉及獲得(402)待校驗(yàn)的文件或者其它數(shù)據(jù)的列表。可以在專門化數(shù)據(jù)庫中存儲,或者任何其它方式(例如遍歷文件目錄)獲得列表。這一操作402還可以涉及找到或者確定相對優(yōu)先級,從而將首先完成在過程400進(jìn)行之時(shí)最可能需要的文件(例如可以繼續(xù)與運(yùn)行時(shí)間進(jìn)程并行執(zhí)行)。對于列表中的每個(gè)文件,進(jìn)入如下循環(huán)404,該循環(huán)涉及為文件計(jì)算(406)哈希/校驗(yàn)和,并且在受保護(hù)的RAM中存儲(408)所計(jì)算的哈希/校驗(yàn)和。當(dāng)已經(jīng)處理完所有關(guān)鍵文件時(shí),該過程完成(410)。在圖4B中看到根據(jù)本發(fā)明實(shí)施例的相似過程420。這一過程420包括如下無限循環(huán),該循環(huán)等待(422)使一些或者所有應(yīng)用數(shù)據(jù)被重新驗(yàn)證的事件。這種事件可以包括與實(shí)際啟動應(yīng)用無關(guān)的(諸如將當(dāng)前運(yùn)行程序的某一部分分頁、時(shí)間流逝、應(yīng)用的軟件初始化事件、安裝新應(yīng)用、重新安裝現(xiàn)有應(yīng)用等)任何自檢初始化的運(yùn)行時(shí)間事件。與圖4A相似,圖4B中的過程420涉及獲得(424)列表(該列表也可以按照優(yōu)先級來排序,盡管這根據(jù)重新驗(yàn)證事件可能是不需要的),并且循環(huán)426循環(huán)訪問每個(gè)文件,計(jì)算(428)哈希/校驗(yàn)和數(shù)據(jù),并且在受保護(hù)的存儲器中存儲(430)哈希/校驗(yàn)和數(shù)據(jù)。繼
而可以諸如下文描述的那樣使用這種存儲的哈希/校驗(yàn)和數(shù)據(jù)。當(dāng)已經(jīng)存儲哈希/校驗(yàn)和(例如經(jīng)由4A中的過程)時(shí),存儲(430)可以涉及用更新的驗(yàn)證值替換受保護(hù)的存儲器部分中的對應(yīng)存儲的驗(yàn)證值?,F(xiàn)在參照圖5,流程示了用于在裝置上執(zhí)行應(yīng)用啟動驗(yàn)證的過程500??梢栽谥T如上文關(guān)于圖4A-圖4B描述的軟件初始驗(yàn)證之后執(zhí)行這種過程500。過程500可以被布置為如下無限循環(huán),該循環(huán)等待(502)應(yīng)用啟動請求。獲得該應(yīng)用的文件列表504,并且循環(huán)506循環(huán)訪問每個(gè)文件。為文件計(jì)算當(dāng)前哈希/校驗(yàn)和0T),并且從受保護(hù)的RAM中獲得(510)先前存儲的哈希/校驗(yàn)和H。比較(512)H*與H值。如果H和H*不匹配,則拒絕(514)應(yīng)用啟動,并且該過程跳出循環(huán)506以返回到等待狀態(tài)502。如果循環(huán)506完成,則允許(516)應(yīng)用啟動,并且進(jìn)入等待狀態(tài)502。已經(jīng)出于圖示和描述的目的而呈現(xiàn)對本發(fā)明示例實(shí)施例的前文描述。并不旨在窮舉本發(fā)明或者使本發(fā)明限于所公開的精確形式。諸多修改和變化按照上述教導(dǎo)是可能的。旨在本發(fā)明的范圍不受這一具體描述的限制,而是由所附權(quán)利要求來確定。
權(quán)利要求
1.一種裝置,包括 隨機(jī)訪問存儲器,包括受保護(hù)的存儲器部分; 處理器,耦合到所述隨機(jī)訪問存儲器,其中所述處理器配置有可執(zhí)行指令,所述可執(zhí)行指令使所述裝置 響應(yīng)于所述裝置的初始化,為多個(gè)應(yīng)用可執(zhí)行文件中的每個(gè)應(yīng)用可執(zhí)行文件計(jì)算驗(yàn)證值,并且在所述受保護(hù)的存儲器部分中存儲所述驗(yàn)證值; 確定對在所述裝置上啟動應(yīng)用的嘗試; 為與所述應(yīng)用關(guān)聯(lián)的可執(zhí)行文件計(jì)算當(dāng)前驗(yàn)證值; 比較所述當(dāng)前驗(yàn)證值與所存儲的驗(yàn)證值中的對應(yīng)存儲的驗(yàn)證值;以及 基于所述比較的結(jié)果調(diào)控所述應(yīng)用的啟動。
2.根據(jù)權(quán)利要求I所述的裝置,其中所述可執(zhí)行指令還使所述裝置響應(yīng)于與所述應(yīng)用的啟動無關(guān)的運(yùn)行時(shí)間事件,為與所述應(yīng)用關(guān)聯(lián)的所述可執(zhí)行文件重新計(jì)算驗(yàn)證值,并且用所述重新計(jì)算的值替換在所述受保護(hù)的存儲器部分中的所述對應(yīng)存儲的驗(yàn)證值。
3.根據(jù)權(quán)利要求2所述的裝置,其中所述運(yùn)行時(shí)間事件包括所述可執(zhí)行文件的分頁。
4.根據(jù)權(quán)利要求2所述的裝置,其中所述運(yùn)行時(shí)間事件包括從先前計(jì)算所述對應(yīng)存儲的驗(yàn)證值起的時(shí)間流逝。
5.根據(jù)權(quán)利要求I所述的裝置,其中所述可執(zhí)行指令還使所述裝置基于預(yù)計(jì)使用來為所述多個(gè)應(yīng)用文件中的每個(gè)應(yīng)用文件建立優(yōu)先級,并且其中所述計(jì)算所述驗(yàn)證值以及在所述受保護(hù)的存儲器部分中存儲所述驗(yàn)證值由所述相應(yīng)優(yōu)先級支配。
6.根據(jù)權(quán)利要求I所述的裝置,其中所述計(jì)算所述驗(yàn)證值并且在所述受保護(hù)的存儲器部分中存儲所述驗(yàn)證值與確定對啟動所述應(yīng)用程序的所述嘗試并行發(fā)生。
7.根據(jù)權(quán)利要求6所述的裝置,其中所述可執(zhí)行指令還使所述裝置 在比較所述當(dāng)前驗(yàn)證值與所述對應(yīng)存儲的驗(yàn)證值時(shí),確定所述對應(yīng)存儲的驗(yàn)證值不可用;以及 使所述對應(yīng)驗(yàn)證值的計(jì)算和存儲按照更高優(yōu)先級發(fā)生,以有助于比較所述當(dāng)前驗(yàn)證值與所述存儲的驗(yàn)證值中的對應(yīng)存儲的驗(yàn)證值。
8.一種方法,包括 響應(yīng)于裝置的初始化,為多個(gè)應(yīng)用可執(zhí)行文件中的每個(gè)應(yīng)用可執(zhí)行文件計(jì)算驗(yàn)證值,并且在所述裝置的隨機(jī)訪問存儲器的受保護(hù)的存儲器部分中存儲所述驗(yàn)證值; 確定對在所述裝置上啟動應(yīng)用的嘗試; 為與所述應(yīng)用關(guān)聯(lián)的可執(zhí)行文件計(jì)算當(dāng)前驗(yàn)證值; 比較所述當(dāng)前驗(yàn)證值與所存儲的驗(yàn)證值中的對應(yīng)存儲的驗(yàn)證值;并且 基于所述比較的結(jié)果調(diào)控所述應(yīng)用的啟動。
9.根據(jù)權(quán)利要求8所述的方法,還包括響應(yīng)于與所述應(yīng)用的啟動無關(guān)的運(yùn)行時(shí)間事件 為與所述應(yīng)用關(guān)聯(lián)的可執(zhí)行文件計(jì)算當(dāng)前驗(yàn)證值; 比較所述當(dāng)前驗(yàn)證值與所述存儲的驗(yàn)證值中的對應(yīng)存儲的驗(yàn)證值;以及 基于所述比較的結(jié)果來調(diào)控對所述應(yīng)用的所述文件的訪問。
10.根據(jù)權(quán)利要求9所述的方法,其中所述運(yùn)行時(shí)間事件包括所述可執(zhí)行文件的分頁。
11.根據(jù)權(quán)利要求9所述的方法,其中所述運(yùn)行時(shí)間事件包括從先前計(jì)算所述對應(yīng)存儲的驗(yàn)證值起的時(shí)間流逝。
12.根據(jù)權(quán)利要求8所述的方法,還包括基于預(yù)計(jì)使用來為所述多個(gè)應(yīng)用文件中的每個(gè)應(yīng)用文件建立優(yōu)先級,并且其中所述計(jì)算所述驗(yàn)證值并且在所述受保護(hù)的存儲器部分中存儲所述驗(yàn)證值由所述相應(yīng)優(yōu)先級支配。
13.根據(jù)權(quán)利要求8所述的方法,其中所述計(jì)算所述驗(yàn)證值并且在所述受保護(hù)的存儲器部分中存儲所述驗(yàn)證值與確定對啟動所述應(yīng)用程序的所述嘗試并行發(fā)生,所述方法還包括 在比較所述當(dāng)前驗(yàn)證值與所述對應(yīng)存儲的驗(yàn)證值時(shí),確定所述對應(yīng)存儲的驗(yàn)證值不可用;以及 使所述對應(yīng)驗(yàn)證值的計(jì)算和存儲按照更高優(yōu)先級發(fā)生,以有助于比較所述當(dāng)前驗(yàn)證值與所述存儲的驗(yàn)證值中的對應(yīng)存儲的驗(yàn)證值。
14.根據(jù)權(quán)利要求8所述的方法,還包括 響應(yīng)于所述應(yīng)用的軟件初始化事件,為與所述應(yīng)用關(guān)聯(lián)的所述可執(zhí)行文件計(jì)算更新的驗(yàn)證值;以及 用所述更新的驗(yàn)證值替換所述受保護(hù)的存儲器部分中的所述對應(yīng)存儲的驗(yàn)證值。
15.根據(jù)權(quán)利要求14所述的方法,其中所述軟件初始化事件包括重新安裝所述應(yīng)用。
16.根據(jù)權(quán)利要求14所述的方法,其中所述軟件初始化事件包括在所述裝置的自檢初始化運(yùn)行時(shí)間期間驗(yàn)證所述應(yīng)用。
17.—種編碼有指令的計(jì)算機(jī)可讀存儲介質(zhì),所述指令在由裝置執(zhí)行時(shí)執(zhí)行根據(jù)權(quán)利要求8所述的方法。
18.一種方法,包括 響應(yīng)于裝置上的應(yīng)用的修改事件,為與所述應(yīng)用關(guān)聯(lián)的一個(gè)或者多個(gè)可執(zhí)行文件計(jì)算驗(yàn)證值,并且在所述裝置的隨機(jī)訪問存儲器的受保護(hù)的存儲器部分中存儲所述驗(yàn)證值; 確定對在所述裝置上啟動應(yīng)用的嘗試; 為與所述應(yīng)用關(guān)聯(lián)的可執(zhí)行文件計(jì)算當(dāng)前驗(yàn)證值; 比較所述當(dāng)前驗(yàn)證值與所存儲的驗(yàn)證值中的對應(yīng)存儲的驗(yàn)證值;以及 基于所述比較的結(jié)果調(diào)控所述應(yīng)用的啟動。
19.根據(jù)權(quán)利要求18所述的方法,其中所述修改事件包括所述應(yīng)用的初始安裝或者重新安裝中的至少一個(gè)事件。
20.根據(jù)權(quán)利要求18所述的方法,其中所述修改事件包括在所述裝置的運(yùn)行時(shí)間期間驗(yàn)證所述應(yīng)用。
全文摘要
響應(yīng)于裝置的初始化,為多個(gè)應(yīng)用可執(zhí)行文件中的每個(gè)應(yīng)用可執(zhí)行文件計(jì)算驗(yàn)證值,并且在隨機(jī)訪問存儲器的受保護(hù)的存儲器部分中存儲驗(yàn)證值。確定對在裝置上啟動應(yīng)用的嘗試,并且為與應(yīng)用關(guān)聯(lián)的可執(zhí)行文件計(jì)算當(dāng)前的驗(yàn)證值。比較當(dāng)前驗(yàn)證值與所存儲的驗(yàn)證值中的對應(yīng)存儲的驗(yàn)證值,并且基于比較的結(jié)果調(diào)控應(yīng)用的啟動。
文檔編號G06F21/00GK102804194SQ201080027400
公開日2012年11月28日 申請日期2010年5月12日 優(yōu)先權(quán)日2009年5月12日
發(fā)明者K·M·維爾波拉, T·O·曼塔里 申請人:諾基亞公司