CN108259479B - 业务数据处理方法、客户端与计算机可读存储介质 - Google Patents

业务数据处理方法、客户端与计算机可读存储介质 Download PDF

Info

Publication number
CN108259479B
CN108259479B CN201711498312.XA CN201711498312A CN108259479B CN 108259479 B CN108259479 B CN 108259479B CN 201711498312 A CN201711498312 A CN 201711498312A CN 108259479 B CN108259479 B CN 108259479B
Authority
CN
China
Prior art keywords
ndk
application program
shared library
signature
service data
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
CN201711498312.XA
Other languages
English (en)
Other versions
CN108259479A (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.)
GUANGZHOU QISHENG INFORMATION TECHNOLOGY CO LTD
Original Assignee
GUANGZHOU QISHENG INFORMATION TECHNOLOGY 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 GUANGZHOU QISHENG INFORMATION TECHNOLOGY CO LTD filed Critical GUANGZHOU QISHENG INFORMATION TECHNOLOGY CO LTD
Priority to CN201711498312.XA priority Critical patent/CN108259479B/zh
Publication of CN108259479A publication Critical patent/CN108259479A/zh
Application granted granted Critical
Publication of CN108259479B publication Critical patent/CN108259479B/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/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements

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)
  • Storage Device Security (AREA)

Abstract

本发明实施例提供了一种业务数据处理方法、客户端与计算机可读存储介质,方法包括应用程序通过程序语言兼容接口将获取到的业务数据传入NDK共享库;NDK共享库在接收到所述业务数据后对所述应用程序的签名证书进行验证;NDK共享库在对所述应用程序的签名证书验证成功后,根据所述业务数据以及存储在所述NDK共享库中的密钥生成第一签名参数并返回给所述应用程序;应用程序通过网络请求接口向服务器发送业务数据处理请求;本发明实施例提高了密钥与通讯加密算法被反编译窃取的难度,增强应用程序与服务器之间的通讯安全;同时在调用NDK共享库时需要对应用程序的签名证书进行认证,防止NDK共享库被其他应用程序直接调用,并防止应用程序被二次打包篡改。

Description

业务数据处理方法、客户端与计算机可读存储介质
技术领域
本发明涉及软件技术领域,尤其涉及一种业务数据处理方法、客户端与计算机可读存储介质。
背景技术
目前国内黑灰产非常发达,日趋产业链化。有人专门分析APP(应用程序)通讯协议,进行机器模拟,数据伪造。比如刷榜、发布广告等明显破坏APP的生态恶意行为。如果Android APP程序不做任何防护,很容易被第三方进行静态与动态分析,直接拿到接口通讯密钥和破解通讯算法,并伪造出看似正常的恶意请求。
发明内容
本发明的目的是提出一种业务数据处理方法、装置与计算机可读存储介质,可以提高密钥与通讯加密算法被反编译窃取的难度,防止出现恶意的业务数据处理请求,增强应用程序与服务器之间的通讯安全。
为了达到上述的目的,本发明实施例一方面提供了一种业务数据处理方法,包括:
业务数据处理方法,其特征在于,包括:
应用程序通过程序语言兼容接口将获取到的业务数据传入NDK共享库;
NDK共享库在接收到所述业务数据后对所述应用程序的签名证书进行验证;
NDK共享库在对所述应用程序的签名证书验证成功后,根据所述业务数据以及存储在所述NDK共享库中的密钥生成第一签名参数并返回给所述应用程序;
应用程序通过网络请求接口向服务器发送业务数据处理请求;所述业务数据处理请求携带有所述业务数据与所述第一签名参数;所述业务数据处理请求用于触发所述服务器验证所述第一签名参数并在验证成功时对所述业务数据处理请求所携带的业务数据进行业务逻辑处理以得到相应的业务处理结果数据;
其中所述应用程序与所述NDK共享库配置在同一个客户端;
所述NDK共享库在对所述应用程序的签名证书验证成功后,根据所述业务数据以及存储在所述NDK共享库中的密钥生成第一签名参数并返回给所述应用程序,包括:
所述NDK共享库在对所述应用程序的签名证书验证成功后,对所述业务数据中的各个参数按照字典排序,并把排序后的参数拼接成第一字符串;
所述NDK共享库调用预存的密钥;
所述NDK共享库将所述第一字符串与所述密钥拼接成第二字符串;
所述NDK共享库计算所述第二字符串的哈希值,将计算得到的哈希值作为所述第一签名参数;
所述业务数据处理请求还包含所述应用程序的渠道ID;
所述业务数据处理请求具体用于触发所述服务器根据所述应用程序的渠道ID查找所述密钥,以及根据所述密钥与所述业务参数按照与所述NDK共享库生成所述第一签名参数相同的方法生成第二签名参数,以及对比所述第一签名参数和所述第二签名参数,当两者一致时根据所述业务数据进行业务逻辑处理以得到相应的业务处理结果数据并反馈给所述应用程序所在的客户端,当两者不一致时向所述客户端反馈数据异常消息。
优选地,所述NDK共享库在接收到所述业务数据后对所述应用程序的签名证书进行验证,包括:
所述NDK共享库通过调用Android SDK的方法,获取所述应用程序的签名证书的特征值并与官方的签名证书的特征值进行对比;
当所述应用程序的签名证书的特征值与官方的签名证书的特征值一致,所述NDK共享库判定对所述应用程序的签名证书验证成功;否则判定对于所述应用程序的签名证书验证不成功。
优选地,所述NDK共享库通过调用Android SDK的方法,获取所述应用程序的签名证书的特征值并与官方的签名证书的特征值进行对比,具体为:
所述NDK共享库通过调用Android SDK的方法调用客户端中的PackgeManager对象,根据所述应用程序的包名从所述PackgeManager对象中获得所述应用程序的包内信息并从所述包内信息中获取所述应用程序的签名证书的特征值。
优选地,所述应用程序的主体开发语言为JAVA;所述程序语言兼容接口为JNI接口。
优选地,所述密钥预先被分块并转码后存储在所述NDK共享库中;
所述NDK共享库调用预存的密钥,包括:
所述NDK共享库获取预存的密钥分块;
所述NDK共享库根据所述密钥分块得到所述密钥。
优选地,所述方法还包括:
所述应用程序接收所述服务器反馈回来的业务处理结果数据或者数据异常消息,并根据所述业务处理结果数据或所述数据异常消息执行后续处理
本发明实施例第二方面提供一种客户端,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现上述的业务数据处理方法。
本发明实施例第三方面提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述的业务数据处理方法。
相比于现有技术,本发明实施例的有益效果在于:本发明实施例提供了一种业务数据处理方法、客户端与计算机可读存储介质,方法包括应用程序通过程序语言兼容接口将获取到的业务数据传入NDK共享库;NDK共享库在接收到所述业务数据后对所述应用程序的签名证书进行验证;NDK共享库在对所述应用程序的签名证书验证成功后,根据所述业务数据以及存储在所述NDK共享库中的密钥生成第一签名参数并返回给所述应用程序;应用程序通过网络请求接口向服务器发送业务数据处理请求;所述业务数据处理请求携带有所述业务数据与所述第一签名参数;所述业务数据处理请求用于触发所述服务器验证所述第一签名参数并在验证成功时对所述业务数据处理请求所携带的业务数据进行业务逻辑处理以得到相应的业务处理结果数据。本发明实施例将用于生成第一签名参数的密钥以及生成第一签名参数的方法均存储在NDK共享库中,通过所述NDK共享库来根据所述密钥来生成第一签名参数并返回给应用程序,由于NDK共享库在反编译时得到的是汇编语言,使得很难通过反编译得到所述密钥以及生成第一签名参数的方法,防止应用程序代码被ApkTool、Jadx等工具直接反编译并泄露,因此提高密钥与通讯加密算法被反编译窃取的难度,防止出现恶意的业务数据处理请求,增强应用程序与服务器之间的通讯安全;同时在调用NDK共享库时需要对应用程序的签名证书进行认证,防止NDK共享库被其他应用程序直接调用,并防止应用程序被二次打包篡改。
附图说明
图1是本发明实施例提供的一种业务数据处理方法的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,其是本发明实施例提供的一种业务数据处理方法的流程示意图。所述方法包括:
S1,应用程序通过程序语言兼容接口将获取到的业务数据传入NDK共享库;
S2,NDK共享库在接收到所述业务数据后对所述应用程序的签名证书进行验证;
S3,NDK共享库在对所述应用程序的签名证书验证成功后,根据所述业务数据以及存储在所述NDK共享库中的密钥生成第一签名参数并返回给所述应用程序;
S4,应用程序通过网络请求接口向服务器发送业务数据处理请求;所述业务数据处理请求携带有所述业务数据与所述第一签名参数;所述业务数据处理请求用于触发所述服务器验证所述第一签名参数并在验证成功时对所述业务数据处理请求所携带的业务数据进行业务逻辑处理以得到相应的业务处理结果数据;其中所述应用程序与所述NDK共享库配置在同一个客户端。
需要说明的是,上述步骤S1~S4虽然有两个执行主体,由于所述应用程序与所述NDK共享库配置在同一个客户端,所以应当理解为由所述客户端的不同部分的计算机程序来实现。
NDK:即Native Development Kit,Android程序运行在Dalvik虚拟机中,NDK允许用户使用类似C/C++之类的原生代码语言执行部分程序。NDK程序编译后,在不同的CPU架构下,生成相应的so文件,组成NDK共享库,NDK共享是Linux平台下的动态链接库。
Dalvik是Google公司自己设计用于Android平台的虚拟机。Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的核心组成部分之一,它可以支持已转换为.dex(即Dalvik Executable)格式的JAVA应用程序的运行,每一个Dalvik应用作为一个独立的Linux进程执行。
在现有技术中,用于生成第一签名参数的密钥以及生成第一签名参数的方法均存储在原应用程序中,很容易被反编译得到,安全性较低,而本发明实施例将用于生成第一签名参数的密钥以及生成第一签名参数的方法均存储在NDK共享库中,通过所述NDK共享库来根据所述密钥来生成第一签名参数并返回给应用程序,由于NDK共享库在反编译时得到的是汇编语言,使得很难通过反编译得到所述密钥以及生成第一签名参数的方法,防止应用程序代码被ApkTool、Jadx等工具直接反编译并泄露,因此提高密钥与通讯加密算法被反编译窃取的难度,防止出现恶意的业务数据处理请求,增强应用程序与服务器之间的通讯安全;同时在调用NDK共享库时需要对应用程序的签名证书进行认证,防止NDK共享库被其他应用程序直接调用,并防止应用程序被二次打包篡改。
其中,应用程序签名是指:在设备或者是模拟器上运行APP程序之前,必须为应用程序设置数字签名(keystore)。没有被签名的程序,***将不能安装。应用程序签名意义主要是为了保证每个应用程序开发商合法ID,防止第三方通过使用相同的包名来混淆替换已经安装的程序。需对发布的APK文件进行唯一签名,且保证每次发布的版本签名证书的一致性,否则无法替换更新。
二次打包是指也称为再次打包,指应用程序的程序代码被修改后(如加入恶意或日志代码),再进次重新打包。注:二次打包时,因篡改者没有原厂商的keystore证书,此时签名打包后的应用程序签名信息会发生变化。
在可选的实施方式中,所述应用程序的主体开发语言为JAVA;所述程序语言兼容接口为JNI接口。JNI是JAVA Native Interface的缩写,它提供了若干的API实现了JAVA和其他语言的通信(主要是C/C++)。从JAVA1.1开始,JNI标准成为JAVA平台的一部分,它允许JAVA代码和其他语言写的代码进行交互。在本发明实施例中JNI接口用于调用所述NDK共享库。
在一种可选的实施方式中,步骤S2所述的NDK共享库在接收到所述业务数据后对所述应用程序的签名证书进行验证,包括:
所述NDK共享库通过调用Android SDK的方法,获取所述应用程序的签名证书的特征值并与官方的签名证书的特征值进行对比;
当所述应用程序的签名证书的特征值与官方的签名证书的特征值一致,所述NDK共享库判定对所述应用程序的签名证书验证成功;否则判定对于所述应用程序的签名证书验证不成功。
Smali是Dalvik的寄存器语言,它与JAVA的关系,相当于汇编之于C。当我们对APK文件进行反编译后,便会生成此类的文件。
更具体地,所述NDK共享库通过调用Android SDK的方法,获取所述应用程序的签名证书的特征值并与官方的签名证书的特征值进行对比,具体为:
所述NDK共享库通过调用Android SDK的方法调用客户端中的PackgeManager对象,根据所述应用程序的包名从所述PackgeManager对象中获得所述应用程序的包内信息并从所述包内信息中获取所述应用程序的签名证书的特征值。
其中,客户端的每个应用程序的包内信息均存储在PackgeManager对象中,每个应用程序的包内信息包含相应的签名证书的特征值。
在一种可选的实施方式中,步骤S3所述的NDK共享库在对所述应用程序的签名证书验证成功后,根据所述业务数据以及存储在所述NDK共享库中的密钥生成第一签名参数并返回给所述应用程序,包括:
所述NDK共享库在对所述应用程序的签名证书验证成功后,对所述业务数据中的各个参数按照字典排序,并把排序后的参数拼接成第一字符串;
所述NDK共享库调用预存的密钥;
所述NDK共享库将所述第一字符串与所述密钥拼接成第二字符串;
所述NDK共享库计算所述第二字符串的哈希值,将计算得到的哈希值作为所述第一签名参数。
需要说明的是,此处仅是所述NDK共享库根据所述业务数据与所述密钥生成第一签名参数的其中一种方法,其他类似的生成方式也是可选的。
在一种可选的实施方式中,所述密钥预先被分块并转码后存储在所述NDK共享库中;
所述NDK共享库调用预存的密钥,包括:
所述NDK共享库获取预存的密钥分块;
所述NDK共享库根据所述密钥分块得到所述密钥。
在一种可选的实施方式中,所述业务数据处理请求还包含所述应用程序的渠道ID;
所述业务数据处理请求具体用于触发所述服务器根据所述应用程序的渠道ID查找所述密钥,以及根据所述密钥与所述业务参数按照与所述NDK共享库生成所述第一签名参数相同的方法生成第二签名参数,以及对比所述第一签名参数和所述第二签名参数,当两者一致时根据所述业务数据进行业务逻辑处理以得到相应的业务处理结果数据并反馈给所述应用程序所在的客户端,当两者不一致时向所述客户端反馈数据异常消息。
需要说明的是,每个渠道ID具有唯一的密钥,存储在NDK共享库的密钥是所述服务器预先根据所述应用程序的渠道ID分配的;所述服务器可以根据接收到的渠道ID以及不同渠道ID与密钥的关系,查找接收到的渠道ID所对应的密钥。
由于第一签名参数与第二签名参数生成的方法是一样的,如果两者不相同,则说明所述业务数据处理请求所携带的业务数据跟原来应用程序获取到的业务数据遭到了篡改,此时应该反馈数据异常消息进行报错。
在一种可选的实施方式中,所述方法还包括:
所述应用程序接收所述服务器反馈回来的业务处理结果数据或者数据异常消息,并根据所述业务处理结果数据或所述数据异常消息执行后续处理。
例如,根据业务处理结果数据进行显示处理以及根据数据异常消息进行应用程序的闪退处理。
相应地,本发明实施例还提供了一种客户端,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现上述的业务数据处理方法实施例中的步骤,例如图1所示的步骤S1~S4。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述客户端中的执行过程。
所述客户端可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述客户端可包括,但不仅限于,处理器、存储器。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述客户端的控制中心,利用各种接口和线路连接整个客户端的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述客户端的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
其中,所述客户端集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。
相应地,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述的业务数据处理方法实施例中的步骤,例如图1所示的步骤S1~S4。
基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
相比于现有技术,本发明实施例的有益效果在于:本发明实施例提供了一种业务数据处理方法、客户端与计算机可读存储介质,方法包括应用程序通过程序语言兼容接口将获取到的业务数据传入NDK共享库;NDK共享库在接收到所述业务数据后对所述应用程序的签名证书进行验证;NDK共享库在对所述应用程序的签名证书验证成功后,根据所述业务数据以及存储在所述NDK共享库中的密钥生成第一签名参数并返回给所述应用程序;应用程序通过网络请求接口向服务器发送业务数据处理请求;所述业务数据处理请求携带有所述业务数据与所述第一签名参数;所述业务数据处理请求用于触发所述服务器验证所述第一签名参数并在验证成功时对所述业务数据处理请求所携带的业务数据进行业务逻辑处理以得到相应的业务处理结果数据。本发明实施例将用于生成第一签名参数的密钥以及生成第一签名参数的方法均存储在NDK共享库中,通过所述NDK共享库来根据所述密钥来生成第一签名参数并返回给应用程序,由于NDK共享库在反编译时得到的是汇编语言,使得很难通过反编译得到所述密钥以及生成第一签名参数的方法,防止应用程序代码被ApkTool、Jadx等工具直接反编译并泄露,因此提高密钥与通讯加密算法被反编译窃取的难度,防止出现恶意的业务数据处理请求,增强应用程序与服务器之间的通讯安全;同时在调用NDK共享库时需要对应用程序的签名证书进行认证,防止NDK共享库被其他应用程序直接调用,并防止应用程序被二次打包篡改。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

Claims (8)

1.一种业务数据处理方法,其特征在于,包括:
应用程序通过程序语言兼容接口将获取到的业务数据传入NDK共享库;
NDK共享库在接收到所述业务数据后对所述应用程序的签名证书进行验证;
NDK共享库在对所述应用程序的签名证书验证成功后,根据所述业务数据以及存储在所述NDK共享库中的密钥生成第一签名参数并返回给所述应用程序;
应用程序通过网络请求接口向服务器发送业务数据处理请求;所述业务数据处理请求携带有所述业务数据与所述第一签名参数;所述业务数据处理请求用于触发所述服务器验证所述第一签名参数并在验证成功时对所述业务数据处理请求所携带的业务数据进行业务逻辑处理以得到相应的业务处理结果数据;
其中所述应用程序与所述NDK共享库配置在同一个客户端;
所述NDK共享库在对所述应用程序的签名证书验证成功后,根据所述业务数据以及存储在所述NDK共享库中的密钥生成第一签名参数并返回给所述应用程序,包括:
所述NDK共享库在对所述应用程序的签名证书验证成功后,对所述业务数据中的各个参数按照字典排序,并把排序后的参数拼接成第一字符串;
所述NDK共享库调用预存的密钥;
所述NDK共享库将所述第一字符串与所述密钥拼接成第二字符串;
所述NDK共享库计算所述第二字符串的哈希值,将计算得到的哈希值作为所述第一签名参数;
所述业务数据处理请求还包含所述应用程序的渠道ID;
所述业务数据处理请求具体用于触发所述服务器根据所述应用程序的渠道ID查找所述密钥,以及根据所述密钥与所述业务参数按照与所述NDK共享库生成所述第一签名参数相同的方法生成第二签名参数,以及对比所述第一签名参数和所述第二签名参数,当两者一致时根据所述业务数据进行业务逻辑处理以得到相应的业务处理结果数据并反馈给所述应用程序所在的客户端,当两者不一致时向所述客户端反馈数据异常消息。
2.如权利要求1所述的业务数据处理方法,其特征在于,所述NDK共享库在接收到所述业务数据后对所述应用程序的签名证书进行验证,包括:
所述NDK共享库通过调用Android SDK的方法,获取所述应用程序的签名证书的特征值并与官方的签名证书的特征值进行对比;
当所述应用程序的签名证书的特征值与官方的签名证书的特征值一致,所述NDK共享库判定对所述应用程序的签名证书验证成功;否则判定对于所述应用程序的签名证书验证不成功。
3.如权利要求2所述的业务数据处理方法,其特征在于,所述NDK共享库通过调用Android SDK的方法,获取所述应用程序的签名证书的特征值并与官方的签名证书的特征值进行对比,具体为:
所述NDK共享库通过调用Android SDK的方法调用客户端中的PackgeManager对象,根据所述应用程序的包名从所述PackgeManager对象中获得所述应用程序的包内信息并从所述包内信息中获取所述应用程序的签名证书的特征值。
4.如权利要求3所述的业务数据处理方法,其特征在于,所述应用程序的主体开发语言为JAVA;所述程序语言兼容接口为JNI接口。
5.如权利要求1所述的业务数据处理方法,其特征在于,所述密钥预先被分块并转码后存储在所述NDK共享库中;
所述NDK共享库调用预存的密钥,包括:
所述NDK共享库获取预存的密钥分块;
所述NDK共享库根据所述密钥分块得到所述密钥。
6.如权利要求1所述的业务数据处理方法,其特征在于,所述方法还包括:
所述应用程序接收所述服务器反馈回来的业务处理结果数据或者数据异常消息,并根据所述业务处理结果数据或所述数据异常消息执行后续处理。
7.一种客户端,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至6中任意一项所述的业务数据处理方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如权利要求1至6中任意一项所述的业务数据处理方法。
CN201711498312.XA 2017-12-28 2017-12-28 业务数据处理方法、客户端与计算机可读存储介质 Active CN108259479B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711498312.XA CN108259479B (zh) 2017-12-28 2017-12-28 业务数据处理方法、客户端与计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711498312.XA CN108259479B (zh) 2017-12-28 2017-12-28 业务数据处理方法、客户端与计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN108259479A CN108259479A (zh) 2018-07-06
CN108259479B true CN108259479B (zh) 2021-05-11

Family

ID=62725631

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711498312.XA Active CN108259479B (zh) 2017-12-28 2017-12-28 业务数据处理方法、客户端与计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN108259479B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109525454B (zh) * 2018-11-06 2021-02-19 北京网众共创科技有限公司 数据处理方法及装置
CN110046479B (zh) * 2019-03-21 2023-02-28 腾讯科技(深圳)有限公司 一种基于安卓操作***的链接库文件反调试方法及装置
CN110162415B (zh) * 2019-05-05 2023-09-01 腾讯科技(深圳)有限公司 用于处理数据请求的方法、服务器、装置及存储介质
CN111049897B (zh) * 2019-12-10 2023-02-17 北京百度网讯科技有限公司 小程序包的加密上传和解密部署方法、装置、设备和介质
CN113742668A (zh) * 2021-08-17 2021-12-03 深圳Tcl新技术有限公司 信息获取方法、装置、计算机设备和计算可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106656928A (zh) * 2015-10-30 2017-05-10 西门子公司 云环境下的客户端与服务器之间的认证方法和装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9712516B2 (en) * 2014-06-20 2017-07-18 Bmc Software, Inc. Monitoring signed resources transferred over a network
CN104935568A (zh) * 2015-04-20 2015-09-23 成都康赛信息技术有限公司 一种面向云平台接口鉴权签名方法
CN105844150A (zh) * 2016-03-23 2016-08-10 青岛海信传媒网络技术有限公司 一种应用程序的数据保护方法和装置
CN106850231A (zh) * 2017-02-22 2017-06-13 济南浪潮高新科技投资发展有限公司 一种保护接口安全的方法、服务端及***、一种客户端
CN107480519A (zh) * 2017-08-04 2017-12-15 深圳市金立通信设备有限公司 一种识别风险应用的方法及服务器

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106656928A (zh) * 2015-10-30 2017-05-10 西门子公司 云环境下的客户端与服务器之间的认证方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Design of secure communications network system based on data encryption and digital signature;Taiping Mo;《2011 International Conference on High Performance Computing & Simulation》;20110830;626-630 *
基于Android平台的软件保护技术研究;杨勇义;《中国优秀硕士学位论文全文数据库 信息科技辑》;20120815(第8期);I138-42 *

Also Published As

Publication number Publication date
CN108259479A (zh) 2018-07-06

Similar Documents

Publication Publication Date Title
CN108259479B (zh) 业务数据处理方法、客户端与计算机可读存储介质
KR101471589B1 (ko) 공통중간언어 기반 프로그램을 위한 보안 제공 방법
KR101503785B1 (ko) 동적 라이브러리를 보호하는 방법 및 장치
CN104932902B (zh) 一种生成apk文件的方法及终端
US10797868B2 (en) Shared secret establishment
CN111404696B (zh) 协同签名方法、安全服务中间件、相关平台及***
CN109194625B (zh) 一种基于云端服务器的客户端应用保护方法、装置及存储介质
CN111143869B (zh) 应用程序包处理方法、装置、电子设备及存储介质
CN104866739A (zh) 安卓***中应用程序加密方法及***
CN108229144B (zh) 一种应用程序的验证方法、终端设备及存储介质
CN109284585B (zh) 一种脚本加密方法、脚本解密运行方法和相关装置
CN107870793B (zh) 一种应用程序中加载so文件的方法及装置
KR20150035249A (ko) 어플리케이션 패키지를 저장하는 기록 매체, 어플리케이션 패키지 생성 방법 및 장치, 어플리케이션 패키지 실행 방법 및 장치
CN112231702B (zh) 应用保护方法、装置、设备及介质
WO2023029447A1 (zh) 模型保护方法、装置、设备、***以及存储介质
CN108595950A (zh) 一种结合远程认证的sgx安全增强方法
CN112257086A (zh) 一种用户隐私数据保护方法及电子设备
CN108599959B (zh) 授权证书校验方法、装置及可读存储介质、应用设备
CN106888094B (zh) 一种签名方法及服务器
CN112115430A (zh) 一种apk的加固方法、电子设备及存储介质
CN115964681A (zh) 目标应用程序的证书文件的生成方法
CN114629658B (zh) 一种应用签名方法、装置、设备及存储介质
CN110602051A (zh) 基于共识协议的信息处理方法及相关装置
CN114238870A (zh) 一种网络请求处理方法、装置、设备及存储介质
CN115509556A (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
CP02 Change in the address of a patent holder

Address after: 510623 room 1101, No.13 Zhujiang East Road, Tianhe District, Guangzhou City, Guangdong Province

Patentee after: GUANGZHOU QISHENG INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 510000 10th and 11th floors, No.13 Zhujiang East Road, Tianhe District, Guangzhou City, Guangdong Province

Patentee before: GUANGZHOU QISHENG INFORMATION TECHNOLOGY Co.,Ltd.

CP02 Change in the address of a patent holder