CN106899593B - 一种app重打包验证方法和装置 - Google Patents

一种app重打包验证方法和装置 Download PDF

Info

Publication number
CN106899593B
CN106899593B CN201710109037.1A CN201710109037A CN106899593B CN 106899593 B CN106899593 B CN 106899593B CN 201710109037 A CN201710109037 A CN 201710109037A CN 106899593 B CN106899593 B CN 106899593B
Authority
CN
China
Prior art keywords
app
information
verification
verifying
repackaging
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.)
Active
Application number
CN201710109037.1A
Other languages
English (en)
Other versions
CN106899593A (zh
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 National Engineering Laboratory Of Digital Television Co ltd
Original Assignee
Shenzhen National Engineering Laboratory Of Digital Television 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 National Engineering Laboratory Of Digital Television Co ltd filed Critical Shenzhen National Engineering Laboratory Of Digital Television Co ltd
Priority to CN201710109037.1A priority Critical patent/CN106899593B/zh
Publication of CN106899593A publication Critical patent/CN106899593A/zh
Application granted granted Critical
Publication of CN106899593B publication Critical patent/CN106899593B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种APP重打包验证方法和装置,该方法包括为APP设置若干流程标记,所述流程标记用于激活并输出检校信息;验证本地系统是否为定制系统,所述定制系统用于支持APP运行,接受APP发出的检校信息并验证;启动APP,APP基于流程标记激活并输出检校信息,所述定制系统接收并验证检校信息,基于验证结果修改APP的访问权限。该装置用于执行对应方法。本发明通过建立一个流程运行检测机制,通过在APP设定流程的节点,当检测APP运行流程经过该流程节点的时候,发出对应流程的签名信息到系统进行验证,系统基于验证结果对APP运行进行控制,在系统层面对APP进行验证和控制处理,能够独立验证被修改的APP并增加对APP运行的控制能力。

Description

一种APP重打包验证方法和装置
技术领域
本发明涉及一种APP重打包验证方法和装置,属于Android系统领域。
背景技术
因为Android的开放性以及google play在国内的无法正常工作,Android平台的恶意应用问题一直非常突出。各个应用商店和论坛的应用管理非常混乱,其中二次重打包添加广告甚至添加恶意代码是国内恶意应用泛滥的重要原因。另外,对android应用的非法调试往往也需要利用二次重打包技术,防止和检测应用重打包具有非常重要的安全意义。二次重打包技术,往往通过逆向apk代码,修改或添加代码逻辑,而后利用恶意者自己生成的密钥对重新对修改的apk代码进行签名打包,发布到apk商店或论坛,危害重大。
现有技术一般通过第三方的终端监测或者专门的检测中心实现对重打包应用的检测,适合第三方安全软件商以及应用商店应用检测机构。业务运营商因为缺少对终端环境的把控,使得应用本身很难检测旗下应用是否被重打包,重打包应用往往对应用和业务逻辑进行调试,添加广告外链,损害业务运营商的用户体验和业绩。
发明内容
为了解决上述问题,本发明通过提供一种APP重打包验证方法和装置。
本发明采用的技术方案一方面为一种APP重打包验证方法,包括以下步骤:为APP设置若干流程标记,所述流程标记用于激活并输出检校信息;验证本地系统是否为定制系统,所述定制系统用于支持APP运行,接受APP发出的检校信息并验证;启动APP,APP基于流程标记激活并输出检校信息,所述定制系统接收并验证检校信息,基于验证结果修改APP的访问权限。
优选地,所述流程标记基于APP接口调用记录激活检校信息输出指令,该检校信息输出指令用于调用数字签名信息,整合数字签名信息和流程标记ID,标记整合之后的信息为检校信息。
优选地,所述APP输出系统识别指令至本地系统,基于本地系统的系统ID验证本地系统是否为定制系统。
优选地,所述定制系统基于流程标记ID读取预设的数字签名信息以验证检校信息。
优选地,所述定制系统接收并验证检校信息,如果检校结果为不通过则生成验证反馈信息并发送至APP服务器的客服单元。
优选地,所述定制系统接收并验证检校信息,如果检校结果为不通过则生成图形化的异常提醒信息并输出。
本发明采用的技术方案另一方面为一种APP重打包验证装置,该装置用于执行以下步骤:为APP设置若干流程标记,所述流程标记用于激活并输出检校信息;验证本地系统是否为定制系统,所述定制系统用于支持APP运行,接受APP发出的检校信息并验证;启动APP,APP基于流程标记激活并输出检校信息,所述定制系统接收并验证检校信息,基于验证结果修改APP的访问权限。
本发明的有益效果为建立一个流程运行检测机制,通过在APP设定流程的节点,当检测APP运行流程经过该流程节点的时候,发出对应流程的签名信息到系统进行验证,系统基于验证结果对APP运行进行控制,在系统层面对APP进行验证和控制处理,能够独立验证被修改的APP并增加对APP运行的控制能力。
附图说明
图1所示为基于本发明实施例的一种APP重打包验证方法的步骤的示意图。
具体实施方式
以下结合实施例对本发明进行说明。
基于发明的实施例1,一种APP重打包验证方法,包括以下步骤:为APP设置若干流程标记,所述流程标记用于激活并输出检校信息;验证本地系统是否为定制系统,所述定制系统用于支持APP运行,接受APP发出的检校信息并验证;启动APP,APP基于流程标记激活并输出检校信息,所述定制系统接收并验证检校信息,基于验证结果修改APP的访问权限。
APP在运行的时候,会依据设定的流程/步骤逐步的运行,通过执行不同的指令,调动不同的资源来完成运作;在这些流程中,通过增加若干个节点,当APP的流程/步骤到达这些节点的时候,则输出检校信息(主要基于各种数字签名信息,也可以是截至该节点位置的运行记录,即目前为止进行何种操作,例如读取何种资源,调用何种接口等记录)到系统,系统根据预设的资料和检校信息进行比对验证;设置节点的方式为在APP增加标记,该标记用于检测APP是否运行到某个节点(或者作为程序运行环节的一部分,即某个步骤完成之后,不是直接下一个流程而是激活这个标记),当该标记被触发之后,会激活一个读取程序,读取APP内置的签名信息等用于验证完整性的检校信息并输出到本地的系统(即APP运行的平台),本地系统基于验证结果决定对APP的支持,如果验证不通过则拒绝APP对本地系统资源的访问。
所述流程标记基于APP接口调用记录激活检校信息输出指令,该检校信息输出指令用于调用数字签名信息,整合数字签名信息和流程标记ID,标记整合之后的信息为检校信息。
APP在运行过程中,一定会进行各种接口的调用,流程标记通过检测接口调用的情况,确定APP运行所处的流程,当然确认APP运行到某个流程的时候,则激活检校信息输出指令,该指令会调用数字签名信息,并且整合流程标记ID(用于标识现在所处的流程,因为不同流程,其经历和内容都不一致,可以针对性的输出不同的数字签名信息,本地系统也能据此读取对应的用于验证的信息)。
所述APP输出系统识别指令至本地系统,基于本地系统的系统ID验证本地系统是否为定制系统。
APP在运行的第一步就是发送一条系统识别的指令,通过本地系统的ID比较,可以知道APP现在运行的系统是否为所需的定制系统(定制系统存储有验证信息)。
所述定制系统基于流程标记ID读取预设的数字签名信息以验证检校信息。
所述定制系统接收并验证检校信息,如果检校结果为不通过则生成验证反馈信息并发送至APP服务器的客服单元。
定制系统可以将检校结果发送到APP的服务器的客服单元(例如支付宝,则发生到阿里巴巴公司与支付相关的客服),告知APP的正牌供应商,发现有被重打包的APP,同时将该重打包的APP的相关的版本,来源,异常位置等信息反馈给APP的正牌供应商。
所述定制系统接收并验证检校信息,如果检校结果为不通过则生成图形化的异常提醒信息并输出。
定制系统还有通过发出一个图形化的信息,例如出现一个提醒框在显示器上,那么在APP运行至某个环节,会出现一个提醒信息说明正在使用的APP存在风险。
基于发明的实施例2,一种APP重打包验证装置,该装置用于执行以下步骤:为APP设置若干流程标记,所述流程标记用于激活并输出检校信息;验证本地系统是否为定制系统,所述定制系统用于支持APP运行,接受APP发出的检校信息并验证;启动APP,APP基于流程标记激活并输出检校信息,所述定制系统接收并验证检校信息,基于验证结果修改APP的访问权限。
基于发明的实施例3,包括签名服务,APP,应用系统和验证模块四个模块。其中,签名服务是系统可信的后台服务,提供签名接口给APP调用,签名服务主要对当前调用该接口的安装信息(app的开发者公钥,APP摘要值,包名),运行信息(apk加载资源,apk权限)等应用信息进行签名,签名密钥由系统维护,存放在安全芯片或可信执行环境等安全场景下。应用系统在主要业务逻辑(即APP流程)运行前通过调用验证模块设置检测点,验证不通过则表示当前应用被重打包,可以拒绝APP访问或告警后台。APP需要与应用系统后台一致,在执行主要业务逻辑运行前调用签名服务接口以便供验证模块。APK信息是指APK的开发者公钥/证书,摘要值,包名,版本号等应用信息,可能有一至若干个,在发布APP前部署到验证模块。验证签名信息,与密钥/密钥链对应,包括验证数字签名的公钥(证书)或公钥链(证书链)。
第一步,(1)设置检测点:在主要业务逻辑执行前设置若干检测点,检测点即应用系统调用验证模块或者由APP调研签名服务,检测点基于业务逻辑设计(例如支付宝包括开启,输入金额,确认等业务,根据重要程度设置流程点)。(2)密钥和信息供给:签名服务模块与验证模块通过线下或线上协商密钥。密钥使用符合相关非对称算法的密钥;签名的密钥对可以跟app对应,即不同的app临时生成不同的公私钥对,但公钥必须通过固化在设备中的设备密钥签名,形成密钥链。系统厂商向业务开发商公开签名对应的公钥(证书)或设备公钥(证书),验证模块把该公钥(证书)作为验证签名信息。验证模块通过线下方式获取APK信息和验证签名信息。
第二步,APP特定业务逻辑处调用签名服务接口。签名信息包括签名服务模块返回的时间戳,相关的签名公钥或证书链(存在设备密钥时,设备私钥对签名公钥相关信息签名形成证书)以及app开发者的公钥和系统层可获取的应用信息。签名服务模块对应用的签名服务进行签名响应,签名内容包括对开发者app的公钥提取和应用信息获得,时间戳。响应给app签名值,时间戳,开发者公钥,应用信息,签名的公钥或证书链。
第三步,APP在特定业务逻辑检查点处提交签名值和签名信息进行报告,应用系统在对应的业务逻辑检查点请求验证模块进行验证。
第四步,验证模块对签名信息和签名值进行验证。首先,使用验证签名信息验证签名公钥。若签名信息包含证书链,则逐级验证证书链的公钥,直至验证签名公钥;否则签名信息只包含签名对应的公钥,对把该公钥与验证签名信息的公钥比对。签名公钥验证不通过则直接返回给应用系统检验不通过错误码。其次,验证签名值。使用签名公钥对签名值进行验证,比对签名信息的摘要。不通过则直接返回给应用系统检验不通过错误码。最后,比对签名信息的时间戳,开发者公钥,应用信息,当时间戳是许可时间且开发者公钥/app摘要值与APK相符,则通过验证,返回验证正确码。否则当时间戳不在许可范围内,或者开发者公钥/app摘要值与APK不相符时,则说明验证不通过,返回错误码,app公钥,应用信息,时间戳,应用系统接收验证模块的返回码,当验证通过,则执行后续业务逻辑。否则验证不通过,把app公钥,应用信息,时间戳进行后台记录告警或者拒绝后续业务逻辑运行。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。

Claims (6)

1.一种APP重打包验证方法,其特征在于,包括以下步骤:
为APP设置若干流程标记,所述流程标记基于APP接口调用记录激活检校信息输出指令,该检校信息输出指令用于调用数字签名信息,整合数字签名信息和流程标记ID,标记整合之后的信息为检校信息;
验证本地系统是否为定制系统,所述定制系统用于支持APP运行,接受APP发出的检校信息并验证;
启动APP,APP基于流程标记激活并输出检校信息,所述定制系统接收并验证检校信息,基于验证结果修改APP的访问权限。
2.根据权利要求1所述的一种APP重打包验证方法,其特征在于,所述APP输出系统识别指令至本地系统,基于本地系统的系统ID验证本地系统是否为定制系统。
3.根据权利要求1所述的一种APP重打包验证方法,其特征在于,所述定制系统基于流程标记ID读取预设的数字签名信息以验证检校信息。
4.根据权利要求1所述的一种APP重打包验证方法,其特征在于,所述定制系统接收并验证检校信息,如果检校结果为不通过则生成验证反馈信息并发送至APP服务器的客服单元。
5.根据权利要求1所述的一种APP重打包验证方法,其特征在于,所述定制系统接收并验证检校信息,如果检校结果为不通过则生成图形化的异常提醒信息并输出。
6.一种APP重打包验证装置,其特征在于,该装置用于执行以下步骤:
为APP设置若干流程标记,所述流程标记用于激活并输出检校信息;
验证本地系统是否为定制系统,所述定制系统用于支持APP运行,接受APP发出的检校信息并验证;
启动APP,APP基于流程标记激活并输出检校信息,所述定制系统接收并验证检校信息,基于验证结果修改APP的访问权限。
CN201710109037.1A 2017-02-27 2017-02-27 一种app重打包验证方法和装置 Active CN106899593B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710109037.1A CN106899593B (zh) 2017-02-27 2017-02-27 一种app重打包验证方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710109037.1A CN106899593B (zh) 2017-02-27 2017-02-27 一种app重打包验证方法和装置

Publications (2)

Publication Number Publication Date
CN106899593A CN106899593A (zh) 2017-06-27
CN106899593B true CN106899593B (zh) 2021-02-02

Family

ID=59184259

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710109037.1A Active CN106899593B (zh) 2017-02-27 2017-02-27 一种app重打包验证方法和装置

Country Status (1)

Country Link
CN (1) CN106899593B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110096870A (zh) * 2019-04-12 2019-08-06 上海瀚银信息技术有限公司 一种防止应用程序被二次打包的方法及系统
CN110753316B (zh) * 2019-09-26 2022-04-26 贝壳技术有限公司 信息发送方法和装置、计算机可读存储介质、电子设备
CN114301655B (zh) * 2021-12-20 2023-03-24 天翼爱音乐文化科技有限公司 基于Android的数据安全传输方法、系统、装置及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106326723A (zh) * 2016-08-16 2017-01-11 青岛海信电器股份有限公司 Apk签名认证的方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9009856B2 (en) * 2011-12-16 2015-04-14 Dell Products L.P. Protected application programming interfaces
CN103365644B (zh) * 2012-04-10 2016-05-11 腾讯科技(深圳)有限公司 一种扩展软件功能的方法及装置
US9374369B2 (en) * 2012-12-28 2016-06-21 Lookout, Inc. Multi-factor authentication and comprehensive login system for client-server networks
CN104539432B (zh) * 2014-12-31 2016-09-28 深圳市奇付通科技有限公司 一种对文件进行签名的方法和装置
CN106022098A (zh) * 2016-05-10 2016-10-12 青岛海信传媒网络技术有限公司 一种应用程序的签名验证方法和装置
CN106209379B (zh) * 2016-07-04 2019-09-10 江苏先安科技有限公司 一种Android APK副署签名及验证方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106326723A (zh) * 2016-08-16 2017-01-11 青岛海信电器股份有限公司 Apk签名认证的方法及装置

Also Published As

Publication number Publication date
CN106899593A (zh) 2017-06-27

Similar Documents

Publication Publication Date Title
CN106775716B (zh) 一种基于度量机制的可信plc启动方法
CN107615292B (zh) 用于管理需要高风险权限访问的应用程序包的安装的系统和方法
US10031743B2 (en) Method and apparatus for kernel repair and patching
US20160197950A1 (en) Detection system and method for statically detecting applications
CN108763951B (zh) 一种数据的保护方法及装置
CN106899593B (zh) 一种app重打包验证方法和装置
CN113014475B (zh) 消息推送集成方法、装置
CN110069266A (zh) 应用升级方法、装置、计算机设备以及存储介质
CN111147259B (zh) 鉴权方法和设备
CN110598377A (zh) 基于区块链的软件序列号管理方法以及装置
CN110673993A (zh) 一种故障注入方法、平台及系统
CN111737304B (zh) 一种区块链数据的处理方法、装置及设备
US20220277083A1 (en) Backdoor inspection device, user device, system, method, and non-transitory computer-readable medium
CN108763934B (zh) 数据处理方法及装置、存储介质、服务器
CN112464176B (zh) 一种权限管理方法、装置、电子设备及存储介质
CN112650557B (zh) 一种命令执行方法以及装置
CN115567218A (zh) 基于区块链的安全证书的数据处理方法、装置和服务器
CN113868628A (zh) 一种签名验证方法、装置、计算机设备和存储介质
CN108228219B (zh) 一种带外刷新bios时验证bios合法性的方法及装置
CN113177200A (zh) 应用程序包的管理方法、装置、计算机设备和存储介质
CN112015494A (zh) 第三方api工具调用方法、系统及装置
CN113169963A (zh) 用于处理分布式自动化系统中的应用程序的方法
CN110647771A (zh) 一种mysql数据库存储完整性校验保护方法及装置
CN117938405B (zh) 多云环境下的cdn服务编排方法、装置、设备及存储介质
CN117494232B (zh) 固件的执行方法和装置、系统、存储介质及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant