[發(fā)明專利]安卓APK啟動時簽名認(rèn)證的方法及其裝置在審
| 申請?zhí)枺?/td> | 201780001547.5 | 申請日: | 2017-03-16 |
| 公開(公告)號: | CN107690643A | 公開(公告)日: | 2018-02-13 |
| 發(fā)明(設(shè)計(jì))人: | 宋孝亮 | 申請(專利權(quán))人: | 深圳大趨智能科技有限公司 |
| 主分類號: | G06F21/44 | 分類號: | G06F21/44 |
| 代理公司: | 深圳市明日今典知識產(chǎn)權(quán)代理事務(wù)所(普通合伙)44343 | 代理人: | 王杰輝 |
| 地址: | 518000 廣東省深圳市*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | apk 啟動 簽名 認(rèn)證 方法 及其 裝置 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及到安卓APK安全認(rèn)證領(lǐng)域,特別是涉及到一種安卓APK啟動時簽名認(rèn)證的方法及其裝置。
背景技術(shù)
原始的Android系統(tǒng)會在安裝APK的時候,檢查簽名,簽名不同,沒有簽名或者簽名不通過的,不能進(jìn)行安裝或者覆蓋。
Google公司在android4.4中新增加了ART(Android Run Time)來替代之前的Dalvik,ART使用的是OAT格式的文件(OAT格式文件),在APK應(yīng)用安裝時安裝器通過可執(zhí)行代碼dex2oat優(yōu)化APK安裝包為本地機(jī)器代碼,也就是說安裝后的文件和原始文件有了很大的差別,我們需要通過某種手段先知道安裝后的本地機(jī)器代碼文件,對本地機(jī)器代碼文件簽名后才能在apk啟動時對本地機(jī)器代碼文件進(jìn)行啟動認(rèn)證。
原始APK只在安裝時校驗(yàn)原始APK文件內(nèi)部的META-INF目錄下的簽名文件,但是啟動時不會再做校驗(yàn)。安卓系統(tǒng)在APK啟動的時候不會再對APK進(jìn)行校驗(yàn),這就可能導(dǎo)致已安裝成功的APK有被篡改的可能,存在安全隱患。
因此,有必要設(shè)計(jì)一種安卓APK啟動式簽名認(rèn)證的方法,對已安裝成功的APK進(jìn)行啟動時,對簽名進(jìn)行認(rèn)證,確保APK也不被隨意篡改,一旦APK被篡改,APK啟動時就可以及時發(fā)現(xiàn),被提示給用戶APK已被篡改,無法運(yùn)行,減少安全隱患。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供安卓APK啟動時簽名認(rèn)證的方法及其裝置,在APK啟動的時候也進(jìn)行簽名驗(yàn)證,避免使用安裝后被惡意篡改的APK。
為實(shí)現(xiàn)上述目的,本發(fā)明采用以下技術(shù)方案:一種安卓APK啟動時簽名認(rèn)證的方法,所述方法包括:
獲取由原始的APK安裝文件轉(zhuǎn)換而成的簽名SGN文件,并加載安裝后的APK的可執(zhí)行代碼轉(zhuǎn)換而成的OAT簽名文件;
判斷所述OAT簽名文件是否與簽名SGN文件一致;
若是,加載APK,否則,禁止啟動APK。
進(jìn)一步地,所述原始的APK安裝文件轉(zhuǎn)換成簽名SGN文件的方法,包括,
將原始的APK安裝文件轉(zhuǎn)換成OAT格式文件;
通過HASH256+RSA2048算法計(jì)算所述OAT格式文件中的oatdata和oatexec段,得到簽名SGN文件。
進(jìn)一步地,所述通過HASH256+RSA2048算法計(jì)算所述OAT格式文件中的oatdata和oatexec段,得到簽名SGN文件步驟之后,還包括,
將所述簽名SGN文件放入到原始的APK打包文件目錄META-INF下;
重新打包所述APK文件,將新的APK文件安裝到安卓系統(tǒng)中。
進(jìn)一步地,所述并加載安裝后的APK的可執(zhí)行代碼轉(zhuǎn)換而成的OAT簽名文件的步驟,包括,
將所述OAT簽名文件加載至AndroidART虛擬機(jī)的內(nèi)存內(nèi)。
進(jìn)一步地,所述判斷所述OAT簽名文件是否與簽名SGN文件一致的步驟,包括,
判斷APK對應(yīng)的META-INF下的所述簽名SGN文件是否被篡改,
若是,則禁止啟動APK,否則計(jì)算所述OAT簽名文件的Oatdata和oatexec段的HASH256值;
判斷所述OAT簽名文件的HASH256值和META-INF下的所述簽名SGN文件中保存的HASH256值是否一致,
若一致,則簽名驗(yàn)證成功,加載APK,
若不一致,則禁止啟動APK。
本發(fā)明還提出了一種安卓APK啟動時簽名認(rèn)證的裝置,包括:
簽名文件獲取單元,用于獲取由原始的APK安裝文件轉(zhuǎn)換而成的簽名SGN文件,并加載安裝后的APK的可執(zhí)行代碼轉(zhuǎn)換而成的OAT簽名文件;
更改判斷單元,用于判斷所述OAT簽名文件是否與簽名SGN文件一致,若是,加載APK,否則,禁止啟動APK。
進(jìn)一步地,還包括轉(zhuǎn)化單元,用于將原始的APK安裝文件轉(zhuǎn)換成OAT格式文件,并,通過HASH256+RSA2048算法計(jì)算所述OAT格式文件中的oatdata和oatexec段,得到簽名SGN文件。
進(jìn)一步地,還包括復(fù)原單元以及打包單元,
所述復(fù)原單元,用于將所述簽名SGN文件放入到原始APK打包文件目錄META-INF下;
所述打包單元,用于重新打包所述APK文件,將新的APK文件安裝到安卓系統(tǒng)中。
進(jìn)一步地,所述簽名文件獲取單元包括有加載模塊,所述加載模塊,用于將所述OAT簽名文件加載至AndroidART虛擬機(jī)的內(nèi)存內(nèi)。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于深圳大趨智能科技有限公司,未經(jīng)深圳大趨智能科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201780001547.5/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F21-00 防止未授權(quán)行為的保護(hù)計(jì)算機(jī)或計(jì)算機(jī)系統(tǒng)的安全裝置
G06F21-02 .通過保護(hù)計(jì)算機(jī)的特定內(nèi)部部件
G06F21-04 .通過保護(hù)特定的外圍設(shè)備,如鍵盤或顯示器
G06F21-06 .通過感知越權(quán)操作或外圍侵?jǐn)_
G06F21-20 .通過限制訪問計(jì)算機(jī)系統(tǒng)或計(jì)算機(jī)網(wǎng)絡(luò)中的節(jié)點(diǎn)
G06F21-22 .通過限制訪問或處理程序或過程
- 基于以太網(wǎng)認(rèn)證系統(tǒng)的認(rèn)證方法
- 認(rèn)證方法、認(rèn)證系統(tǒng)和認(rèn)證裝置
- 一種認(rèn)證方法和系統(tǒng)
- 一種認(rèn)證控制的方法,認(rèn)證服務(wù)器和系統(tǒng)
- 多認(rèn)證域認(rèn)證方法和裝置
- 一種認(rèn)證方法及系統(tǒng)
- 一種光線路終端對光網(wǎng)絡(luò)單元的認(rèn)證系統(tǒng)及認(rèn)證方法
- 身份認(rèn)證服務(wù)器、身份認(rèn)證終端、身份認(rèn)證系統(tǒng)及方法
- 一種網(wǎng)絡(luò)認(rèn)證方法
- 身份認(rèn)證器的初始化、身份認(rèn)證方法以及裝置





