[發明專利]Android平臺上已安裝軟件保護方法在審
| 申請號: | 201310522197.0 | 申請日: | 2013-10-29 |
| 公開(公告)號: | CN104573490A | 公開(公告)日: | 2015-04-29 |
| 發明(設計)人: | 丁勇;張皎;李新國;丁繼強;官秀國 | 申請(專利權)人: | 桂林電子科技大學 |
| 主分類號: | G06F21/51 | 分類號: | G06F21/51 |
| 代理公司: | 桂林市持衡專利商標事務所有限公司 45107 | 代理人: | 陳躍琳 |
| 地址: | 541004 廣*** | 國省代碼: | 廣西;45 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | android 平臺 安裝 軟件 保護 方法 | ||
技術領域
本發明涉及軟件安全領域,具體涉及一種Android(安卓)平臺上已安裝軟件保護方法。
背景技術
隨著智能手機的迅速發展,智能手機在人們生活中扮演著越來越重要的角色,如通信、交易、資訊等可以被方便快捷的滿足,其中Android以其開源的特點受到各廠商、開發者以及用戶的青睞。與此同時,由于Android系統代碼開源的特點以及其自身特有的安全機制使其成為惡意軟件攻擊的主要目標。Android平臺上軟件的安全是至關重要的,目前針對Android平臺上軟件的保護方法主要有以下幾種方法:
1)利用代碼混淆技術;
2)NDK保護;
3)外殼保護技術;
4)防止重編譯的簽名技術。
前三種是當前開發人員在開發應用程序時防止自己的作品被反編譯采用的方式,但實際使用過程中卻各有各的不足:1)在Android平臺上經過混淆的文件中的類會“面目全非”,造成程序在運行時找不到特定的類而拋出異常,需要再針對異常信息進行解決,比較耗費精力。2)NDK保護中使用NDK編寫Native代碼實現軟件的功能會增加代碼量,調試難度增大,靈活性略顯不足。3)外殼保護主要是針對使用Android?NDK編寫的Native代碼,因此其不足性與2)中相同。
最后一種方法使用比較多,開發者可以對應用程序進行簽名,但基于Android本身的安全機制由開發者對應用程序進行簽名后仍然不能保證其應用程序被反編譯重新打包。Android平臺上只是在應用程序安裝時進行其完整性驗證,當應用程序安裝以后再次啟動運行過程中便不再進行完整性驗證,只是簡單的比對.apk文件與class.dex文件的時間戳以及.apk文件的保存路徑,當這三者通過比對驗證以后便認為應用程序在安裝后并沒有被篡改重新打包,事實上,很多攻擊者會在獲得root權限后利用Android在安裝應用程序后再次啟動時并不進行完整性驗證的這一安全隱患對已安裝到Android上的應用程序進行解壓反匯編注入惡意代碼后再重新打包生成APK文件來實行攻擊,針對應用程序再次啟動時需要驗證的時間戳以及文件的保存路徑只需修改相應的時間戳及文件保存路徑即可。
另外,當前也有采用加載各種安全模塊的方法,這些方法對Android本身修改比較大,所需要編譯加載的模塊多,對應用程序的開發者也可能會造成不方便。
Android上的應用程序運行在Dalvik虛擬機上,其可執行文件是dex文件。Android上應用程序的重編譯實質上就是重新編譯class.dex文件,應用程序被重新編譯后其dex文件的Hash值會發生改變。當應用程序安裝后會將class.dex文件優化保存,應用程序在后續的啟動時便會直接提取出優化后的dex文件運行。然而優化后的dex文件在保存后可以被手動刪除,當再次啟動應用程序時若優化代碼文件不存在,則系統會在啟動時從apk文件中直接提取class.dex文件再次優化保存。因此若要保護已經安裝的應用程序不被重新編譯打包就應該在應用程序啟動時對其可執行文件進行度量驗證,可以通過檢驗class.dex文件的Hash值來判斷應用程序是否被重編譯過。
發明內容
本發明所要解決的技術問題是現有的保護方法的不足及Android本身驗證機制的安全隱患,提供一種Android平臺上已安裝軟件保護方法,其能夠在應用程序啟動時進行驗證。
為解決上述問題,本發明是通過以下技術方案實現的:
一種Android平臺上已安裝軟件保護方法,包括如下步驟:
(1)應用程序安裝階段:
(1.1)調取應用程序安裝完成后的優化代碼文件即可執行文件,并對可執行文件進行單向散列函數運算,得到可執行文件的摘要值;
(1.2)利用加密函數觸發密鑰生成器,生成加密密鑰對可執行文件的摘要值進行加密,且調出提示信息讓用戶輸入一個保護密鑰的口令,最后將由口令保護的加密密鑰保存到應用程序資源文件目錄中;
(1.3)對加密后的摘要值再進行單向散列函數運算,得到最終的摘要值,并將最終的摘要值保存到應用程序資源文件目錄中;
(2)啟動過程驗證階段:
(2.1)啟動時由單向散列函數對可執行文件進行單向散列運算,得到可執行文件的摘要值;
(2.2)由加密函數對得到的摘要值進行加密,并調用應用程序資源文件目錄中的加密密鑰,提示用戶輸入口令獲得密鑰;
(2.3)對加密后的摘要值再進行單向散列函數運算,得到最終需要比對的摘要值;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于桂林電子科技大學,未經桂林電子科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310522197.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種防拷貝Soc啟動方法及芯片
- 下一篇:一種基于線性回歸的牙齒選色推測方法





