CN108923910A - 一种移动应用apk防篡改的方法 - Google Patents
一种移动应用apk防篡改的方法 Download PDFInfo
- Publication number
- CN108923910A CN108923910A CN201810763998.9A CN201810763998A CN108923910A CN 108923910 A CN108923910 A CN 108923910A CN 201810763998 A CN201810763998 A CN 201810763998A CN 108923910 A CN108923910 A CN 108923910A
- Authority
- CN
- China
- Prior art keywords
- mobile application
- server
- apk
- cyclic redundancy
- redundancy check
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 125000004122 cyclic group Chemical group 0.000 claims abstract description 46
- 230000003993 interaction Effects 0.000 claims abstract description 6
- 230000001681 protective effect Effects 0.000 claims description 2
- 230000008901 benefit Effects 0.000 abstract description 2
- 238000012795 verification Methods 0.000 abstract description 2
- 238000010200 validation analysis Methods 0.000 description 4
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0876—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution 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即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.一种移动应用APK防篡改的方法,其特征在于,所述方法包括以下步骤:
S1、获取移动应用APK的数字签名与循环冗余校验码,加密后保存在服务器中;
S2、将移动应用APK发布到网络上供用户下载并安装使用;
S3、用户通过APK安装的客户端每次网络访问请求都需要上传与服务器采用相同加密方式加密的数字签名与循环冗余校验码进行验证;
S4、服务器对客户端上传的数字签名与循环冗余校验码进行验证,验证通过后才允许客户端与服务器进行数据交互。
2.根据权利要求1所述的一种移动应用APK防篡改的方法,其特征在于,所述数字签名与循环冗余校验码使用AES算法进行加密。
3.根据权利要求1所述的一种移动应用APK防篡改的方法,其特征在于,步骤S3中,客户端上传经过加密的数字签名与循环冗余校验码前,对服务器证书pin码进行验证。
4.根据权利要求3所述的一种移动应用APK防篡改的方法,其特征在于,对服务器证书pin码进行验证包括以下步骤:
S1:获取服务器的证书pin码;
S2:将服务器的证书pin码封装到移动应用APK中;
S3:在客户端进行网络访问前验证网络连接对象的证书pin码与预设的服务器pin码是否一致,若一致客户端上传经过加密的数字签名与循环冗余校验码进行验证;若不一致则停止向该网络连接对象发送数据。
5.根据权利要求1所述的一种移动应用APK防篡改的方法,其特征在于,在移动应用APK中设置共享对象库并通过所述共享对象库获取、保存经过加密的数字签名与循环冗余校验码。
6.根据权利要求5所述的一种移动应用APK防篡改的方法,其特征在于,所述共享对象库设有外壳保护程序。
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 true CN108923910A (zh) | 2018-11-30 |
CN108923910B 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) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110943976A (zh) * | 2019-11-08 | 2020-03-31 | 中国电子科技网络信息安全有限公司 | 一种基于口令的用户签名私钥管理方法 |
CN111259387A (zh) * | 2018-12-03 | 2020-06-09 | 上海掌门科技有限公司 | 一种检测被篡改的应用的方法及设备 |
CN112597485A (zh) * | 2021-03-01 | 2021-04-02 | 腾讯科技(深圳)有限公司 | 基于区块链的信息校验方法、装置和设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001044902A2 (en) * | 2000-08-21 | 2001-06-21 | Authoriszor Limited | System and method for extensible positive client identification |
CN102982258A (zh) * | 2012-11-09 | 2013-03-20 | 北京深思洛克软件技术股份有限公司 | 一种对移动应用程序进行原版校验的*** |
US20130160147A1 (en) * | 2011-12-16 | 2013-06-20 | 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 |
CN104049973A (zh) * | 2014-06-25 | 2014-09-17 | 北京思特奇信息技术股份有限公司 | 安卓应用程序的安全验证方法及装置 |
CN104393992A (zh) * | 2014-10-20 | 2015-03-04 | 贵阳朗玛信息技术股份有限公司 | 应用程序包的验证方法及装置 |
CN105320535A (zh) * | 2014-08-04 | 2016-02-10 | 优视科技有限公司 | 一种安装包的校验方法、客户端、服务器及*** |
CN107729746A (zh) * | 2017-11-28 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种基于数字签名的已安装应用程序防篡改方法及*** |
-
2018
- 2018-07-12 CN CN201810763998.9A patent/CN108923910B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001044902A2 (en) * | 2000-08-21 | 2001-06-21 | Authoriszor Limited | System and method for extensible positive client identification |
US20130160147A1 (en) * | 2011-12-16 | 2013-06-20 | Dell Products L.P. | Protected application programming interfaces |
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 | 郑州云海信息技术有限公司 | 一种基于数字签名的已安装应用程序防篡改方法及*** |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111259387A (zh) * | 2018-12-03 | 2020-06-09 | 上海掌门科技有限公司 | 一种检测被篡改的应用的方法及设备 |
CN111259387B (zh) * | 2018-12-03 | 2021-06-15 | 上海掌门科技有限公司 | 一种检测被篡改的应用的方法及设备 |
CN110943976A (zh) * | 2019-11-08 | 2020-03-31 | 中国电子科技网络信息安全有限公司 | 一种基于口令的用户签名私钥管理方法 |
CN112597485A (zh) * | 2021-03-01 | 2021-04-02 | 腾讯科技(深圳)有限公司 | 基于区块链的信息校验方法、装置和设备及存储介质 |
CN112597485B (zh) * | 2021-03-01 | 2021-06-08 | 腾讯科技(深圳)有限公司 | 基于区块链的信息校验方法、装置和设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108923910B (zh) | 2021-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI709056B (zh) | 韌體升級方法及裝置 | |
CN109923548B (zh) | 通过监管进程访问加密数据实现数据保护的方法、***及计算机程序产品 | |
CN105706048B (zh) | 使用硬件信任根的媒体客户端装置鉴权 | |
CN102760219B (zh) | 一种Android平台软件保护***、方法及设备 | |
US20030163685A1 (en) | Method and system to allow performance of permitted activity with respect to a device | |
JP2019505887A (ja) | 信頼できる実行環境を有するモバイル装置 | |
US10027683B2 (en) | Shared symmetric key encryption | |
CN110597538A (zh) | 一种基于ota升级***的软件升级方法和ota升级*** | |
CN105956456A (zh) | 一种对Android***进行四重联合签名验证的实现方法 | |
CN112422287B (zh) | 基于密码学的多层级角色权限控制方法和装置 | |
CN110378104A (zh) | 一种升级防纂改的方法 | |
CN108923910A (zh) | 一种移动应用apk防篡改的方法 | |
CN106550359A (zh) | 一种终端和sim卡的认证方法和*** | |
CN111859415A (zh) | 神经网络模型加密***和方法 | |
CN109150834A (zh) | 一种嵌入式设备license授权管理方法 | |
CN103685194A (zh) | 一种能力调用方法、装置及终端 | |
CN103095482A (zh) | 程序开发维护*** | |
CN103888475A (zh) | 一种对多媒体数据的保护方法和装置 | |
US8745375B2 (en) | Handling of the usage of software in a disconnected computing environment | |
CN101174941B (zh) | 一种移动终端文件离线数字版权保护方法及装置 | |
CN111585995A (zh) | 安全风控信息传输、处理方法、装置、计算机设备及存储介质 | |
CN110572454A (zh) | 一种保障广告投放过程安全的广告投放*** | |
CN101795195A (zh) | 一种约束信息可变的加密认证电子地图的方法 | |
Vella et al. | D-Cloud-Collector: Admissible Forensic Evidence from Mobile Cloud Storage | |
KR20230127952A (ko) | 데이터 보안 장치 |
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 |