CN106355081A - 一种安卓程序启动校验方法和装置 - Google Patents

一种安卓程序启动校验方法和装置 Download PDF

Info

Publication number
CN106355081A
CN106355081A CN201610812207.8A CN201610812207A CN106355081A CN 106355081 A CN106355081 A CN 106355081A CN 201610812207 A CN201610812207 A CN 201610812207A CN 106355081 A CN106355081 A CN 106355081A
Authority
CN
China
Prior art keywords
calibration
application program
program
arixtra
apk
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201610812207.8A
Other languages
English (en)
Inventor
李泽锦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Xinguodu Payment Technology Co Ltd
Original Assignee
Shenzhen Xinguodu Payment Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Xinguodu Payment Technology Co Ltd filed Critical Shenzhen Xinguodu Payment Technology Co Ltd
Priority to CN201610812207.8A priority Critical patent/CN106355081A/zh
Publication of CN106355081A publication Critical patent/CN106355081A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种安卓程序启动校验方法和装置,该方法包括以下步骤:S1、安装APK文件包并生成应用程序;S2、设置用于检校所述应用程序的检校单元,该检校单元还用于管理针对所述应用程序的访问权限;S3、检测应用程序的启动信号,启动检校单元并对应用程序进行检校,检校通过则启动应用程序。该装置用于执行对应的方法。该本发明为在APK安装之后,对安装完成的安卓程序进行再次的验证,通过程序完整性的验证,使得安装完成之后程序的安全性得到提升,避免因为木马或者不良连接等因素造成的安卓程序的修改导致的用户的损失,提高用户的安全性。

Description

一种安卓程序启动校验方法和装置
技术领域
本发明涉及一种安卓程序启动校验方法和装置,属于手机软件安全领域。
背景技术
作为安卓系统的安装程序APK文件包,主要由包括存放应用程序资源的Assets,应用引用的库文件Lib、签名文件Meta-inf、资源文件Res、配置文件AndroidManifest.xml、程序编译后的代码Classes.dex和编译后的二进制资源文件Resources.arsc。
在对APK文件包进行校验过程中,现有技术中所采用的方式是基于APK文件包中的签名文件Meta-inf进行校验,此种校验方式由于是利用签名文件对APK文件包进行整体校验,对于APK文件包被非法篡改,但是签名文件未改变的情况,仍然能够校验通过,导致校验的安全性降低。Android的流行使其已成为众多恶意软件的攻击目标,Android的木马、Rootkit和应用层特权提升攻击等3安全威胁更是不断出现,而其中APK正是大部分漏洞的攻击入口,APK的安全性至关重要,而现有的大部分主要安全防护方法主要即面对APK的保护,而对通过验证的安卓程序本身没有进行更多的防护,因此出现了通过一些不法连接或者其他木马程序导致原本正常的安卓程序被错误修改并对使用被修改的程序的用户造成危害。
本发明正是解决安卓程序安全问题的缺陷,在每次安卓程序重新启动时进行一次安全检查,保证安卓程序的安全性。
发明内容
为了解决上述问题,本发明通过提供一种安卓程序启动校验方法和装置。
本发明采用的技术方案一方面为一种安卓程序启动校验方法,包括以下步骤:S1、安装APK文件包并生成应用程序;S2、设置用于检校所述应用程序的检校单元,该检校单元还用于管理针对所述应用程序的访问权限;S3、检测应用程序的启动信号,启动检校单元并对应用程序进行检校,检校通过则启动应用程序。
优选地,所述步骤S1还包括基于签名信息进行APK文件包的完整性验证,安装APK文件包并生成应用程序。
优选地,所述步骤S1还包括获取远程服务器的公钥证书,所述公钥证书用于结合APK文件包的私钥,验证APK的安全性。
优选地,所述检校单元基于签名信息进行应用程序的文件的完整性验证。
优选地,所述检校单元还包括基于哈希比较验证动态库。
优选地,所述检校单元还包括提取APK文件包的OAT文件的哈希值并与应用程序的dex文件进行哈希比较。
本发明采用的技术方案另一方面为一种安卓程序启动校验装置,该装置包括:安装模块,用于安装APK文件包并生成应用程序;检测模块,用于设置用于检校所述应用程序的检校单元,该检校单元还用于管理针对所述应用程序的访问权限;启动模块,用于检测应用程序的启动信号,启动检校单元并对应用程序进行检校,检校通过则启动应用程序。
本发明的有益效果为在APK安装之后,对安装完成的安卓程序进行再次的验证,通过程序完整性的验证,使得安装完成之后程序的安全性得到提升,避免因为木马或者不良连接等因素造成的安卓程序的修改导致的用户的损失,提高用户的安全性。
附图说明
图1所示为基于本发明实施例的一种安卓程序启动校验方法的示意图;
图2所示为基于本发明实施例的一种安卓程序启动校验装置的示意图;
图3所示为基于本发明实施例的一种安卓程序启动校验流程示意图。
具体实施方式
以下结合实施例对本发明进行说明。
基于发明的实施例,如图1所示一种安卓程序启动校验方法,包括以下步骤:S1、安装APK文件包并生成应用程序;S2、设置用于检校所述应用程序的检校单元,该检校单元还用于管理针对所述应用程序的访问权限;S3、检测应用程序的启动信号,启动检校单元并对应用程序进行检校,检校通过则启动应用程序。
第一步,在智能设备上安装APK文件,第二步,设置一个用于连接应用程序启动操作与应用程序的检校单元,本方案的中技术体现为,例如,用户手动点击手机屏幕上已经安装完成的应用程序的图标,正常程序是应用程序立即启动,而基于本方案,首先被启动的是检校单元,检校单元对应用程序进行完整性等方面的检校,检校通过之后,检校单元启动应用程序(即判断是否有访问的权限,通过则可以访问,不通过则取消访问);所述应用程序的启动信号即触摸屏幕引起的要求应用程序启动的启动信号,同样,也能通过远程启动或者其他程序引起的联动启动(均归类为启动信号)。
所述步骤S1还包括基于签名信息进行APK文件包的完整性验证,安装APK文件包并生成应用程序。
Android对每一个Apk文件都会进行签名,在Apk文件安装时,系统会对其签名信息进行比对,判断程序的完整性,从而决定该Apk文件是否可以安装,在一定程度上达到安全的目的,而签名信息相关的文件包括:MANIFEST.MF:这是摘要文件,程序遍历Apk包中的所有文件(entry),对非文件夹非签名文件的文件,逐个用SHA1生成摘要信息,再用Base64进行编码,如果你改变了apk包中的文件,那么在apk安装校验时,改变后的文件摘要信息与MANIFEST.MF的检验信息不同,于是程序就不能成功安装;CERT.SF:这是对摘要的签名文件,对前一步生成的MANIFEST.MF,使用SHA1-RSA算法,用开发者的私钥进行签名,在安装时只能使用公钥才能解密它,解密之后,将它与未加密的摘要信息(即,MANIFEST.MF文件)进行对比,如果相符,则表明内容没有被异常修改;CERT.RSA文件中保存了公钥、所采用的加密算法等信息,系统对签名文件进行解密,所需要的公钥就是从这个文件里取出来的,这三个文件在apk META-INFO文件夹,结论:META-INFO里面的文件环环相扣,从而保证Android程序的安全性。
所述步骤S1还包括获取远程服务器的公钥证书,所述公钥证书用于结合APK文件包的私钥,验证APK的安全性。
一般公钥的存放是APK的文件里面,在解压安装的时候提取并应用于验证,本方案通过远程服务下载的方式,将提高公钥的安全性,而公钥的存放的远程服务器可以是提供APK的程序设计所在的公司,也可以是例如百度手机助手等可以信赖的软件提供网站(公钥为APK公司提供);
在APK安装的时候,先通过公钥私钥之间的验证,验证完整之后,正式进行APK的启动和安装。
所述检校单元基于签名信息进行应用程序的文件的完整性验证。
采用上述的签名信息的方式,为现有技术中较为成熟的技术,有利于降低方案的开发成本,也可以通过其他的例如文件完全校对等形式进行检校。
所述检校单元还包括基于哈希比较验证动态库。
已经完成验证的APK文件包,判读是否进行动态库的调用,如果有则计算SO库的hash值,与应用程序里面的data/app-lib下面的动态库进行哈希比较。
所述检校单元还包括提取APK文件包的OAT文件的哈希值并与应用程序的dex文件进行哈希比较。
提取APK文件包的OAT文件的哈希值与应用程序的data/dalvik-cache的dex文件进行哈希比较。
本基于发明的实施例,如图2所示一种安卓程序启动校验装置,该装置包括:安装模块,用于安装APK文件包并生成应用程序;检测模块,用于设置用于检校所述应用程序的检校单元,该检校单元还用于管理针对所述应用程序的访问权限;启动模块,用于检测应用程序的启动信号,启动检校单元并对应用程序进行检校,检校通过则启动应用程序。
本基于发明的实施例,如图3所示一种安卓程序启动校验流程示意图,第一步,启动应用程序;第二步,应用程序包完整性检查(包括1.验证应用程序中的每个文件的算法(数据摘要+Base64编码)和MANIFEST.MF文件中的对应属性块内容是否配对;2.验证CERT.SF文件的签名信息和CERT.RSA中的内容是否一致;3.MANIFEST.MF整个文件签名在CERT.SF文件中头属性中的值是否匹配以及验证MANIFEST.MF文件中的各个属性块的签名在CERT.SF文件中是否匹配;4.验证应用程序签名证书跟导入证书是否是同个证书,防止调包);第三步,动态库校验;第四步,DEX文件校验;第五步,校验完成,正常启动。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。

Claims (7)

1.一种安卓程序启动校验方法,其特征在于,包括以下步骤:
S1、安装APK文件包并生成应用程序;
S2、设置用于检校所述应用程序的检校单元,该检校单元还用于管理针对所述应用程序的访问权限;
S3、检测应用程序的启动信号,启动检校单元并对应用程序进行检校,检校通过则启动应用程序。
2.根据权利要求1所述的一种安卓程序启动校验方法,其特征在于,所述步骤S1还包括基于签名信息进行APK文件包的完整性验证,安装APK文件包并生成应用程序。
3.根据权利要求2所述的一种安卓程序启动校验方法,其特征在于,所述步骤S1还包括获取远程服务器的公钥证书,所述公钥证书用于结合APK文件包的私钥,验证APK的安全性。
4.根据权利要求1所述的一种安卓程序启动校验方法,其特征在于,所述检校单元基于签名信息进行应用程序的文件的完整性验证。
5.根据权利要求4所述的一种安卓程序启动校验方法,其特征在于,所述检校单元还包括基于哈希比较验证动态库。
6.根据权利要求4所述的一种安卓程序启动校验方法,其特征在于,所述检校单元还包括提取APK文件包的OAT文件的哈希值并与应用程序的dex文件进行哈希比较。
7.一种安卓程序启动校验装置,其特征在于,该装置包括:
安装模块,用于安装APK文件包并生成应用程序;
检测模块,用于设置用于检校所述应用程序的检校单元,该检校单元还用于管理针对所述应用程序的访问权限;
启动模块,用于检测应用程序的启动信号,启动检校单元并对应用程序进行检校,检校通过则启动应用程序。
CN201610812207.8A 2016-09-07 2016-09-07 一种安卓程序启动校验方法和装置 Pending CN106355081A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610812207.8A CN106355081A (zh) 2016-09-07 2016-09-07 一种安卓程序启动校验方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610812207.8A CN106355081A (zh) 2016-09-07 2016-09-07 一种安卓程序启动校验方法和装置

Publications (1)

Publication Number Publication Date
CN106355081A true CN106355081A (zh) 2017-01-25

Family

ID=57858320

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610812207.8A Pending CN106355081A (zh) 2016-09-07 2016-09-07 一种安卓程序启动校验方法和装置

Country Status (1)

Country Link
CN (1) CN106355081A (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106656513A (zh) * 2017-02-24 2017-05-10 福建魔方电子科技有限公司 安卓平台上apk文件的二次打包签名验证方法
CN107229549A (zh) * 2017-05-30 2017-10-03 梅婕 处理程序自动纠错方法
CN107273741A (zh) * 2017-05-18 2017-10-20 努比亚技术有限公司 一种系统运行方法及终端
CN107273742A (zh) * 2017-06-09 2017-10-20 广州涉川科技有限公司 一种安卓应用的授权安装方法、扫码支付终端、服务器及系统
CN107545181A (zh) * 2017-08-16 2018-01-05 上海策赢网络科技有限公司 程序运行方法、终端及计算机可读存储介质
CN107690643A (zh) * 2017-03-16 2018-02-13 深圳大趋智能科技有限公司 安卓apk启动时签名认证的方法及其装置
CN107908962A (zh) * 2017-12-05 2018-04-13 深圳鼎智通讯股份有限公司 应用于Android智能终端的自检方法
CN108074062A (zh) * 2017-08-08 2018-05-25 迅鳐成都科技有限公司 一种基于区块链的钢铁行业电商平台安全支撑方法
CN108446573A (zh) * 2018-02-28 2018-08-24 云宏信息科技股份有限公司 文件完整性检查方法及装置
CN109657480A (zh) * 2017-10-11 2019-04-19 中国移动通信有限公司研究院 一种文件处理方法、设备及计算机可读存储介质
CN110362990A (zh) * 2019-05-31 2019-10-22 口碑(上海)信息技术有限公司 应用安装的安全处理方法、装置及系统
CN110581833A (zh) * 2018-06-11 2019-12-17 中移(杭州)信息技术有限公司 一种业务安全保护方法及装置
CN110909345A (zh) * 2019-12-02 2020-03-24 中国银行股份有限公司 一种Java系统开源软件防篡改方法及系统
CN111274552A (zh) * 2020-01-07 2020-06-12 惠州市德赛西威汽车电子股份有限公司 一种升级包的签名及验签方法、存储介质
CN111950035A (zh) * 2020-06-18 2020-11-17 中国电力科学研究院有限公司 对apk文件完整性保护的方法、系统、设备及存储介质
CN112597485A (zh) * 2021-03-01 2021-04-02 腾讯科技(深圳)有限公司 基于区块链的信息校验方法、装置和设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140150096A1 (en) * 2012-11-26 2014-05-29 Electronics And Telecommunications Research Institute Method for assuring integrity of mobile applications and apparatus using the method
CN104049973A (zh) * 2014-06-25 2014-09-17 北京思特奇信息技术股份有限公司 安卓应用程序的安全验证方法及装置
CN105279425A (zh) * 2014-06-09 2016-01-27 中国移动通信集团公司 一种应用程序的处理方法和相关装置
CN105426708A (zh) * 2016-01-19 2016-03-23 北京鼎源科技有限公司 一种Android系统的应用程序的加固方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140150096A1 (en) * 2012-11-26 2014-05-29 Electronics And Telecommunications Research Institute Method for assuring integrity of mobile applications and apparatus using the method
CN105279425A (zh) * 2014-06-09 2016-01-27 中国移动通信集团公司 一种应用程序的处理方法和相关装置
CN104049973A (zh) * 2014-06-25 2014-09-17 北京思特奇信息技术股份有限公司 安卓应用程序的安全验证方法及装置
CN105426708A (zh) * 2016-01-19 2016-03-23 北京鼎源科技有限公司 一种Android系统的应用程序的加固方法

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106656513B (zh) * 2017-02-24 2019-09-13 福建魔方电子科技有限公司 安卓平台上apk文件的二次打包签名验证方法
CN106656513A (zh) * 2017-02-24 2017-05-10 福建魔方电子科技有限公司 安卓平台上apk文件的二次打包签名验证方法
CN107690643A (zh) * 2017-03-16 2018-02-13 深圳大趋智能科技有限公司 安卓apk启动时签名认证的方法及其装置
WO2018165951A1 (zh) * 2017-03-16 2018-09-20 深圳大趋智能科技有限公司 安卓apk启动时签名认证的方法及其装置
CN107273741A (zh) * 2017-05-18 2017-10-20 努比亚技术有限公司 一种系统运行方法及终端
CN107229549A (zh) * 2017-05-30 2017-10-03 梅婕 处理程序自动纠错方法
CN107273742A (zh) * 2017-06-09 2017-10-20 广州涉川科技有限公司 一种安卓应用的授权安装方法、扫码支付终端、服务器及系统
CN107273742B (zh) * 2017-06-09 2020-02-14 广州涉川科技有限公司 一种安卓应用的授权安装方法、扫码支付终端、服务器及系统
CN108074062A (zh) * 2017-08-08 2018-05-25 迅鳐成都科技有限公司 一种基于区块链的钢铁行业电商平台安全支撑方法
CN107545181A (zh) * 2017-08-16 2018-01-05 上海策赢网络科技有限公司 程序运行方法、终端及计算机可读存储介质
CN107545181B (zh) * 2017-08-16 2021-04-27 上海策赢网络科技有限公司 程序运行方法、终端及计算机可读存储介质
CN109657480A (zh) * 2017-10-11 2019-04-19 中国移动通信有限公司研究院 一种文件处理方法、设备及计算机可读存储介质
CN107908962A (zh) * 2017-12-05 2018-04-13 深圳鼎智通讯股份有限公司 应用于Android智能终端的自检方法
CN108446573A (zh) * 2018-02-28 2018-08-24 云宏信息科技股份有限公司 文件完整性检查方法及装置
CN110581833A (zh) * 2018-06-11 2019-12-17 中移(杭州)信息技术有限公司 一种业务安全保护方法及装置
CN110581833B (zh) * 2018-06-11 2022-08-23 中移(杭州)信息技术有限公司 一种业务安全保护方法及装置
CN110362990A (zh) * 2019-05-31 2019-10-22 口碑(上海)信息技术有限公司 应用安装的安全处理方法、装置及系统
CN110909345A (zh) * 2019-12-02 2020-03-24 中国银行股份有限公司 一种Java系统开源软件防篡改方法及系统
CN111274552A (zh) * 2020-01-07 2020-06-12 惠州市德赛西威汽车电子股份有限公司 一种升级包的签名及验签方法、存储介质
CN111950035A (zh) * 2020-06-18 2020-11-17 中国电力科学研究院有限公司 对apk文件完整性保护的方法、系统、设备及存储介质
CN112597485A (zh) * 2021-03-01 2021-04-02 腾讯科技(深圳)有限公司 基于区块链的信息校验方法、装置和设备及存储介质
CN112597485B (zh) * 2021-03-01 2021-06-08 腾讯科技(深圳)有限公司 基于区块链的信息校验方法、装置和设备及存储介质

Similar Documents

Publication Publication Date Title
CN106355081A (zh) 一种安卓程序启动校验方法和装置
US11120126B2 (en) Method and system for preventing and detecting security threats
CN102855274B (zh) 一种可疑进程检测的方法和装置
US8601583B1 (en) Certification of virtual machine images in cloud computing environments
US7788730B2 (en) Secure bytecode instrumentation facility
US20130031371A1 (en) Software Run-Time Provenance
JP2010033563A (ja) マルチパーティ検証のプラットフォームに基づく信用検証サービスに関する方法およびシステム
CN112749088B (zh) 应用程序检测方法、装置、电子设备和存储介质
CN106709281B (zh) 补丁发放和获取方法、装置
CN109657454A (zh) 一种基于tf密码模块的安卓应用可信验证方法
Kulkarni et al. Open source android vulnerability detection tools: a survey
US20150193619A1 (en) Technique for determining a malign or non-malign behavior of an executable file
US20220171886A1 (en) Authenticity verification
Qin et al. RIPTE: runtime integrity protection based on trusted execution for IoT device
CN116032484A (zh) 一种通信设备安全启动的方法、装置和电子设备
CN106971105B (zh) 一种基于iOS的应用程序遭遇假面攻击的防御方法
Msgna et al. Secure application execution in mobile devices
CN113177200A (zh) 应用程序包的管理方法、装置、计算机设备和存储介质
CN117494232B (zh) 固件的执行方法和装置、系统、存储介质及电子设备
Latifa et al. Permission Watcher Tool: a sandbox tool based static and Dynamic analysis for Android Apps
CN112416759A (zh) 安全管理方法、工控主机、计算机设备和存储介质
CN117519896A (zh) 基于镜像安全性检测功能的设计方法和系统
CN108334772A (zh) 一种Android应用签名攻击检测方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20170125

RJ01 Rejection of invention patent application after publication