一种基于云端服务器的客户端应用保护方法、装置及存储介质制造方法及图纸

技术编号:20081403 阅读:30 留言:0更新日期:2019-01-15 02:43
本发明专利技术提供了一种基于云端服务器的客户端应用保护方法、装置及存储介质,该方法包括:获取步骤,客户端应用从云端服务器获取经加密压缩后的核心代码;组装步骤,客户端应用将获取的经加密压缩后的核心代码进行处理得到解密解压缩后的核心代码,并将解密解压缩后的核心代码导入客户端应用形成完整版的客户端应用。本发明专利技术将应用的核心代码在云端服务器上进行加密压缩存储,发布的应用仅包括登录界面等部分非核心功能,从而防止破解者对获取应用进行破解,通过HOOK动态分段加载从云端服务器获取的解密DEX和SO文件,从而防止核心代码被逆向工具获取;用于加密压缩数据的解密密钥是通过云端服务器根据客户端的运行环境值生成,进一步提高了安全性。

A Client Application Protection Method, Device and Storage Media Based on Cloud Server

The invention provides a client application protection method, device and storage medium based on cloud server. The method includes: acquisition step, client application acquiring encrypted and compressed core code from cloud server, assembly step, client application processing the acquired encrypted and compressed core code to obtain decompressed core code, and decompressing the core code. After decompression, the core code is imported into the client application to form a complete version of the client application. The core code of the application is encrypted, compressed and stored on the cloud server. The released application only includes some non-core functions such as login interface, so as to prevent the cracker from cracking the access application. Decrypted DEX and SO files obtained from the cloud server are loaded by HOOK dynamically and segmentally, thus preventing the core code from being acquired by reverse tools for encrypting compressed data. The decryption key is generated by the cloud server according to the running environment value of the client, which further improves the security.

【技术实现步骤摘要】
一种基于云端服务器的客户端应用保护方法、装置及存储介质
本专利技术涉及系统安全
,特别是一种基于云端服务器的客户端应用保护方法、装置及存储介质。
技术介绍
Android是目前最流行的智能手机操作系统,远超过苹果,黑莓等智能手机操作系统。进而吸引了越来越多的黑客进行Android操作系统程序的破解。因为Android应用程序在各个渠道中发行,人们可以很轻易的获取到需要的应用程序,进行分析破解程序的实现方式,实现逻辑等。现有些安全解决方案是对应用程序进行加壳处理,防止应用程序的被人破解,不过因为网络的流通,很多加壳原理都被人熟知,同样存在安全隐患。可见现有技术的缺陷在于:Android上的客户端应用程序可以通过各种渠道获取,即使对该应用程序进行了加壳,但是因为加壳原理可分析,故安全性还是有问题,何况更多的应用程序是没有加壳的,可以通过逆向工具很容易获得程序的源码,暴露程序的实现逻辑,比如:加解密函数等,导致系统的安全性很低,容易造成用户数据的泄露。
技术实现思路
本专利技术针对上述现有技术中的缺陷,提出了如下技术方案。一种基于云端服务器的客户端应用保护方法,该方法包括:获取步骤,所述客户端应用从所述云端服务器获取经加密压缩后的核心代码;组装步骤,所述客户端应用将获取的经加密压缩后的核心代码进行处理得到解密解压缩后的核心代码,并将所述解密解压缩后的核心代码导入所述客户端应用形成完整版的客户端应用。更进一步地,所述应用为安卓系统的应用。更进一步地,所述方法还包括:验证步骤,所述云端服务器基于所述客户端应用的请求进行客户端运行环境的安全性和所述客户端应用合法性及完整性的验证;其中,所述验证步骤在所述获取步骤之前进行。更进一步地,所述云端服务器将经加密压缩后的核心代码与应用程序的版本对应存储在数据库中。更进一步地,所述验证步骤包括:注册步骤,将在所述客户端应用注册时输入的用户名和用户密码及采集的系统的imei、pin码、cpu、系统内核版本号、系统是否root状态值和/或系统是否被HOOK状态值进行压缩使用第一加密算法进行加密生成第一加密数据包,计算所述用户密码的md5值、所述客户端应用的签名及所述客户端应用的完整性的md5值,将所述用户密码的md5值、客户端应用的签名及所述客户端应用的完整性的md5值进行压缩后使用第二加密算法进行加密生成第二加密数据包,将第一加密数据包、第二加密数据包、第一加密算法的密钥和第二加密算法的密钥封装为所述客户端应用的请求发送至所述云端服务器。解密步骤,所述云端服务器使用第一加密算法的密钥和第二加密算法的密钥对第一加密数据包和第二加密数据包进行解密后进行解压缩,将获得的用户名、用户密码及对应的系统的imei、pin码、cpu、系统内核版本号、系统是否root状态值和/或系统是否被HOOK状态值对应存储在数据中;判断步骤,根据系统是否root状态值和/或系统是否被HOOK状态值判断系统的运行是否安全,如果是,基于云端应用服务器中存储的各个渠道发放的客户端应用的完整性校验值和签名判断判断所述客户端是否被篡改和/或反编译,如果则通过验证,如果是则向用户发出警告信息。更进一步地,所述获取步骤包括:加密步骤,所述云端服务器根据用户名、用户密码、imei、pin码、cpu和/或系统内核版本号及一个随机数生成一个加密核心代码的密钥,并将所述密钥与所述客户端应用对应存储在数据库中,使用第三加密算法和加密核心代码的密钥对压缩后的核心代码进行加密生成所述经加密压缩后的核心代码;发送步骤,将所述经加密压缩后的核心代码和解密核心代码的密钥发送至所述客户端应用。更进一步地,将所述解密解压缩后的核心代码导入所述客户端应用形成完整版的客户端应用为:判断解密解压出的数据格式类型,如果数据格式类型是DEX数据,则进行按照DEX格式进行组合,然后通过HOOK的DEX动态导入函数分段导入,如果数据格式类型是SO文件,则按照elf格式进行组装,然后通过HOOK的dlopen函数进行组装动态导入。更进一步地,所述解密核心代码的密钥一次有效,经加密压缩后的核心代码下载后存储在所述客户端上,当用户再次使用该客户端应用时,所述云端服务器仅向所述客户端发送解密核心代码的密钥。本专利技术还提出了一种基于云端服务器的客户端应用保护装置,该装置包括:获取模块,所述客户端应用从所述云端服务器获取经加密压缩后的核心代码;组装模块,所述客户端应用将获取的经加密压缩后的核心代码进行处理得到解密解压缩后的核心代码,并将所述解密解压缩后的核心代码导入所述客户端应用形成完整版的客户端应用。更进一步地,所述应用为安卓系统的应用。更进一步地,所述装置还包括:验证模块,所述云端服务器基于所述客户端应用的请求进行客户端运行环境的安全性和所述客户端应用合法性及完整性的验证;其中,所述验证模块的操作在所述获取模块的操作之前进行。更进一步地,所述云端服务器将经加密压缩后的核心代码与应用程序的版本对应存储在数据库中。更进一步地,所述验证模块包括:注册模块,将在所述客户端应用注册时输入的用户名和用户密码及采集的系统的imei、pin码、cpu、系统内核版本号、系统是否root状态值和/或系统是否被HOOK状态值进行压缩使用第一加密算法进行加密生成第一加密数据包,计算所述用户密码的md5值、所述客户端应用的签名及所述客户端应用的完整性的md5值,将所述用户密码的md5值、客户端应用的签名及所述客户端应用的完整性的md5值进行压缩后使用第二加密算法进行加密生成第二加密数据包,将第一加密数据包、第二加密数据包、第一加密算法的密钥和第二加密算法的密钥封装为所述客户端应用的请求发送至所述云端服务器。解密模块,所述云端服务器使用第一加密算法的密钥和第二加密算法的密钥对第一加密数据包和第二加密数据包进行解密后进行解压缩,将获得的用户名、用户密码及对应的系统的imei、pin码、cpu、系统内核版本号、系统是否root状态值和/或系统是否被HOOK状态值对应存储在数据中;判断模块,根据系统是否root状态值和/或系统是否被HOOK状态值判断系统的运行是否安全,如果是,基于云端应用服务器中存储的各个渠道发放的客户端应用的完整性校验值和签名判断判断所述客户端是否被篡改和/或反编译,如果则通过验证,如果是则向用户发出警告信息。更进一步地,所述获取模块包括:加密模块,所述云端服务器根据用户名、用户密码、imei、pin码、cpu和/或系统内核版本号及一个随机数生成一个加密核心代码的密钥,并将所述密钥与所述客户端应用对应存储在数据库中,使用第三加密算法和加密核心代码的密钥对压缩后的核心代码进行加密生成所述经加密压缩后的核心代码;发送模块,将所述经加密压缩后的核心代码和解密核心代码的密钥发送至所述客户端应用。更进一步地,将所述解密解压缩后的核心代码导入所述客户端应用形成完整版的客户端应用为:判断解密解压出的数据格式类型,如果数据格式类型是DEX数据,则进行按照DEX格式进行组合,然后通过HOOK的DEX动态导入函数分段导入,如果数据格式类型是SO文件,则按照elf格式进行组装,然后通过HOOK的dlopen函数进行组装动态导入。更进一步地,所述解密核心代码的密钥一次有效,经加密压缩后的核心代本文档来自技高网...

【技术保护点】
1.一种基于云端服务器的客户端应用保护方法,其特征在于,该方法包括:获取步骤,所述客户端应用从所述云端服务器获取经加密压缩后的核心代码;组装步骤,所述客户端应用将获取的经加密压缩后的核心代码进行处理得到解密解压缩后的核心代码,并将所述解密解压缩后的核心代码导入所述客户端应用形成完整版的客户端应用。

【技术特征摘要】
1.一种基于云端服务器的客户端应用保护方法,其特征在于,该方法包括:获取步骤,所述客户端应用从所述云端服务器获取经加密压缩后的核心代码;组装步骤,所述客户端应用将获取的经加密压缩后的核心代码进行处理得到解密解压缩后的核心代码,并将所述解密解压缩后的核心代码导入所述客户端应用形成完整版的客户端应用。2.根据权利要求1所述的方法,其特征在于,所述应用为安卓系统的应用。3.根据权利要求2所述的方法,其特征在于,所述方法包括:验证步骤,所述云端服务器基于所述客户端应用的请求进行客户端运行环境的安全性和所述客户端应用合法性及完整性的验证;其中,所述验证步骤在所述获取步骤之前进行。4.根据权利要求1所述的方法,其特征在于,所述云端服务器将经加密压缩后的核心代码与应用程序的版本对应存储在数据库中。5.根据权利要求3所述的方法,其特征在于,所述验证步骤包括:注册步骤,将在所述客户端应用注册时输入的用户名和用户密码及采集的系统的imei、pin码、cpu、系统内核版本号、系统是否root状态值和/或系统是否被HOOK状态值进行压缩使用第一加密算法进行加密生成第一加密数据包,计算所述用户密码的md5值、所述客户端应用的签名及所述客户端应用的完整性的md5值,将所述用户密码的md5值、客户端应用的签名及所述客户端应用的完整性的md5值进行压缩后使用第二加密算法进行加密生成第二加密数据包,将第一加密数据包、第二加密数据包、第一加密算法的密钥和第二加密算法的密钥封装为所述客户端应用的请求发送至所述云端服务器;解密步骤,所述云端服务器使用第一加密算法的密钥和第二加密算法的密钥对第一加密数据包和第二加密数据包进行解密后进行解压缩,将获得的用户名、用户密码及对应的系统的imei、pin码、cpu、系统内核版本号、系统是否root状态值和/或系统是否被HOOK状态值对应存储在数据中;判断步骤,根据系统是否root状态值和/或系统是否被HOOK状态值判断系统的运行是否安全,如果是,基于云端应用服务器中存储的各个渠道发放的客户端应用的完整性校验值和签名判断判断所述客户端是否被篡改和/或反编译,如果则通过验证,如果是则向用户发出警告信息。6.根据权利要求5所述的方法,其特征在于,所述获取步骤包括:加密步骤,所述云端服务器根据用户名、用户密码、imei、pin码、cpu和/或系统内核版本号及一个随机数生成一个加密核心代码的密钥,并将所述密钥与所述客户端应用对应存储在数据库中,使用第三加密算法和加密核心代码的密钥对压缩后的核心代码进行加密生成所述经加密压缩后的核心代码;发送步骤,将所述经加密压缩后的核心代码和解密核心代码的密钥发送至所述客户端应用。7.根据权利要求6所述的方法,其特征在于,将所述解密解压缩后的核心代码导入所述客户端应用形成完整版的客户端应用为:判断解密解压出的数据格式类型,如果数据格式类型是DEX数据,则进行按照DEX格式进行组合,然后通过HOOK的DEX动态导入函数分段导入,如果数据格式类型是SO文件,则按照elf格式进行组装,然后通过HOOK的dlopen函数进行组装动态导入。8.根据权利要求7所述的方法,其特征在于,所述解密核心代码的密钥一次有效,经加密压缩后的核心代码下载后存储在所述客户端上,当用户再次使用该客户端应用时,所述云端服务器仅向所述客户端发送解密核心代码的密钥。9.一种基于云端服务器的客户端应用保护装置,其特征在于,该装置包括:获取模块,所述客户端应...

【专利技术属性】
技术研发人员:兰书俊苏玉海蔡阿川
申请(专利权)人:厦门市美亚柏科信息股份有限公司
类型:发明
国别省市:福建,35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1