CN108923910B - 一种移动应用apk防篡改的方法 - Google Patents

一种移动应用apk防篡改的方法 Download PDF

Info

Publication number
CN108923910B
CN108923910B CN201810763998.9A CN201810763998A CN108923910B CN 108923910 B CN108923910 B CN 108923910B CN 201810763998 A CN201810763998 A CN 201810763998A CN 108923910 B CN108923910 B CN 108923910B
Authority
CN
China
Prior art keywords
apk
server
cyclic redundancy
redundancy check
digital signature
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
CN201810763998.9A
Other languages
English (en)
Other versions
CN108923910A (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.)
China Southern Power Grid Co Ltd
Research Institute of Southern Power Grid Co Ltd
Original Assignee
China Southern Power Grid Co Ltd
Research Institute of Southern Power Grid 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 China Southern Power Grid Co Ltd, Research Institute of Southern Power Grid Co Ltd filed Critical China Southern Power Grid Co Ltd
Priority to CN201810763998.9A priority Critical patent/CN108923910B/zh
Publication of CN108923910A publication Critical patent/CN108923910A/zh
Application granted granted Critical
Publication of CN108923910B publication Critical patent/CN108923910B/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/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms

Landscapes

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

Abstract

本发明公开了一种移动应用APK防篡改的方法,首先获取移动应用APK的数字签名与循环冗余校验码,加密后保存在服务器中,将移动应用APK发布到网络上供用户下载并安装使用后,客户端每次网络访问请求都需要发送与服务器采用同样加密方式加密的数字签名与循环冗余校验码,验证通过后服务器与客户端才能通过网络连接进行数据交互,所述移动应用APK防篡改的方法,通过在客户端每次进行网络访问时与服务器校验APK经过加密的数字签名与循环冗余校验码,为移动应用APK防篡改提供了一种全新且简便快捷的方式,可有效避免APK被篡改放入恶意代码,更好地保障用户的数据安全与自身利益。

Description

一种移动应用APK防篡改的方法
技术领域
本发明涉及信息安全领域,尤其涉及一种移动应用APK防篡改的方法。
背景技术
APK即Android安装包,是Android操作系统上的移动应用程序安装文件格式,由于Android自身的开源特性,导致APK代码容易被反编译,通过反编译APK文件,进行代码的分析、修改和插入,再重新打包为新的APK文件,以达到改变程序原有行为的目的,即实现对APK的篡改。
据统计现在中国独立APP数量早已突破50万,APP开发市场日渐火热,而部分不法分子通过破解、反编译、篡改代码、插入广告等手段为自己谋取巨额利润,移动应用APK被篡改的主要原因是开发者在防止APK被篡改、反编译等方面不够重视或技术不够完善。篡改移动应用APK的行为已经严重影响到了移动应用开发者的利益和移动应用开发行业的健康发展。
现今对于APK的防篡改防护,较为常用的手段有,通过修改DEX文件来增加篡改难度,或是在APK运行时进行签名验证和循环冗余校验码验证,前者需要对APK代码进行修改和再编译,增加了开发人员的工作量,且容易被攻破;而后者的验证代码容易被黑客注销导致不能起到应有的作用。
发明内容
鉴以此,本发明的目的在于提供一种移动应用APK防篡改的方法,以至少解决以上问题。
一种移动应用APK防篡改的方法,包括以下步骤:
S1、获取移动应用APK的数字签名与循环冗余校验码,加密后保存在服务器中;
S2、将移动应用APK发布到网络上供用户下载并安装使用;
S3、用户通过APK安装的客户端每次网络访问请求都需要上传与服务器采用相同加密方式加密的数字签名与循环冗余校验码进行验证;
S4、服务器对客户端上传的数字签名与循环冗余校验码进行验证,验证通过后才允许客户端与服务器进行数据交互。
进一步的,所述数字签名与循环冗余校验码使用AES算法进行加密。
进一步的,步骤S3中,客户端上传经过加密的数字签名与循环冗余校验码前,对服务器证书pin码进行验证。
进一步的,对服务器证书pin码进行验证包括以下步骤:
S1、获取服务器的证书pin码;
S2、将服务器的证书pin码封装到移动应用APK中;
S3、在客户端进行网络访问前验证网络连接对象的证书pin码与预设的服务器pin码是否一致,若一致客户端上传经过加密的数字签名与循环冗余校验码进行验证;若不一致则停止向该网络连接对象发送数据。
进一步的,在移动应用APK中设置共享对象库并通过所述共享对象库获取、保存经过加密的数字签名与循环冗余校验码。
进一步的,所述共享对象库设有外壳保护程序。
与现有技术相比,本发明的有益效果是:
本发明所提供的移动应用APK防篡改的方法,通过利用移动应用APK自身特有的数字签名与循环冗余校验码,在客户端每次进行网络访问时与服务器进行验证,使黑客不能注销APK的验证代码,且难以获取正确的循环冗余校验码,本方法充分利用了APK的自身特性,简便易行,可以有效防止APK被恶意篡改,保障用户的数据安全与利益。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的优选实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的移动应用APK防篡改方法流程示意图。
图2是本发明实施例的服务器证书pin码验证流程示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所列举实施例只用于解释本发明,并非用于限定本发明的范围。
本发明提供了一种移动应用APK防篡改的方法,参照图1,所述方法包括以下步骤:
S1、获取移动应用APK的数字签名与循环冗余校验码,加密后保存在服务器中。
所述数字签名和循环冗余校验码用于发送者的身份认证,数字签名和循环冗余校验码都是根据APK文件的具体内容计算得出,因此一旦文件被修改后,对应的数字签名和循环冗余校验码也会改变,通常用于确认APK由其开发商或官方渠道进行发布。本步骤中,首先获取移动应用APK的数字签名与循环冗余校验码,并对其进行加密。经过加密后的数字签名与循环冗余校验码存放在为通过APK文件安装的移动应用客户端提供服务支持的服务器中。
S2、将移动应用APK发布到网络上供用户下载并安装使用。
本步骤中,移动应用的开发商或官方渠道将移动应用APK文件发布到网上供用户下载使用。
S3、用户通过APK安装的客户端每次网络访问请求都需要上传与服务器采用相同加密方式加密的数字签名与循环冗余校验码进行验证。
本步骤中,用户下载移动应用APK文件后执行该文件以安装移动应用客户端,在使用客户端时,客户端通过网络访问服务器以进行数据交互。而客户端每次向服务器发送网络访问请求前,都需要上传与服务器采用相同加密方式进行加密的数字签名与循环冗余校验码进行验证。
S4、服务器对客户端上传的数字签名与循环冗余校验码进行验证,验证通过后才允许客户端与服务器进行数据交互。
本步骤中,服务器将预先存储的经过加密后的数字签名与循环冗余校验码与客户端上传的数字签名与循环冗余校验码进行比对,如果比对结果符合,服务器将允许该客户端的网络访问请求,并与该客户端进行数据交互;如果比对结果不符合,服务器将向该客户端发送消息以提示用户正在使用的客户端可能被恶意篡改,请到官方渠道下载原版APK文件重新安装客户端。
以往的APK防篡改方法中在APK运行时进行数字签名验证和循环冗余校验码验证,而此方法的验证代码容易被人为注销,无法正常进行验证,导致防篡改功能失效。而在本方法中,黑客不能注销APK的验证代码,因为客户端在每次需要进行网络访问时,服务器必须接受到正确的数字签名和循环冗余校验码才会接受客户端的网络访问请求,否则客户端将无法正常使用,用户自然会删除被篡改的客户端。而黑客也不能通过插入代码获取经过加密的循环冗余校验码,因为循环冗余校验码具备唯一性,当APK文件发生改变时,与其相应的循环冗余校验码也会改变,黑客所获取到的循环冗余校验码将无法通过服务器的验证,黑客将无法通过篡改客户端谋取不法利益,用户的数据安全与利益也能够得到有效保障。
参照图2,在本发明的一个实施例中,步骤S3中,客户端上传数字签名与循环冗余校验码前,对服务器的证书pin码进行验证,所述验证包括以下步骤:
S1、获取服务器的证书pin码;
S2、将服务器的证书pin码封装到移动应用APK中;
S3、在客户端进行网络访问前验证网络连接对象的证书pin码与预设的服务器pin码是否一致,若一致客户端上传经过加密的数字签名与循环冗余校验码进行验证;若不一致则停止向该网络连接对象发送数据。
在客户端向服务器发送数字签名与循环冗余校验码时,如果黑客在传输过程中对数据进行拦截,数字签名和循环冗余校验码可能会泄露,因此,在移动应用APK中封装对应于服务器的证书pin码,在客户端发送数字签名与循环冗余校验码之前,验证接收服务器的证书pin码是否与预设的服务器证书pin码一致,如果一致,则继续向该服务器发送数字签名与循环冗余校验码进行验证以进行网络访问;如果不一致,则停止发送数字签名与循环冗余校验码。通过该验证流程可以有效防止黑客通过网络拦截手段获取数字签名和循环冗余校验码,保障客户端与服务器之间网络通信的安全。
在本发明的一个实施例中,移动应用APK设有共享对象库,所述共享对象库用于获取并保存经过加密的数字签名与循环冗余校验码,所述共享对象库设有外壳保护。当需要调取共享对象库内的数据时,首先执行的是共享对象库的外壳程序,当外壳程序运行在内存中时,将其内部的共享对象库代码在内存中解压缩,并将控制权交还给内部的共享对象库,以进行数字签名与循环冗余校验码的获取、保存或调用,由于这段操作发生在内存中,黑客难以得知具体运行过程,并且不会影响到移动应用APK的运行速度,黑客难以攻破具有外壳保护的共享对象库,更难以获取其中的数字签名与循环冗余校验码,提高了移动应用APK的防篡改性能。
具体的,对数字签名和循环冗余校验码的加密采取AES加密算法,该算法是对称秘钥加密中最流行的算法之一,无论是在软件或是硬件上都能够快速地进行加解密,相对于其他加密算法更易于实现,并且所需要占用的存储器容量较小,适用于移动应用APK文件的应用场景。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种移动应用的Android安装包APK防篡改的方法,其特征在于,所述方法包括以下步骤:
S1、获取APK的数字签名与循环冗余校验码,加密后保存在服务器中;
S2、将APK发布到网络上供用户下载并安装使用;
S3、用户通过APK安装的客户端每次网络访问请求都上传与服务器采用相同加密方式加密的数字签名与循环冗余校验码进行验证;
S4、服务器对客户端上传的数字签名与循环冗余校验码进行验证,验证通过后才允许客户端与服务器进行数据交互,所述验证具体为服务器将预先存储的经过加密后的数字签名与循环冗余校验码与客户端上传的数字签名与循环冗余校验码进行比对。
2.根据权利要求1所述的一种移动应用的Android安装包APK防篡改的方法,其特征在于,所述数字签名与循环冗余校验码使用AES算法进行加密。
3.根据权利要求1所述的一种移动应用的Android安装包APK防篡改的方法,其特征在于,步骤S3中,客户端上传经过加密的数字签名与循环冗余校验码前,对服务器证书pin码进行验证。
4.根据权利要求3所述的一种移动应用的Android安装包APK防篡改的方法,其特征在于,对服务器证书pin码进行验证包括以下步骤:
S1:获取服务器的证书pin码;
S2:将服务器的证书pin码封装到APK中;
S3:在客户端进行网络访问前验证服务器的证书pin码与预设的服务器的证书pin码是否一致,若一致客户端上传经过加密的数字签名与循环冗余校验码进行验证;若不一致则停止向该服务器发送数据。
5.根据权利要求1所述的一种移动应用的Android安装包APK防篡改的方法,其特征在于,在APK中设置共享对象库并通过所述共享对象库获取和保存经过加密的数字签名与循环冗余校验码。
6.根据权利要求5所述的一种移动应用的Android安装包APK防篡改的方法,其特征在于,所述共享对象库设有外壳保护程序。
CN201810763998.9A 2018-07-12 2018-07-12 一种移动应用apk防篡改的方法 Active CN108923910B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810763998.9A CN108923910B (zh) 2018-07-12 2018-07-12 一种移动应用apk防篡改的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810763998.9A CN108923910B (zh) 2018-07-12 2018-07-12 一种移动应用apk防篡改的方法

Publications (2)

Publication Number Publication Date
CN108923910A CN108923910A (zh) 2018-11-30
CN108923910B true CN108923910B (zh) 2021-06-25

Family

ID=64411118

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810763998.9A Active CN108923910B (zh) 2018-07-12 2018-07-12 一种移动应用apk防篡改的方法

Country Status (1)

Country Link
CN (1) CN108923910B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111259387B (zh) * 2018-12-03 2021-06-15 上海掌门科技有限公司 一种检测被篡改的应用的方法及设备
CN110943976B (zh) * 2019-11-08 2022-01-18 中国电子科技网络信息安全有限公司 一种基于口令的用户签名私钥管理方法
CN112597485B (zh) * 2021-03-01 2021-06-08 腾讯科技(深圳)有限公司 基于区块链的信息校验方法、装置和设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001044902A3 (en) * 2000-08-21 2001-11-15 Authoriszor Ltd System and method for extensible positive client identification
CN102982258A (zh) * 2012-11-09 2013-03-20 北京深思洛克软件技术股份有限公司 一种对移动应用程序进行原版校验的系统
US8756432B1 (en) * 2012-05-22 2014-06-17 Symantec Corporation Systems and methods for detecting malicious digitally-signed applications
CN104049973A (zh) * 2014-06-25 2014-09-17 北京思特奇信息技术股份有限公司 安卓应用程序的安全验证方法及装置
CN104393992A (zh) * 2014-10-20 2015-03-04 贵阳朗玛信息技术股份有限公司 应用程序包的验证方法及装置
US9009856B2 (en) * 2011-12-16 2015-04-14 Dell Products L.P. Protected application programming interfaces
CN105320535A (zh) * 2014-08-04 2016-02-10 优视科技有限公司 一种安装包的校验方法、客户端、服务器及系统
CN107729746A (zh) * 2017-11-28 2018-02-23 郑州云海信息技术有限公司 一种基于数字签名的已安装应用程序防篡改方法及系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001044902A3 (en) * 2000-08-21 2001-11-15 Authoriszor Ltd System and method for extensible positive client identification
US9009856B2 (en) * 2011-12-16 2015-04-14 Dell Products L.P. Protected application programming interfaces
US8756432B1 (en) * 2012-05-22 2014-06-17 Symantec Corporation Systems and methods for detecting malicious digitally-signed applications
CN102982258A (zh) * 2012-11-09 2013-03-20 北京深思洛克软件技术股份有限公司 一种对移动应用程序进行原版校验的系统
CN104049973A (zh) * 2014-06-25 2014-09-17 北京思特奇信息技术股份有限公司 安卓应用程序的安全验证方法及装置
CN105320535A (zh) * 2014-08-04 2016-02-10 优视科技有限公司 一种安装包的校验方法、客户端、服务器及系统
CN104393992A (zh) * 2014-10-20 2015-03-04 贵阳朗玛信息技术股份有限公司 应用程序包的验证方法及装置
CN107729746A (zh) * 2017-11-28 2018-02-23 郑州云海信息技术有限公司 一种基于数字签名的已安装应用程序防篡改方法及系统

Also Published As

Publication number Publication date
CN108923910A (zh) 2018-11-30

Similar Documents

Publication Publication Date Title
CN110597538B (zh) 一种基于ota升级系统的软件升级方法和ota升级系统
KR101063076B1 (ko) 소프트웨어 업데이트 보안 방법
US10027683B2 (en) Shared symmetric key encryption
CN109194625B (zh) 一种基于云端服务器的客户端应用保护方法、装置及存储介质
US20030196096A1 (en) Microcode patch authentication
RU2628492C2 (ru) Телекоммуникационная чип-карта
CN108923910B (zh) 一种移动应用apk防篡改的方法
CN110795126A (zh) 一种固件安全升级系统
CN111404696A (zh) 协同签名方法、安全服务中间件、相关平台及系统
CN112882750A (zh) Ota升级包的处理方法、装置和电子设备
CN109640175B (zh) 一种基于视频文件的区块链加解密方法
CN106330936A (zh) 一种插件数据传输方法、客户端和服务端
CN104780445A (zh) 一种机顶盒软件防恶意升级的方法及系统
CN113395406B (zh) 一种基于电力设备指纹的加密认证方法及系统
CN110572454A (zh) 一种保障广告投放过程安全的广告投放系统
CN111901287B (zh) 一种为轻应用提供加密信息的方法、装置和智能设备
CN115391750B (zh) 一种算法授权方法、装置、电子设备和存储介质
KR101711024B1 (ko) 부정조작방지 장치 접근 방법 및 그 방법을 채용한 단말 장치
CN114546506B (zh) 嵌入式操作系统的授权方法及装置、设备和介质
CN115795438A (zh) 应用程序授权的方法、系统及可读存储介质
CN114238870A (zh) 一种网络请求处理方法、装置、设备及存储介质
CN113395275A (zh) 一种云平台安全防护功能管控方法、系统及存储介质
KR101975041B1 (ko) 외부 저장 장치에 저장되는 파일을 보안하는 보안 브로커 시스템 및 그 방법
CN116418541B (zh) 通信方法、装置和设备
CN115277082B (zh) 第三方应用的校验方法和装置

Legal Events

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