CN114301655B - 基于Android的数据安全传输方法、系统、装置及介质 - Google Patents
基于Android的数据安全传输方法、系统、装置及介质 Download PDFInfo
- Publication number
- CN114301655B CN114301655B CN202111586052.8A CN202111586052A CN114301655B CN 114301655 B CN114301655 B CN 114301655B CN 202111586052 A CN202111586052 A CN 202111586052A CN 114301655 B CN114301655 B CN 114301655B
- Authority
- CN
- China
- Prior art keywords
- interface
- signature
- verification
- application
- server
- 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
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于Android的数据安全传输方法、系统、装置及介质,方法包括:通过客户端获取接口名参数和接口访问时间,接收服务器返回的第一SID参数,根据接口名参数、接口访问时间以及第一SID参数生成接口校验签名;通过客户端获取应用版本号和dex文件的第一CRC校验码,根据接口校验签名、应用版本号以及第一CRC校验码生成应用校验签名;通过客户端将接口校验签名、应用校验签名以及数据传输请求发送至服务器;通过服务器对接口校验签名进行校验,当接口校验签名校验成功,对应用校验签名进行校验,根据校验结果确定是否响应数据传输请求。本发明提高了服务器和数据传输的安全性,可广泛应用于数据传输技术领域。
Description
技术领域
本发明涉及数据传输技术领域,尤其是一种基于Android的数据安全传输方法、系统、装置及介质。
背景技术
Android是完全开源的系统,内核是基于开源的Linux系统内核,从底层系统到上层用户类库、界面等都是完全开放的。Google在内核之上开发了自己的Dalvik Java虚拟机。由于采用Java虚拟机,所以在Android上开发原生APP用的开发语言是Java。由于Android系统的开放性,业内出现了APK篡改反编译工具,如:apktool、dex2jar、gui、apksign等;也出现利用Xposed框架对APP访问后台的接口进行破解等现象。由于安卓APP存在反编译、篡改、重新打包的风险,也出现了大量的加固工具,如:360、梆梆安全、爱加密等。
现有的安卓终端在与服务器后台进行数据传输时,存下以下安全隐患:
1)通过一些抓包工具可以获取到APP发送的数据请求内容,然后伪造接口访问;
2)对APP后台接口进行破解,绕过安卓终端,通过PC代码直接访问接口;
3)由于Android系统的开放性,加之业内常用的防止APK篡改、反编译的技术很透明,导致安卓APK能够被轻易篡改破解,通过一些技术手段可以对已经打包好的安卓APP进行反编译、篡改和重新打包;
4)一般的APP可以在虚拟机上运行,而有一些不法分子会通过虚拟机运行APP来对服务器进行攻击。
由上可知,现有的安卓终端在与服务器进行数据传输时会存在许多安全隐患,这些情况下会造成用户隐私数据的泄露,并且无法保障服务器安全运行。
发明内容
本发明的目的在于至少一定程度上解决现有技术中存在的技术问题之一。
为此,本发明实施例的一个目的在于提供一种基于Android的数据安全传输方法,该方法一方面采用了双重校验机制,即除了APP与服务器之间的应用校验签名之外,还对APP的每个请求接口也生成动态的接口效验签名,并且将接口校验签名内嵌入应用校验签名,从而可以防止利用单一签名来篡改接口访问服务器,提高了服务器和数据传输的安全性;另一方面将接口校验签名与访问时间绑定,生成动态签名,可防止网络抓包和Xposed破解,使得被篡改的代码生成的校验签名无法通过服务器校验,从而消除了接口篡改刷量访问和绕过安卓终端访问服务器接口的隐患,进一步提高了服务器和数据传输的安全性。
本发明实施例的另一个目的在于提供一种基于Android的数据安全传输系统。
为了达到上述技术目的,本发明实施例所采取的技术方案包括:
第一方面,本发明实施例提供了一种基于Android的数据安全传输方法,包括以下步骤:
通过客户端获取接口名参数和接口访问时间,并接收服务器返回的识别客户端的第一SID参数,进而根据所述接口名参数、所述接口访问时间以及所述第一SID参数生成接口校验签名;
通过客户端获取应用版本号和dex文件的第一CRC校验码,并根据所述接口校验签名、所述应用版本号以及所述第一CRC校验码生成应用校验签名;
通过客户端将所述接口校验签名、所述应用校验签名以及数据传输请求发送至服务器;
通过服务器根据所述数据传输请求对所述接口校验签名进行校验,当所述接口校验签名校验成功,对所述应用校验签名进行校验,进而根据所述应用校验签名的校验结果确定是否响应所述数据传输请求。
进一步地,在本发明的一个实施例中,所述通过客户端获取接口名参数和接口访问时间,并接收服务器返回的识别客户端的第一SID参数,进而根据所述接口名参数、所述接口访问时间以及所述第一SID参数生成接口校验签名这一步骤,其具体包括:
通过客户端获取接口名参数和接口访问时间,并判断所述接口名参数和所述接口访问时间是否正常;
当所述接口名参数和所述接口访问时间正常,判断so库的调用者包名和APP签名的MD5值是否正常;
当所述调用者包名和所述MD5值正常,通过所述客户端接收服务器返回的识别客户端的第一SID参数;
根据所述接口名参数、所述接口访问时间以及所述第一SID参数按照预设的第一规则生成第一字符串,进而对所述第一字符串进行DES加密生成接口校验签名。
进一步地,在本发明的一个实施例中,所述通过客户端获取应用版本号和dex文件的第一CRC校验码,并根据所述接口校验签名、所述应用版本号以及所述第一CRC校验码生成应用校验签名这一步骤,其具体包括:
通过客户端获取应用版本号,并判断所述接口校验签名和所述应用版本号是否正常;
当所述接口校验签名和所述应用版本号正常,判断so库的调用者包名和APP签名的MD5值是否正常;
当所述调用者包名和所述MD5值正常,通过所述客户端获取dex文件的第一CRC校验码;
根据所述接口检验签名、所述应用版本号以及所述第一CRC校验码按照预设的第二规则生成第二字符串,进而对所述第二字符串进行DES加密生成应用校验签名。
进一步地,在本发明的一个实施例中,所述通过客户端将所述接口校验签名、所述应用校验签名以及数据传输请求发送至服务器这一步骤,其具体包括:
根据所述接口名参数、所述接口访问时间、所述第一SID参数以及所述应用版本号生成数据传输请求;
通过客户端将所述接口校验签名、所述应用校验签名以及所述数据传输请求发送至服务器。
进一步地,在本发明的一个实施例中,所述通过服务器根据所述数据传输请求对所述接口校验签名进行校验这一步骤,其具体包括:
通过服务器根据所述数据传输请求获取所述接口名参数、所述接口访问时间以及所述第一SID参数,并判断所述接口名参数、所述接口访问时间以及所述第一SID参数是否正常;
当所述接口名参数、所述接口访问时间以及所述第一SID参数均正常,根据所述接口名参数、所述接口访问时间以及所述第一SID参数按照预设的第一规则生成第三字符串,进而对所述第三字符串进行DES加密生成第一校验签名;
将所述第一校验签名与所述接口校验签名进行比对,当比对结果一致,则校验成功,当比对结果不一致,则校验失败。
进一步地,在本发明的一个实施例中,所述当所述接口校验签名校验成功,对所述应用校验签名进行校验这一步骤,其具体包括:
当所述接口校验签名校验成功,通过服务器根据所述数据传输请求获取所述应用版本号,并判断所述应用版本号是否正常;
当所述应用版本号正常,根据所述第一校验签名、所述应用版本号以及服务器预设的第二CRC校验码按照预设的第二规则生成第四字符串,进而对所述第四字符串进行DES加密生成第二校验签名;
将所述第二校验签名与所述应用校验签名进行比对,当比对结果一致,则校验成功,当比对结果不一致,则校验失败。
进一步地,在本发明的一个实施例中,所述根据所述应用校验签名的校验结果确定是否响应所述数据传输请求这一步骤,其具体包括:
当所述应用校验签名校验成功,通过服务器返回校验成功信息,并建立服务器与客户端的数据传输连接;
当所述应用校验签名校验失败,通过服务器返回校验失败信息,使得客户端重新发送数据传输请求。
第二方面,本发明实施例提供了一种基于Android的数据安全传输系统,包括:
接口校验签名生成模块,用于通过客户端获取接口名参数和接口访问时间,并接收服务器返回的识别客户端的第一SID参数,进而根据所述接口名参数、所述接口访问时间以及所述第一SID参数生成接口校验签名;
应用校验签名生成模块,用于通过客户端获取应用版本号和dex文件的第一CRC校验码,并根据所述接口校验签名、所述应用版本号以及所述第一CRC校验码生成应用校验签名;
数据传输请求发送模块,用于通过客户端将所述接口校验签名、所述应用校验签名以及数据传输请求发送至服务器;
签名校验模块,用于通过服务器根据所述数据传输请求对所述接口校验签名进行校验,当所述接口校验签名校验成功,对所述应用校验签名进行校验,进而根据所述应用校验签名的校验结果确定是否响应所述数据传输请求。
第三方面,本发明实施例提供了一种基于Android的数据安全传输装置,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行时,使得所述至少一个处理器实现上述的一种基于Android的数据安全传输方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序在由处理器执行时用于执行上述的一种基于Android的数据安全传输方法。
本发明的优点和有益效果将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到:
本发明实施例一方面采用了双重校验机制,即除了APP与服务器之间的应用校验签名之外,还对APP的每个请求接口也生成动态的接口效验签名,并且将接口校验签名内嵌入应用校验签名,从而可以防止利用单一签名来篡改接口访问服务器,提高了服务器和数据传输的安全性;另一方面将接口校验签名与访问时间绑定,生成动态签名,可防止网络抓包和Xposed破解,使得被篡改的代码生成的校验签名无法通过服务器校验,从而消除了接口篡改刷量访问和绕过安卓终端访问服务器接口的隐患,进一步提高了服务器和数据传输的安全性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面对本发明实施例中所需要使用的附图作以下介绍,应当理解的是,下面介绍中的附图仅仅为了方便清晰表述本发明的技术方案中的部分实施例,对于本领域的技术人员来说,在无需付出创造性劳动的前提下,还可以根据这些附图获取到其他附图。
图1为本发明实施例提供的一种基于Android的数据安全传输方法的步骤流程图;
图2为本发明实施例提供的生成接口校验签名的具体流程示意图;
图3为本发明实施例提供的生成应用校验签名的具体流程示意图;
图4为本发明实施例提供的服务器进行签名校验的具体流程示意图;
图5为本发明实施例提供的一种基于Android的数据安全传输系统的结构框图;
图6为本发明实施例提供的一种基于Android的数据安全传输装置的结构框图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
在本发明的描述中,多个的含义是两个或两个以上,如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。此外,除非另有定义,本文所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。
参照图1,本发明实施例提供了一种基于Android的数据安全传输方法,具体包括以下步骤:
S101、通过客户端获取接口名参数和接口访问时间,并接收服务器返回的识别客户端的第一SID参数,进而根据接口名参数、接口访问时间以及第一SID参数生成接口校验签名。
具体地,本发明实施例在安卓客户端的APP应用发送数据到服务器之前,通过加固的so库生成动态的接口数据体的校验签名。步骤S101具体包括以下步骤:
S1011、通过客户端获取接口名参数和接口访问时间,并判断接口名参数和接口访问时间是否正常;
S1012、当接口名参数和接口访问时间正常,判断so库的调用者包名和APP签名的MD5值是否正常;
S1013、当调用者包名和MD5值正常,通过客户端接收服务器返回的识别客户端的第一SID参数;
S1014、根据接口名参数、接口访问时间以及第一SID参数按照预设的第一规则生成第一字符串,进而对第一字符串进行DES加密生成接口校验签名。
具体地,调用so库生成接口数据体的校验签名(即接口校验签名)data_sign的具体流程如图2所示,具体为:输入接口名参数和接口访问时间;判断接口名参数和接口访问时间是否正常;若正常,则判断so库的调用者包名和APP签名的MD5值是否正常;若正常,则获取服务器识别安卓客户端生成的唯一SID(即第一SID参数);对唯一SID、接口名参数以及接口访问时间按预设的第一规则合成第一字符串,然后用DES加密成接口校验签名data_sign。
S102、通过客户端获取应用版本号和dex文件的第一CRC校验码,并根据接口校验签名、应用版本号以及第一CRC校验码生成应用校验签名。
具体地,本发明实施例在生成接口校验签名后,根据该接口校验签名和应用版本号以及CRC校验码生成应用校验签名。步骤S102具体包括以下步骤:
S1021、通过客户端获取应用版本号,并判断接口校验签名和应用版本号是否正常;
S1022、当接口校验签名和应用版本号正常,判断so库的调用者包名和APP签名的MD5值是否正常;
S1023、当调用者包名和MD5值正常,通过客户端获取dex文件的第一CRC校验码;
S1024、根据接口检验签名、应用版本号以及第一CRC校验码按照预设的第二规则生成第二字符串,进而对第二字符串进行DES加密生成应用校验签名。
具体地,调用so库利用接口校验签名data_sign生成应用校验签名app_sign的具体流程如图3所示,具体为:输入接口校验签名data_sign和应用版本号;判断接口校验签名data_sign和应用版本号是否正常;若正常,则判断so库的调用者包名和APP签名的MD5值是否正常;若正常,则获取dex文件的第一CRC校验码;将接口校验签名data_sign、应用版本号以及第一CRC校验码通过预设的第二规则合成第二字符串,然后用DES加密成应用校验签名app_sign。
S103、通过客户端将接口校验签名、应用校验签名以及数据传输请求发送至服务器。
进一步作为可选的实施方式,步骤S103具体包括以下步骤:
S1031、根据接口名参数、接口访问时间、第一SID参数以及应用版本号生成数据传输请求;
S1032、通过客户端将接口校验签名、应用校验签名以及数据传输请求发送至服务器。
具体地,数据传输请求包括接口名参数、接口访问时间、第一SID参数以及应用版本号,便于服务器根据这些参数进行签名校验。在一些可选的实施例中,可将接口校验签名、应用校验签名以及数据传输请求封装成报文后发送至服务器。
S104、通过服务器根据数据传输请求对接口校验签名进行校验,当接口校验签名校验成功,对应用校验签名进行校验,进而根据应用校验签名的校验结果确定是否响应数据传输请求。
具体地,服务器接收到安卓客户端发送的接口校验签名、应用校验签名以及数据传输请求后,先根据数据传输请求对接口校验签名进行校验,校验成功后再对应用校验签名进行校验,只有当两者都校验成功时才相应安卓客户端的数据传输请求,从而提高了服务器和数据传输的安全性。
进一步作为可选的实施方式,通过服务器根据数据传输请求对接口校验签名进行校验这一步骤,其具体包括:
S1041、通过服务器根据数据传输请求获取接口名参数、接口访问时间以及第一SID参数,并判断接口名参数、接口访问时间以及第一SID参数是否正常;
S1042、当接口名参数、接口访问时间以及第一SID参数均正常,根据接口名参数、接口访问时间以及第一SID参数按照预设的第一规则生成第三字符串,进而对第三字符串进行DE S加密生成第一校验签名;
S1043、将第一校验签名与接口校验签名进行比对,当比对结果一致,则校验成功,当比对结果不一致,则校验失败。
具体地,如图4所示为本发明实施例提供的服务器进行签名校验的具体流程,其中,接口数据体的接口校验签名data_sign的具体校验流程为:服务端收到数据传输请求后,从数据传输请求中获取第一SID参数、接口名参数以及接口访问时间,判断是否正常;若正常,则将第一SID参数、接口名参数以及接口访问时间按预设的第一规则合成第三字符串,然后以预先约定的密钥用DES加密生成第一校验签名;将该第一校验签名与客户端请求的接口校验签名data_sign进行比对,当比对一致,则校验成功,继续后续的应用校验签名校验流程,当比对不一致,则直接返回校验失败。
进一步作为可选的实施方式,当接口校验签名校验成功,对应用校验签名进行校验这一步骤,其具体包括:
S1044、当接口校验签名校验成功,通过服务器根据数据传输请求获取应用版本号,并判断应用版本号是否正常;
S1045、当应用版本号正常,根据第一校验签名、应用版本号以及服务器预设的第二CRC校验码按照预设的第二规则生成第四字符串,进而对第四字符串进行DES加密生成第二校验签名;
S1046、将第二校验签名与应用校验签名进行比对,当比对结果一致,则校验成功,当比对结果不一致,则校验失败。
具体地,如图4所示为本发明实施例提供的服务器进行签名校验的具体流程,其中,应用校验签名app_sign的具体校验流程为:服务器从数据传输请求中或取应用版本号,并判断是否正常;若正常,则将前述接口校验步骤生成的第一校验签名、应用版本号以及服务器后台数据库预设的第二CRC校验码按照预设的第二规则合成第四字符串,然后以预先约定的密钥用DES加密生成第二校验签名;将第二校验签名与客户端请求的应用校验签名app_sign进行比对,当比对一致,则校验成功,服务器响应客户端的数据传输请求,当比对不一致,则返回校验失败。
进一步作为可选的实施方式,根据应用校验签名的校验结果确定是否响应数据传输请求这一步骤,其具体包括:
S1047、当应用校验签名校验成功,通过服务器返回校验成功信息,并建立服务器与客户端的数据传输连接;
S1048、当应用校验签名校验失败,通过服务器返回校验失败信息,使得客户端重新发送数据传输请求。
具体地,当校验失败时,服务器返回校验失败信息至客户端,客户端可以重新生成接口校验签名和应用校验签名,并重新发送数据传输请求进行再次校验。
以上对本发明实施例的方法步骤进行了说明。可以认识到,现有技术主要是从数据加密和反编译的角度来保障数据传输的安全,而本发明实施例采用了双重校验机制,即除了APP与服务器之间的应用校验签名之外,还对APP的每个请求接口也生成动态的接口效验签名,并且将接口校验签名内嵌入应用校验签名,从而可以防止利用单一签名来篡改接口访问服务器,提高了服务器和数据传输的安全性;现有技术通过加固apk来保障服务器的安全,仅在增加破解APP的难度上做文章,但APP与后台服务器之间的数据通信还是无法得到保障,本发明实施例能让APP进行自我dex文件校验,生成校验签名的代码封装到so库中,通过so库限定APP访问且混编加固,并且将接口校验签名与访问时间绑定,生成动态签名,可防止网络抓包和Xposed破解,使得被篡改的代码生成的校验签名无法通过服务器校验,从而消除了接口篡改刷量访问和绕过安卓终端访问服务器接口的隐患,进一步提高了服务器和数据传输的安全性。
此外,本发明实施例通过调用so库生成校验签名,还具有以下优点:
1)so库采用c代码实现,采用隐藏入口、混编以及第三方的加固技术,可有效防止反编译和篡改;
2)so库对调用者包名和APP签名判断是否正常,也可以有效防止被盗用;
3)校验签名与访问时间绑定,每次生成都不一样,可以防止重复使用。
因此,本发明实施例在服务器端能有效防止刷量访问欧空绕过安卓终端访问,提高了服务器和数据传输的安全性。
参照图5,本发明实施例提供了一种基于Android的数据安全传输系统,包括:
接口校验签名生成模块,用于通过客户端获取接口名参数和接口访问时间,并接收服务器返回的识别客户端的第一SID参数,进而根据接口名参数、接口访问时间以及第一SID参数生成接口校验签名;
应用校验签名生成模块,用于通过客户端获取应用版本号和dex文件的第一CRC校验码,并根据接口校验签名、应用版本号以及第一CRC校验码生成应用校验签名;
数据传输请求发送模块,用于通过客户端将接口校验签名、应用校验签名以及数据传输请求发送至服务器;
签名校验模块,用于通过服务器根据数据传输请求对接口校验签名进行校验,当接口校验签名校验成功,对应用校验签名进行校验,进而根据应用校验签名的校验结果确定是否响应数据传输请求。
上述方法实施例中的内容均适用于本系统实施例中,本系统实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
参照图6,本发明实施例提供了一种基于Android的数据安全传输装置,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当上述至少一个程序被上述至少一个处理器执行时,使得上述至少一个处理器实现上述的一种基于Android的数据安全传输方法。
上述方法实施例中的内容均适用于本装置实施例中,本装置实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
本发明实施例还提供了一种计算机可读存储介质,其中存储有处理器可执行的程序,该处理器可执行的程序在由处理器执行时用于执行上述一种基于Android的数据安全传输方法。
本发明实施例的一种计算机可读存储介质,可执行本发明方法实施例所提供的一种基于Android的数据安全传输方法,可执行方法实施例的任意组合实施步骤,具备该方法相应的功能和有益效果。
本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行图1所示的方法。
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或上述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,上述的功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
上述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例上述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印上述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得上述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的上述描述中,参考术语“一个实施方式/实施例”、“另一实施方式/实施例”或“某些实施方式/实施例”等的描述意指结合实施方式或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施方式,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施方式进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于上述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (9)
1.一种基于安卓系统的数据安全传输方法,其特征在于,包括以下步骤:
通过客户端获取接口名参数和接口访问时间,并接收服务器返回的识别客户端的第一SID参数,进而根据所述接口名参数、所述接口访问时间以及所述第一SID参数生成接口校验签名;
通过客户端获取应用版本号和dex文件的第一CRC校验码,并根据所述接口校验签名、所述应用版本号以及所述第一CRC校验码生成应用校验签名;
根据所述接口名参数、所述接口访问时间、所述第一SID参数以及所述应用版本号生成数据传输请求,通过客户端将所述接口校验签名、所述应用校验签名以及所述数据传输请求发送至服务器;
通过服务器根据所述数据传输请求对所述接口校验签名进行校验,当所述接口校验签名校验成功,对所述应用校验签名进行校验,进而根据所述应用校验签名的校验结果确定是否响应所述数据传输请求。
2.根据权利要求1所述的一种基于安卓系统的数据安全传输方法,其特征在于,所述通过客户端获取接口名参数和接口访问时间,并接收服务器返回的识别客户端的第一SID参数,进而根据所述接口名参数、所述接口访问时间以及所述第一SID参数生成接口校验签名这一步骤,其具体包括:
通过客户端获取接口名参数和接口访问时间,并判断所述接口名参数和所述接口访问时间是否正常;
当所述接口名参数和所述接口访问时间正常,判断so库的调用者包名和APP签名的MD5值是否正常;
当所述调用者包名和所述MD5值正常,通过所述客户端接收服务器返回的识别客户端的第一SID参数;
根据所述接口名参数、所述接口访问时间以及所述第一SID参数按照预设的第一规则生成第一字符串,进而对所述第一字符串进行DES加密生成接口校验签名。
3.根据权利要求1所述的一种基于安卓系统的数据安全传输方法,其特征在于,所述通过客户端获取应用版本号和dex文件的第一CRC校验码,并根据所述接口校验签名、所述应用版本号以及所述第一CRC校验码生成应用校验签名这一步骤,其具体包括:
通过客户端获取应用版本号,并判断所述接口校验签名和所述应用版本号是否正常;
当所述接口校验签名和所述应用版本号正常,判断so库的调用者包名和APP签名的MD5值是否正常;
当所述调用者包名和所述MD5值正常,通过所述客户端获取dex文件的第一CRC校验码;
根据所述接口检验签名、所述应用版本号以及所述第一CRC校验码按照预设的第二规则生成第二字符串,进而对所述第二字符串进行DES加密生成应用校验签名。
4.根据权利要求1所述的一种基于安卓系统的数据安全传输方法,其特征在于,所述通过服务器根据所述数据传输请求对所述接口校验签名进行校验这一步骤,其具体包括:
通过服务器根据所述数据传输请求获取所述接口名参数、所述接口访问时间以及所述第一SID参数,并判断所述接口名参数、所述接口访问时间以及所述第一SID参数是否正常;
当所述接口名参数、所述接口访问时间以及所述第一SID参数均正常,根据所述接口名参数、所述接口访问时间以及所述第一SID参数按照预设的第一规则生成第三字符串,进而对所述第三字符串进行DES加密生成第一校验签名;
将所述第一校验签名与所述接口校验签名进行比对,当比对结果一致,则校验成功,当比对结果不一致,则校验失败。
5.根据权利要求4所述的一种基于安卓系统的数据安全传输方法,其特征在于,所述当所述接口校验签名校验成功,对所述应用校验签名进行校验这一步骤,其具体包括:
当所述接口校验签名校验成功,通过服务器根据所述数据传输请求获取所述应用版本号,并判断所述应用版本号是否正常;
当所述应用版本号正常,根据所述第一校验签名、所述应用版本号以及服务器预设的第二CRC校验码按照预设的第二规则生成第四字符串,进而对所述第四字符串进行DES加密生成第二校验签名;
将所述第二校验签名与所述应用校验签名进行比对,当比对结果一致,则校验成功,当比对结果不一致,则校验失败。
6.根据权利要求1至5中任一项所述的一种基于安卓系统的数据安全传输方法,其特征在于,所述根据所述应用校验签名的校验结果确定是否响应所述数据传输请求这一步骤,其具体包括:
当所述应用校验签名校验成功,通过服务器返回校验成功信息,并建立服务器与客户端的数据传输连接;
当所述应用校验签名校验失败,通过服务器返回校验失败信息,使得客户端重新发送数据传输请求。
7.一种基于安卓系统的数据安全传输系统,其特征在于,包括:
接口校验签名生成模块,用于通过客户端获取接口名参数和接口访问时间,并接收服务器返回的识别客户端的第一SID参数,进而根据所述接口名参数、所述接口访问时间以及所述第一SID参数生成接口校验签名;
应用校验签名生成模块,用于通过客户端获取应用版本号和dex文件的第一CRC校验码,并根据所述接口校验签名、所述应用版本号以及所述第一CRC校验码生成应用校验签名;
数据传输请求发送模块,用于根据所述接口名参数、所述接口访问时间、所述第一SID参数以及所述应用版本号生成数据传输请求,通过客户端将所述接口校验签名、所述应用校验签名以及所述数据传输请求发送至服务器;
签名校验模块,用于通过服务器根据所述数据传输请求对所述接口校验签名进行校验,当所述接口校验签名校验成功,对所述应用校验签名进行校验,进而根据所述应用校验签名的校验结果确定是否响应所述数据传输请求。
8.一种基于安卓系统的数据安全传输装置,其特征在于,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如权利要求1至6中任一项所述的一种基于安卓系统的数据安全传输方法。
9.一种计算机可读存储介质,其中存储有处理器可执行的程序,其特征在于,所述处理器可执行的程序在由处理器执行时用于执行如权利要求1至6中任一项所述的一种基于安卓系统的数据安全传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111586052.8A CN114301655B (zh) | 2021-12-20 | 2021-12-20 | 基于Android的数据安全传输方法、系统、装置及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111586052.8A CN114301655B (zh) | 2021-12-20 | 2021-12-20 | 基于Android的数据安全传输方法、系统、装置及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114301655A CN114301655A (zh) | 2022-04-08 |
CN114301655B true CN114301655B (zh) | 2023-03-24 |
Family
ID=80969669
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111586052.8A Active CN114301655B (zh) | 2021-12-20 | 2021-12-20 | 基于Android的数据安全传输方法、系统、装置及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114301655B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115459989A (zh) * | 2022-09-02 | 2022-12-09 | 京东科技信息技术有限公司 | 数据访问方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103886260B (zh) * | 2014-04-16 | 2016-09-14 | 中国科学院信息工程研究所 | 一种基于二次签名验签技术的应用程序管控方法 |
CN105956456B (zh) * | 2016-04-26 | 2019-02-19 | 南京邮电大学 | 一种对Android系统进行四重联合签名验证的实现方法 |
CN106899593B (zh) * | 2017-02-27 | 2021-02-02 | 深圳数字电视国家工程实验室股份有限公司 | 一种app重打包验证方法和装置 |
KR102657534B1 (ko) * | 2019-02-07 | 2024-04-16 | 삼성전자주식회사 | 어플리케이션의 무결성을 검증하는 전자 장치 및 어플리케이션의 무결성을 검증하기 위한 방법 |
-
2021
- 2021-12-20 CN CN202111586052.8A patent/CN114301655B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN114301655A (zh) | 2022-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5190800B2 (ja) | プログラムの実行制御システム、実行制御方法、実行制御用コンピュータプログラム | |
CN102473220B (zh) | 信息处理装置、信息处理方法以及程序分发系统 | |
CN108399329B (zh) | 一种提高可信应用程序安全的方法 | |
CN108229112B (zh) | 一种保护应用程序、应用程序的运行方法以及装置 | |
CN104009977B (zh) | 一种信息保护的方法和系统 | |
CN108683502B (zh) | 一种数字签名验证方法、介质及设备 | |
CN111143869B (zh) | 应用程序包处理方法、装置、电子设备及存储介质 | |
WO2021228143A1 (zh) | 小程序启动方法、签名方法、装置、服务器及介质 | |
CN102656561A (zh) | 信息处理装置、虚拟机生成方法及应用发布系统 | |
WO2015192637A1 (zh) | 软件安装包的加固保护方法和装置 | |
CN109660353A (zh) | 一种应用程序安装方法及装置 | |
CN112231702B (zh) | 应用保护方法、装置、设备及介质 | |
CN114301655B (zh) | 基于Android的数据安全传输方法、系统、装置及介质 | |
CN112134905B (zh) | 基于安卓系统的签名方法、装置以及设备 | |
CN110597496A (zh) | 应用程序的字节码文件获取方法及装置 | |
CN110581833B (zh) | 一种业务安全保护方法及装置 | |
CN106648770B (zh) | 一种应用程序安装包的生成方法、加载方法及装置 | |
EP1211587A1 (en) | Distributing programming language code | |
CN113220314A (zh) | App资源加载及apk生成方法、装置、设备及介质 | |
CN112732676A (zh) | 基于区块链的数据迁移方法、装置、设备及存储介质 | |
Petrov | Andro id Password Managers and Vault Appl ications: An Investigation on Data Re manence in Main Memory | |
CN110489276B (zh) | 基于业务页面的验证服务的容灾方法和装置 | |
CN114185702A (zh) | 共享应用的跨平台调用方法、装置、设备及存储介质 | |
CN113760294A (zh) | 应用软件加密部署方法和系统 | |
CN118260774A (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 |