示出的,可以為新的應用包310生成安全信息以用于安全驗證。特別地,簽名或者(多個)散列值可以被生成并且存儲在新的應用包310中,以用于在運行時間階段的自校驗。
[0023]圖5描繪了一個示例圖,該示例圖示出了應用包的簽名校驗。如圖5中所示出的,加密的代碼316內(nèi)的自校驗邏輯代碼502被用來在運行時間階段(例如,在移動設備上)校驗新的應用包310的簽名。具體地說,自校驗邏輯代碼502包括與原始簽名相關聯(lián)的信息。調(diào)用自校驗邏輯代碼502 (例如,用于應用302的運行時間進程)來驗證新的應用包310的簽名。如果自校驗邏輯代碼502確定新的應用包310的簽名不是真實的,則簽名校驗失敗,這指示了新的應用包310被篡改,并且可以采取某些措施作為響應。例如,生成通知以發(fā)出警報,和/或終止與應用302相關聯(lián)的運行時間進程。
[0024]圖6描繪了一個示例圖,該示例圖示出了應用包的散列值校驗。如圖6所示出的,加密的代碼316內(nèi)的自校驗邏輯代碼502被用來在運行時間階段(例如,在移動設備上)校驗與新的應用包310的一個或多個文件(例如,代碼)有關的一個或多個散列值。具體地說,自校驗邏輯代碼502包括與一個或多個散列值相關聯(lián)的信息,該一個或多個散列值與新的應用包310的一個或多個文件(例如,代碼)有關。這些散列值借助于通過任何合適的散列函數(shù)或散列算法來映射文件(例如,代碼)中的數(shù)據(jù)而生成。例如,對應于應用包310內(nèi)的不同文件來生成多個散列值??梢詾閼冒?10生成單個散列值。對文件(例如,代碼)的數(shù)據(jù)的任何改變/修改能夠通過比較有關的散列值來確定。
[0025]調(diào)用自校驗邏輯代碼502 (例如,用于應用302的運行時間進程)來驗證新的應用包310的一個或多個文件(例如,代碼)的散列值。如果自校驗邏輯代碼502確定這些散列值不是真實的,則散列值校驗失敗,這指示了新的應用包310被篡改,并且可以采取某些措施作為響應。例如,生成通知以發(fā)出警報,和/或終止與應用302相關聯(lián)的運行時間進程。
[0026]圖7描繪了用于保護用于移動設備的應用的示例流程圖。如圖7中所示出的,在702處,接收與應用相關聯(lián)的可執(zhí)行代碼。在704處,至少部分地基于該可執(zhí)行代碼來生成加密的代碼和包裝器代碼。該加密的代碼能夠至少部分地基于該包裝器代碼而被解密。在706處,為移動設備生成包括該加密的代碼和該包裝器代碼的應用包。
[0027]本書面描述使用示例來公開本發(fā)明,包括最佳模式,并且還使得本領域的技術人員能夠做出并且使用本發(fā)明。本發(fā)明的可專利范圍可以包括本領域的技術人員想到的其他示例。然而,其他的實施方式也可以被使用,諸如被配置為執(zhí)行本文所描述的方法和系統(tǒng)的固件或者適當設計的硬件。例如,本文所描述的系統(tǒng)和方法可以實施在獨立的處理引擎中,作為協(xié)處理器,或者作為硬件加速器。在又另一個示例中,本文所描述的系統(tǒng)和方法可以被提供在包括計算機存儲機構(例如,CD-ROM、磁盤、RAM、閃存、計算機的硬件驅(qū)動器、等等)的許多不同類型的計算機可讀介質(zhì)上,這些計算機存儲機構包含指令(例如,軟件),這些指令用于由一個或多個處理器執(zhí)行,以執(zhí)行方法的操作并且實施本文所描述的系統(tǒng)。
【主權項】
1.一種用于保護用于移動設備的應用的方法,所述方法包括: 接收與應用相關聯(lián)的可執(zhí)行代碼; 至少部分地基于所述可執(zhí)行代碼來生成加密的代碼和包裝器代碼; 其中所述加密的代碼能夠至少部分地基于所述包裝器代碼而被解密;以及 為移動設備生成包括所述加密的代碼和所述包裝器代碼的應用包。
2.根據(jù)權利要求1所述的方法,其中所述加密的代碼包括用于執(zhí)行所述應用的功能的基本邏輯代碼。
3.根據(jù)權利要求1所述的方法,其中所述包裝器代碼被用來調(diào)用基本代碼。
4.根據(jù)權利要求1所述的方法,其中所述應用包對應于與安卓操作系統(tǒng)相關聯(lián)的APK文件。
5.根據(jù)權利要求1所述的方法,其中所述應用包進一步包括用于加載所述加密的代碼的本機庫代碼。
6.根據(jù)權利要求1所述的方法,其中所述加密的代碼包括用于所述應用的安全驗證的自測試邏輯代碼。
7.根據(jù)權利要求6所述的方法,其中: 所述應用包進一步包括簽名;并且 所述自測試邏輯代碼能夠驗證所述簽名。
8.根據(jù)權利要求6所述的方法,其中: 所述應用包進一步包括散列值;并且 所述自測試邏輯代碼能夠驗證所述散列值。
9.根據(jù)權利要求6所述的方法,其中響應于所述安全驗證的失敗而生成通知。
10.根據(jù)權利要求6所述的方法,其中響應于所述安全驗證的失敗而終止與所述應用相關聯(lián)的運行時間進程。
11.一種用于保護用于移動設備的應用的系統(tǒng),所述系統(tǒng)包括: 加密模塊,被配置為接收與應用相關聯(lián)的可執(zhí)行代碼,并且至少部分地基于所述可執(zhí)行代碼來生成加密的代碼和包裝器代碼; 其中所述加密的代碼能夠至少部分地基于所述包裝器代碼而被解密;以及 包生成器,被配置為,為移動設備生成包括所述加密的代碼和所述包裝器代碼的應用包。
12.根據(jù)權利要求11所述的系統(tǒng),其中所述加密的代碼包括用于執(zhí)行所述應用的功能的基本邏輯代碼。
13.根據(jù)權利要求12所述的系統(tǒng),其中所述包裝器代碼被用來調(diào)用基本代碼。
14.根據(jù)權利要求11所述的系統(tǒng),其中所述應用包對應于與安卓操作系統(tǒng)相關聯(lián)的APK文件。
15.根據(jù)權利要求11所述的系統(tǒng),其中所述應用包進一步包括用于加載所述加密的代碼的本機庫代碼。
16.根據(jù)權利要求11所述的系統(tǒng),其中所述加密的代碼包括用于所述應用的安全驗證的自測試邏輯代碼。
17.根據(jù)權利要求16所述的系統(tǒng),其中: 所述應用包進一步包括簽名;并且 所述自測試邏輯代碼能夠驗證所述簽名。
18.根據(jù)權利要求16所述的系統(tǒng),其中: 所述應用包進一步包括文件的散列值;并且 所述自測試邏輯代碼能夠驗證所述散列值。
19.根據(jù)權利要求16所述的系統(tǒng),其中: 當所述安全驗證失敗時,生成通知或者終止與所述應用相關聯(lián)的運行時間進程。
20.一種用于保護用于移動設備的應用的系統(tǒng),所述系統(tǒng)包括: 一個或多個數(shù)據(jù)處理器;以及 機器可讀存儲介質(zhì),所述機器可讀存儲介質(zhì)以指令來編碼,所述指令用于命令所述數(shù)據(jù)處理器來執(zhí)行操作,所述操作包括: 接收與應用相關聯(lián)的可執(zhí)行代碼; 至少部分地基于所述可執(zhí)行代碼來生成加密的代碼和包裝器代碼; 其中所述加密的代碼能夠至少部分地基于所述包裝器代碼而被解密;以及 為移動設備生成包括所述加密的代碼和所述包裝器代碼的應用包。
【專利摘要】提供了系統(tǒng)和方法以用于移動應用保護。接收與應用相關聯(lián)的可執(zhí)行代碼。至少部分地基于該可執(zhí)行代碼來生成加密的代碼和包裝器代碼。該加密的代碼能夠至少部分地基于該包裝器代碼而被解密。為移動設備生成包括該加密的代碼和該包裝器代碼的應用包。
【IPC分類】G06F21-56, G06F21-12
【公開號】CN104537281
【申請?zhí)枴緾N201410350516
【發(fā)明人】蔣鑫, 陳家林, 李良才, 吳淅, 郭佳
【申請人】馬維爾國際貿(mào)易有限公司
【公開日】2015年4月22日
【申請日】2014年7月17日
【公告號】US20150026483