CN114238870A - 一种网络请求处理方法、装置、设备及存储介质 - Google Patents
一种网络请求处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114238870A CN114238870A CN202111595034.6A CN202111595034A CN114238870A CN 114238870 A CN114238870 A CN 114238870A CN 202111595034 A CN202111595034 A CN 202111595034A CN 114238870 A CN114238870 A CN 114238870A
- Authority
- CN
- China
- Prior art keywords
- key
- encryption
- encryption algorithm
- hidden
- network request
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 23
- 238000000034 method Methods 0.000 claims abstract description 47
- 238000012545 processing Methods 0.000 claims abstract description 24
- 238000012795 verification Methods 0.000 claims abstract description 19
- 230000004044 response Effects 0.000 claims abstract description 13
- 230000008569 process Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 6
- 238000005336 cracking Methods 0.000 description 5
- 230000014509 gene expression Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000002147 killing effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 244000062793 Sorghum vulgare Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 210000001072 colon Anatomy 0.000 description 1
- 238000013478 data encryption standard Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011900 installation process Methods 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 235000019713 millet Nutrition 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供一种网络请求处理方法、装置、设备及存储介质,涉及互联网技术领域。该方法包括:根据代码系统层的第一密钥、以及调用的应用层的第二密钥,生成隐蔽密钥;根据所述隐蔽密钥生成加密参数;向服务端发送携带所述加密参数的业务请求;接收所述服务端根据参数列表对所述加密参数验证通过后反馈的响应消息,该方法通过设置隐蔽密钥,根据隐蔽密钥生成加密参数,相比现有方案中的明文密钥,提高了破解加密算法的难度,进而提高了请求被非法调用的难度。
Description
技术领域
本申请涉及互联网技术领域,具体而言,涉及一种网络请求处理方法、装置、设备及存储介质。
背景技术
客户端发起携带相应加密参数的网络请求,该加密参数经过服务端验证合法后,服务端给客户端响应相应的返回结果。其中,加密参数的生成算法,一般存储在客户端的代码中以供客户端调用。安卓客户端的APK包对外公开发布,因此任何人都可以从公开渠道下载,加密参数的生成算法(加密算法)容易被破解。
传统的方案中,开发人员在加密算法中添加明文密钥,基于该方法的加密算法,可以通过提取加密算法进行静态分析,观察明文密钥的分布;还可通过动态调试,调试加密算法的运算过程,进而对加密算法进行逆向还原;还可非法调用加密算法,将加密算法导入测试工程进行调用并猜想还原,比较加密算法与还原的加密算法得到的加密参数是否一致,如果加密参数一致,表示加密算法已被破解。现有的方案中,虽然在加密算法中添加明文密钥,增加了破解加密算法的难度,但是依然可以通过静态分析、动态调试、非法调用等方式破解加密算法。若加密算法被破解,任何第三方都可以发起网络请求,导致请求被非法调用。
发明内容
本发明的目的在于,针对上述现有技术的不足,提供一种网络请求处理方法、装置、设备及存储介质,以解决现有技术中网络请求容易被非法调用的问题。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供一种网络请求处理方法,该方法包括:
根据系统层的第一密钥、以及调用的应用层的第二密钥,生成隐蔽密钥;
根据所述隐蔽密钥生成加密参数;
向服务端发送携带所述加密参数的业务请求;
接收所述服务端根据参数列表对所述加密参数验证通过后反馈的响应消息。
可选地,所述根据系统层第一密钥、以及调用的应用层的第二密钥,生成隐蔽密钥,包括:
根据加密算法,将所述第一密钥与所述第二密钥进行拼接,生成所述隐蔽密钥。
可选地,所述加密算法中添加有防调试线程,所述防调试线程用于在所述加密算法被所述防调试线程附加调试时,其他进程无法调试所述加密算法。
可选地,所述根据加密算法,将所述第一密钥与所述第二密钥进行拼接,生成所述隐蔽密钥之前,还包括:
在启动应用程序后,获取当前环境的签名信息;
采用所述签名信息和本地代码中的预设签名信息进行验证,若验证通过,则调用所述加密算法。
可选地,所述客户端中的源代码为采用预设方式混淆后的代码。
可选地,所述加密算法由C++程序语言编写。
可选地,所述加密算法存储在所述客户端的源代码中。
第二方面,本申请实施例提供一种网络请求处理装置,包括:
密钥模块,用于根据系统层的第一密钥、以及调用的应用层的第二密钥,生成隐蔽密钥;
生成模块,用于根据所述隐蔽密钥生成加密参数;
请求模块,用于向服务端发送携带所述加密参数的业务请求;
接收模块,用于接收所述服务端根据参数列表对所述加密参数验证通过后反馈的响应消息。
第三方面,本申请实施例提供一种计算机设备,包括:存储器和处理器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面的网络请求处理方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时,实现上述第一方面的网络请求处理方法。
相对现有技术而言,本申请具有以下有益效果:
本申请实施例提供的一种网络请求处理、装置、设备及存储介质,可根据代码层的第一密钥、以及调用的应用层的第二密钥,生成隐蔽密钥,向服务端发送携带加密参数的业务请求,接收服务端根据参数列表对加密参数验证通过后反馈的响应消息。该方法通过设置隐蔽密钥,根据隐蔽密钥生成加密参数,相比现有方案中的明文密钥,提高了破解加密算法的难度,进而提高了请求被非法调用的难度。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种网络请求处理系统的示意图;
图2为本申请实施例提供的一种网络请求处理方法的流程示意图;
图3为本申请实施例提供的另一种网络请求处理方法的流程示意图;
图4为本申请实施例提供的一种网络请求处理装置的示意图;
图5为本申请实施例提供的一种计算机设备的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
为了解决现有加密算法容易被破解的问题,使得网络请求被非法调用的难度提高,本申请的方案中,提供一种网络请求处理方法、装置、设备及存储介质。
图1为本申请实施例提供的一种网络请求处理系统的示意图,如图1所示,该网络请求处理系统包括:客户端、服务端。
客户端(也可为应用程序)向服务端发起业务请求,例如可以通过Http协议发送业务请求,可记为Https请求。该业务请求中可以携带相关业务请求参数,服务端接收该请求参数,并可以执行对应的业务操作,进而将响应结果返回至客户端。
如下以安卓客户端为例对本申请提出的一种网络请求处理系统进行具体解释说明,当然,客户端还可以为IOS等,在申请实施例中不作具体限制。
为了确保业务请求由客户端的合法用户发起,安卓客户端的Android应用程序包(Android application package,APK)中包含加密算法,即,加密算法可以存储在客户端的源代码中,加密算法中包含隐蔽密钥,调用加密算法即可生成携带合法身份的加密参数。
安卓客户端向服务端发起业务请求时,请求参数中包含加密算法生成的加密参数以及其他请求参数,其中,其他请求参数为业务参数,将携带加密参数的请求参数发送至服务端。服务端对加密参数进行验证,若加密参数与服务端中根据相同加密算法生成的加密参数一致,则验证通过,服务端对执行该业务并将响应结果返回至客户端,否则,验证失败,服务端拒绝进行响应。
未携带加密参数的请求模式下,非法用户可能会对服务端发起业务请求,导致请求被非法调用。而携带加密参数的请求模式下,非法用户对服务端发起请求时,由于非法用户发出的请求参数中没有加密参数或者加密参数错误,导致服务端验证失败,进而屏蔽非法用户对请求的非法调用。
该网络请求处理系统可应用于多个实际场景,如抢红包、秒杀等,业务请求也相应可以是不同应用场景下实际的业务请求,本申请实施例不作具体限制。
如下通过多个示例对本申请实施例提供的网络请求处理方法的实现过程进行具体解释说明。该网络请求处理方法可由上述图1所示的网络请求处理系统中的客户端执行。可以理解的是,本申请的多个示例以安卓客户端为例进行具体解释说明,当然,客户端的类型在申请中不做具体限定。图2为本申请实施例提供的一种网络请求处理方法的流程示意图,如图2所示,该方法包括:
S201,根据系统层的第一密钥、以及调用的应用层的第二密钥,生成隐蔽密钥。
需要说明的是,安卓客户端里,可以包括两层架构:C++层和Java层,其中,C++层为底层部分,也可称为系统层,Java层为高层部分,也可称为应用层。在本申请实施例中,选取系统层的参数作为第一密钥,选取应用层的参数作为第二密钥,将第一密钥和第二密钥进行结合,生成隐蔽密钥。
将隐蔽密钥的算法存储于系统层,采用C++程序语言编写。相比于Java编写,Java编写的算法其反编译后仍然是Java代码,具有一定的可还原度,而C++反编译后的代码为汇编代码,破解难度会加大许多。
选取系统层的参数作为第一密钥时,可通过定义一个本地参数,如常量,以字符串为例进行具体解释说明,如define cKey1="cKeyParam1",此时,本地参数cKey1对应的字符串cKeyParam1为第一密钥,可以理解的是,还可通过定义一个调用系统层参数的函数,如String getcKey2(),其中getcKey2()函数为系统层的一个函数,若getcKey2()函数返回的参数值为cKeyParam2,则getcKey2()函数对应的字符串cKeyParam2为第一密钥。
选取应用层的参数作为第二密钥时,由于隐蔽密钥的算法存储于系统层,因此不能通过定义本地参数获得应用层的数据,可以通过调用应用层的函数,获得应用层的参数作为第二密钥。具体实施过程中,在加密算法内调用应用层的函数,如string getjKey(),其中getjKey()函数为应用层的一个函数,若getjKey()函数返回的参数值为jKeyParam,则getjKey()函数对应的字符串jKeyParam为第二密钥。
本申请实施例中以字符串为例进行解释说明,还可以通过数值型等数据类型作为第一密钥和第二密钥,密钥的数据类型在本申请实施例中不作具体限制。
在隐蔽密钥的算法内定义调用系统层或者应用层的函数时,还可同时调用多个系统层或者应用层的函数,得到多个系统层或者应用层函数返回的参数值,将系统层或者应用层的多个参数值进行结合,结合多个参数的方式包括但不限于拼接、相加、相减等,得到系统层的第一密钥或者应用层的第二密钥,进而结合第一密钥与第二密钥,生成隐蔽密钥。
S202,根据隐蔽密钥生成加密参数。
隐蔽密钥的算法存储在加密算法中,同时,加密算法还可以通过隐蔽密钥、业务请求的入参以及隐蔽密钥与业务请求的入参的关系,对隐蔽密钥以及业务请求的入参进行加密,生成加密参数。
为了提高网络请求的安全性,将加密算法存储于系统层,采用C++程序语言编写。另外,本申请实施例中,加密算法可被编译成so库,以供客户端调用。
隐蔽密钥与业务请求的入参之间的关系可为拼接关系:示例地,待加密参数=隐蔽密钥+入参+隐蔽密钥,即,将隐蔽密钥拼接业务请求的入参再拼接隐蔽密钥得到待加密参数,该拼接方式仅作为示例,还可以采取其它拼接方式,如,待加密参数=隐蔽密钥+入参,其中,拼接方式不作具体限制,但,待加密参数中需包含至少一个隐蔽密钥与至少一个入参。
业务请求的入参根据该业务请求需传递的业务参数进行生成,示例地,在本申请实施例中,业务请求中的业务参数可以用Map容器进行存储,Map中的元素以key-value(键值对)的形式进行存储,在互联网中常见的购物秒杀活动中,业务请求可包含八个需传递的参数,如"p"->"2";"c"->"1";"t"->"1638861350960";"v"->"2.3.2";"deviceId"->"ee295c64ff9ce26968";"loginToken"->"740295aa66214be490ebd0a9fd67262b";"loginUserId"->"159722";"productId"->"9f640eda90e743d78bd534750f51705d"。
其中,"p"->"2"表示该客户端所处的平台类型可为Android,p表示客户端所处的平台类型,2可表示为Android平台;"c"->"1"表示该客户端的下载来源可为华为应用市场、小米应用市场等,c表示客户端的下载来源,1可表示华为应用市场;"t"->"1638861350960"表示该客户端发出请求时的时间戳,"v"->"2.3.2"表示该客户端的版本号为2.3.2,v表示客户端的版本号;"deviceId"->"ee295c64ff9ce26968"表示安装该客户端的设备Id;"loginToken"->"740295aa66214be490ebd0a9fd67262b"表示用户登录的token,可验证登录状态是否有效;"loginUserId"->"159722"表示登录该客户端的用户Id,可以用于标识用户的唯一性,"productId"->"9f640eda90e743d78bd534750f51705d"表示秒杀的商品Id,可以用于标识商品的唯一性。
根据需传递的业务参数,得到业务请求的入参,其中,入参的具体表现形式可以为:将Map中所有的key值和对应的value值取出,并将每个key和对应的value拼接成一个字符串,其中,key和对应的value通过冒号隔开,示例地,"p"->"2"可得拼接的字符串为p:2,多个字符串根据首字母进行升序排序,即,以key值的首字母进行升序排序。如上述八个需传递的业务参数,根据入参的具体表现形式可得该业务请求的入参为:
c:1deviceId:deviceIdloginToken:740295aa66214be490ebd0a9fd67262bloginUserId:159722p:2productId:9f640eda90e743d78bd534750f51705dt:1638861350960v:2.3.2。
以上通过业务请求中的相关参数用Map容器进行存储、业务请求包含八个需传递的参数以及入参的具体表现为拼接成字符串的方式对本申请实施例中的入参进行解释说明,当然,还可以通过其他方式存储业务请求中的相关参数,需传递的参数还可包括其他参数,入参的具体表现还可为其他方式,在本申请实施例中不作具体限制。
以上述拼接关系(待加密参数=隐蔽密钥+入参+隐蔽密钥)以及上述入参为例,对本申请实施例中根据隐蔽密钥生成加密参数进行具体解释说明。若通过第一密钥与第二密钥结合得到的隐蔽密钥为cKeyParamjKeyParam,则根据上述拼接关系以及上述入参,可得待加密参数为:
cKeyParamjKeyParamc:1deviceId:deviceIdloginToken:740295aa66214be490ebd0a9fd67262bloginUserId:159722p:2productId:9f640eda90e743d78bd534750f51705dt:1638861350960v:2.3.2cKeyParamjKeyParam。
安卓客户端向服务端发出业务请求的过程中,加密算法可对待加密参数进行加密,对待加密参数进行加密并生成加密参数的过程可以采用对称加密算法,如DES(DataEncryption Standard)算法、AES(Advanced Encryption Standard)等,还可以采用消息摘要算法,如MD5算法(Message-Digest Algorithm 5)、SHA算法(Secure Hash Algorithm)、MAC算法(Message Authentication Code)等。
消息摘要算法能将任意长度字符串转化为固定长度字符串且不可逆,因此,在本申请实施例中,以MD5算法为例对生成加密参数的过程进行具体解释说明。
通过MD5算法对待加密参数进行加密,即,将上述待加密参数作为MD5算法的输入,对应的输出数据a5d0253c256d055b即为生成的加密参数。
S203,向服务端发送携带加密参数的业务请求。
客户端向服务端发送业务请求,其中,业务请求中包含加密参数以及其他请求参数,该加密参数和其他请求参数组成一个完整的请求参数列表。
示例地,如S202所述的生成加密参数的示例,业务请求中包含的加密参数可为a5d0253c256d055b,其他请求参数可为上述八个需传递的业务参数。
S204,接收服务端根据参数列表对加密参数验证通过后反馈的响应消息。
服务端接收客户端发送的业务请求中的参数列表,从参数列表中提取所有参数。示例地,服务端提取出上述S203中的加密参数和八个业务参数。同时,服务端内部存储与客户端相同的加密算法,即,服务端可以调用内部存储的加密算法,根据隐蔽密钥以及业务请求中的业务参数,通过上述MD5算法在服务端内部生成服务端的加密参数。服务端将客户端发送的业务请求中的加密参数与服务端内部生成的加密参数进行验证,若客户端发送的业务请求中的加密参数与服务端内部生成的加密参数一致,则服务端对该业务请求做出响应,并将响应结果反馈至客户端,客户端接收服务端反馈的响应信息,否则,服务端拒绝进行响应。
综上,本申请实施例提供的一种网络请求处理方法,加密算法采用C++程序语言编写,提高了破解加密算法的难度,同时,根据系统层的第一密钥、以及调用的应用层的第二密钥,生成隐蔽密钥,根据隐蔽密钥生成加密参数,并向服务端发送携带加密参数的业务请求,客户端接收服务端根据参数列表对加密参数验证通过后反馈的响应消息,该方法通过设置隐蔽密钥,根据隐蔽密钥生成加密参数,相比现有方案中的明文密钥,提高了破解加密算法的难度,进而提高了请求被非法调用的难度。
在上述图2所示的一种网络请求处理方法的基础上,本申请实施例还提供了生成隐蔽密钥的实现方法,上述S201中,根据系统层的第一密钥、以及调用的应用层的第二密钥,生成隐蔽密钥,包括:根据加密算法,将第一密钥与第二密钥进行拼接,生成隐蔽密钥。
本申请实施例在具体实施过程中,如上述S201所述,若系统层对应的第一密钥的设置为define cKey1="cKeyParam1",应用层对应的第二密钥的设置为string getjKey()且getjKey()函数返回的参数值为jKeyParam,即,第一密钥为cKeyParam1,第二密钥为jKeyParam,根据加密算法,将第一密钥与第二密钥进行拼接,即,隐蔽密钥可以为:cKeyParam1jKeyParam,还可以为jKeyParamcKeyParam1,拼接顺序在此不作具体限制。
本申请实施例中根据第一密钥与第二密钥生成隐蔽密钥的方式包括但不限于拼接,还可以为穿插,即隐蔽密钥还可以为:cjKeeyyPPaarraamm1,还可以为其他生成方式,在本申请实施例中不作具体限制。
本申请实施例根据第一密钥与第二密钥的结合,结合方式可以为拼接等,进而生成隐蔽密钥,在图2所示的网络请求处理方法的基础上,增加了隐蔽密钥的复杂度,提高了破解加密算法的难度,进而提高了请求被非法调用的难度。
在上述实施例的基础上,本申请实施例还提供了另一种网络请求处理方法,在上述实施例中的加密算法中,添加防调试线程,使得其他进程无法调试该加密算法。
本申请实施例在具体实施过程中,在加密算法内添加防调试线程对应的ptrace函数,使得只有本进程可以对该加密算法进行调试。
以安卓客户端为例,非法用户将安卓客户端的APK下载后,将加密算法导入本地的调试环境中,通过本地的调试进程对加密算法进行非法动态调试时,由于该加密算法内部已经集成了自我调试功能,此时,非法用户本地的调试进程将无法对该加密算法进行非法动态调试。
本申请实施例通过在加密算法中添加防调试线程,使得非法用户不能通过动态调试破解加密算法,进而提高了请求被非法调用的难度。
在上述图2所示的一种网络请求处理方法的基础上,本申请实施例还提供了另一种网络请求处理方法的实现方法。如下结合附图对该实施例进行具体解释说明。图3为本申请实施例提供的另一种网络请求处理方法的流程示意图。如图3所示,上述方法S201前,根据加密算法,将第一密钥与第二密钥进行拼接,生成隐蔽密钥之前,还包括:
S301,在启动应用程序后,获取当前环境的签名信息。
以安卓客户端为例,用户从应用平台中下载APK后,进行安装,安装过程中,会在安卓客户端的文件系统中自动配置该应用程序的预设签名信息,以使安装应用程序的客户端为合法用户。其中,预设签名信息在安装应用程序前预设在APK内,应用程序安装时可将该预设签名信息配置至客户端的文件系统中的配置文件内,如AndroidManifes t.xml、build.prop等配置文件,配置文件内的签名信息可称为引用签名信息,在本申请实施例中,引用签名信息在文件系统中的位置不作具体限制。
本申请实施例中,在APK内还预设获取当前环境的签名信息的方法或者函数,即,预设获取引用签名信息的方法或者函数。用户在客户端启动应用程序后,客户端自动调用该预设方法或者函数获取客户端的文件系统中的配置文件内的签名信息,即,获取当前环境的引用签名信息。
非法用户可能会在下载APK后,不在安卓客户端中安装并运行,而是创建一个与该APK相同包名的本地项目,将该APK导入该本地项目中,进而可以对APK中的加密算法进行本地调用。本申请实施例中,对APK中的加密算法进行本地调用前,该APK会自动调用预设函数,获取本地项目的引用签名信息,即,获取该APK当前环境的引用签名信息。
S302,采用签名信息和本地代码中的预设签名信息进行验证,若验证通过,则调用加密算法。
以安卓客户端为例,在APK内预设签名验证方法或者函数,以验证引用签名信息和预设签名信息是否一致。
获取当前环境的引用签名信息后,调用签名验证方法或者函数,验证引用签名信息和预设签名信息是否一致,若一致,则验证通过,用户可调用加密算法,若不一致,则验证不通过,用户不能对加密算法进行调用。
合法用户通过应用平台下载应用的APK后,进行安装运行,引用签名信息与预设签名信息一致,可正常使用该应用。
非法用户下载APK并将该APK导入本地项目,若非法用户调用该APK中的加密算法,该APK自动通过签名验证方法或者函数验证该APK当前环境的引用签名信息是否与预设签名信息一致。此时,APK当前环境为本地项目的环境,其中,本地项目的环境,可以为非法用户的编程环境。非法用户的编程环境的签名信息与APK内的预设签名信息不一致,因此,引用签名信息与预设签名信息不一致,非法用户不能调用该加密算法。
本申请实施例通过验证引用签名信息与预设签名信息的一致性,提高加密算法的安全性,防止加密算法被非法调用,进而提高请求被非法调用的难度。
在上述实施例的基础上,本申请实施例还提供了另一种网络请求处理方法,客户端中的源代码为采用预设方式混淆后的代码,其中,对应用程序进行代码混淆,包括但不限于控制流平坦化、花指令、标识符混淆、字符串混淆等代码混淆技术。
以安卓客户端为例,将混淆后的代码对外发布,进行代码混淆后的APK,使得用户从公开渠道下载的应用中的源代码为混淆后的代码,该混淆后的代码较难理解,增加了非法用户反编译的难度,进而提高了加密算法的安全性,提高了请求被非法调用的难度。
下述对用以执行的本申请所提供的一种网络请求处理装置进行说明,其具体的实现过程以及技术效果参见上述,下述不再赘述。
图4为本申请实施例提供的一种网络请求处理装置的示意图,如图4所示,该网络请求处理装置包括:
密钥模块401,用于根据系统层的第一密钥、以及调用的应用层的第二密钥,生成隐蔽密钥。
生成模块402,用于根据隐蔽密钥生成加密参数。
请求模块403,用于向服务端发送携带加密参数的业务请求。
接收模块404,用于接收服务端根据参数列表对加密参数验证通过后反馈的响应消息。
可选地,密钥模块401,具体用于根据加密算法,将第一密钥与第二密钥进行拼接,生成隐蔽密钥。
可选地,密钥模块401具体还用于加密算法中添加有防调试线程,防调试线程用于在加密算法被防调试线程附加调试时,其他进程无法调试加密算法。
可选地,密钥模块401具体还用于在启动应用程序后,获取当前环境的签名信息;
采用签名信息和本地代码中的预设签名信息进行验证,若验证通过,则调用加密算法。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
图5为本申请实施例提供的一种计算机设备的示意图,该计算机设备可以是具备计算处理功能的计算设备或服务器。
该计算机设备包括:处理器501、存储介质502、总线503。处理器501和存储介质502通过总线503连接。
存储介质502用于存储程序,处理器501调用存储介质502存储的程序,以执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。
可选地,本发明还提供一种程序产品,例如计算机可读存储介质,包括程序,该程序在被处理器执行时用于执行上述方法实施例。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种网络请求处理方法,其特征在于,应用于客户端,包括:
根据系统层的第一密钥、以及调用的应用层的第二密钥,生成隐蔽密钥;
根据所述隐蔽密钥生成加密参数;
向服务端发送携带所述加密参数的业务请求;
接收所述服务端根据参数列表对所述加密参数验证通过后反馈的响应消息。
2.根据权利要求1所述的方法,其特征在于,所述根据系统层第一密钥、以及调用的应用层的第二密钥,生成隐蔽密钥,包括:
根据加密算法,将所述第一密钥与所述第二密钥进行拼接,生成所述隐蔽密钥。
3.根据权利要求2所述的方法,其特征在于,所述加密算法中添加有防调试线程,所述防调试线程用于在所述加密算法被所述防调试线程附加调试时,其他进程无法调试所述加密算法。
4.根据权利要求2所述的方法,其特征在于,所述根据加密算法,将所述第一密钥与所述第二密钥进行拼接,生成所述隐蔽密钥之前,还包括:
在启动应用程序后,获取当前环境的签名信息;
采用所述签名信息和本地代码中的预设签名信息进行验证,若验证通过,则调用所述加密算法。
5.根据权利要求1所述的方法,其特征在于,所述客户端中的源代码为采用预设方式混淆后的代码。
6.根据权利要求2-4任一项所述的方法,其特征在于,所述加密算法由C++程序语言编写。
7.根据权利要求2-4任一项所述的方法,其特征在于,所述加密算法存储在所述客户端的源代码中。
8.一种网络请求处理装置,其特征在于,包括:
密钥模块,用于根据系统层的第一密钥、以及调用的应用层的第二密钥,生成隐蔽密钥;
生成模块,用于根据所述隐蔽密钥生成加密参数;
请求模块,用于向服务端发送携带所述加密参数的业务请求;
接收模块,用于接收所述服务端根据参数列表对所述加密参数验证通过后反馈的响应消息。
9.一种计算机设备,其特征在于,包括:存储器和处理器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述权利要求1-7中任一项所述的网络请求处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被读取并执行时,实现上述权利要求1-7中任一项所述的网络请求处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111595034.6A CN114238870A (zh) | 2021-12-24 | 2021-12-24 | 一种网络请求处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111595034.6A CN114238870A (zh) | 2021-12-24 | 2021-12-24 | 一种网络请求处理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114238870A true CN114238870A (zh) | 2022-03-25 |
Family
ID=80762360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111595034.6A Pending CN114238870A (zh) | 2021-12-24 | 2021-12-24 | 一种网络请求处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114238870A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116633594A (zh) * | 2023-04-18 | 2023-08-22 | 上海亿阁科技有限公司 | Flamingo网关安全系统 |
-
2021
- 2021-12-24 CN CN202111595034.6A patent/CN114238870A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116633594A (zh) * | 2023-04-18 | 2023-08-22 | 上海亿阁科技有限公司 | Flamingo网关安全系统 |
CN116633594B (zh) * | 2023-04-18 | 2024-02-27 | 上海亿阁科技有限公司 | Flamingo网关安全系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210049248A1 (en) | Securing webpages, webapps and applications | |
CN111143869B (zh) | 应用程序包处理方法、装置、电子设备及存储介质 | |
CN104932902B (zh) | 一种生成apk文件的方法及终端 | |
KR101471589B1 (ko) | 공통중간언어 기반 프로그램을 위한 보안 제공 방법 | |
US10797868B2 (en) | Shared secret establishment | |
CN109194625B (zh) | 一种基于云端服务器的客户端应用保护方法、装置及存储介质 | |
CN108259479B (zh) | 业务数据处理方法、客户端与计算机可读存储介质 | |
Piao et al. | Server‐based code obfuscation scheme for APK tamper detection | |
CN107870793B (zh) | 一种应用程序中加载so文件的方法及装置 | |
CN110069241B (zh) | 伪随机数的获取方法、装置、客户端设备和服务器 | |
CN110489942B (zh) | 一种WebAssembly文件的处理方法及系统 | |
US10482221B2 (en) | Protecting a computer program against reverse engineering | |
CN108062461A (zh) | 一种软件授权方法、装置及系统 | |
CN110958239B (zh) | 访问请求的校验方法和装置、存储介质及电子装置 | |
CN110968872A (zh) | 文件漏洞的检测处理方法、装置、电子设备及存储介质 | |
WO2023029447A1 (zh) | 模型保护方法、装置、设备、系统以及存储介质 | |
CN113467784A (zh) | 应用程序处理方法及其装置、计算机可读存储介质 | |
CN111460410A (zh) | 服务器登录方法、装置、系统与计算机可读存储介质 | |
CN109981262A (zh) | 一种客户端防暴力破解方法及装置 | |
Ozkan et al. | Security analysis of mobile authenticator applications | |
CN108923910B (zh) | 一种移动应用apk防篡改的方法 | |
CN114238870A (zh) | 一种网络请求处理方法、装置、设备及存储介质 | |
CN104965701B (zh) | 获取应用信息的方法及装置 | |
CN115730319A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN111611551A (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 |