一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

动态获取应用程序通信密钥的方法、系统、电子设备及存储介质与流程

2022-11-16 16:27:40 来源:中国专利 TAG:


1.本发明涉及网络安全技术领域,尤其涉及一种动态获取应用程序通信密钥的方法、系统、电子设备及存储介质。


背景技术:

2.在终端系统中,对于有网络外联行为的第三方闭源应用程序,大多数采用tls/ssl加密方式。使用网络抓包或封包解析软件,例如tcpdump、wireshark软件等,可以截获应用程序的网络流量。但是如果不掌握tls解密密钥,无法获取通信明文数据,进而无法监控应用程序行为。为了获取网络明文流量数据,通常是在应用程序挂钩子(hook),步骤是逆向分析应用程序执行流程,定位tls加解密程序,针对发送加密数据和解密处理函数,设置程序钩子,获取明文流量信息。
3.然而,本技术的发明人在实现本发明创造的过程中发现:上述方案需要对不同应用程序定制开发,而且部分应用程序由于采用混淆和加壳技术,无法定位加解密函数,从而无法获取通信明文流量数据。


技术实现要素:

4.有鉴于此,本发明实施例提供一种动态获取应用程序通信密钥的方法、系统、电子设备及存储介质,便于获取第三方应用程序的通信明文流量数据。
5.为达到上述发明目的,采用如下技术方案:
6.第一方面,本发明实施例提供一种动态获取应用程序通信密钥的方法,所述方法包括步骤:
7.判断第三方应用程序通信时加密流量所携带的第一公钥与当前计算出的第二公钥是否一致;
8.若一致,则根据计算所述第一公钥时所使用的第一随机数计算得到加/解密密钥;
9.其中,所述第一公钥与所述第二公钥均是基于操作系统自定义随机数生成器根据实时输入参数生成的随机数列中的随机数生成。
10.可选地,该方法之前还包括:监听通信链路中的网络流量,获取携带加密数据的加密流量;
11.其中,第三方应用程序通信过程中,从第一随机数列中取出第一随机数生成第一公钥和加/解密密钥,所述第一随机数列为操作系统自定义随机数生成器根据实时输入参数生成;
12.基于所述加/解密密钥对待传输数据进行加密,得到加密数据;
13.携带所述第一公钥传输所述加密数据。
14.可选地,所述获取携带加密数据的加密流量之后还包括:提取所述加密流量中携带的第一公钥,并从第二随机数列中取出第二随机数,所述第二随机数列为操作系统自定
义随机数生成器根据实时输入参数生成;
15.根据所述第二随机数基于预设加密算法计算出对应的第二公钥;
16.判断所述第一公钥与所述第二公钥是否一致;
17.若一致,则基于所述第二随机数计算得到加/解密密钥。
18.可选地,在所述判断所述第一公钥与所述第二公钥是否一致之后,所述方法还包括:若不一致,则枚举预定时间范围内的随机数生成器输入参数,输入至所述操作系统自定义随机数生成器,得到第三随机数列;
19.从所述第三随机数列中轮询选取随机数,并根据选取的随机数计算相应的第三公钥,并判断所述第三公钥与所述第一公钥是否一致;
20.若一致,则根据轮询当次对应的随机数计算得到加/解密密钥。
21.可选地,在若一致之后,计算得到加/解密密钥之前,所述方法还包括:确定第二随机数或当次对应的随机数与所述第一随机数相同。
22.可选地,所述实时输入参数分别包括:种子、实时时间和/或硬件信息。
23.可选地,在当第三方应用程序通信过程中之前,所述方法还包括:将第三方应用程序的rng函数替换为操作系统自定义随机数生成器;所述操作系统自定义随机数生成器包含:操作系统内置随机数生成器;
24.基于所述操作系统自定义随机数生成器生成随机数列;所述随机数列包含预定位数的随机数。
25.第二方面,本发明实施例还提供一种动态获取应用程序通信密钥的系统,包括:判断程序模块,用于判断第三方应用程序通信时加密流量所携带的第一公钥与当前计算出的第二公钥是否一致;
26.解密程序模块,用于若判断一致,则根据计算所述第一公钥时所使用的第一随机数计算得到加/解密密钥;
27.其中,所述第一公钥与所述第二公钥均是基于操作系统自定义随机数生成器根据实时输入参数生成的随机数列中的随机数生成。
28.第三方面,本发明实施例提供一种电子设备,包括:一个或者多个处理器;存储器;所述存储器中存储有一个或者多个可执行程序,所述一个或者多个处理器读取存储器中存储的可执行程序代码,运行与可执行程序代码对应的动态获取应用程序通信密钥的系统,以用于执行第一方面任一所述的动态获取应用程序通信密钥的方法。
29.第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现第一方面任一所述的动态获取应用程序通信密钥的方法。
30.本发明实施例采用操作系统自定义随机数生成器,替换第三方应用程序自身rng函数生成随机数列,使第三方应用程序基于该随机数列生成第一公钥和加/解密密钥以进行加密传输,监听网络流量时,基于操作系统自定义随机数生成器根据当前输入参数动态生成的随机数列中的随机数计算出的第二公钥,判断第一公钥与第二公钥是否一致,若一致,则相当于当前随机数与第一随机数一致,进而逆推得出第一随机数,并基于逆推得到的第一随机数计算得到加/解密密钥。这样,相比于现有网络明文流量数据或加/解密密码获取方案,通过采用系统生成随机数机制,既不需要对不同应程序专门定制开发,也不需要修
改第三方应用程序程序代码,逆向分析应用程序结构和脱壳和反混淆,根据上述步骤即可获取第三方应用程序的加/解密密钥,进而便于获取第三方应用程序的通信明文流量数据。
附图说明
31.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
32.图1为本发明一实施例动态获取应用程序通信密钥的方法的流程示意图;
33.图2为本发明另一实施例动态获取应用程序通信密钥的方法流程示意图;
34.图3为本发明再一实施例动态获取应用程序通信密钥的方法流程示意图;
35.图4为本发明又一实施例动态获取应用程序通信密钥的方法流程示意图;
36.图5为本发明一实施例动态获取应用程序通信密钥的系统架构示意框图;
37.图6为本发明一实施例动态获取应用程序通信密钥的系统架构示意框图;
38.图7为本发明另一实施例动态获取应用程序通信密钥的系统架构及其应用示意框图;
39.图8为本发明电子设备的一个实施例架构示意框图。
具体实施方式
40.下面结合附图对本发明实施例进行详细描述。
41.应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
42.本发明实施例提供的动态获取应用程序通信密钥的方法,可应用于网络安全分析场景中,例如,对恶意应用程序的监测及分析等。通过基于系统自带随机数生成器替换第三方应用程序随机数生成函数(rng函数)通用方法,解决各种闭源应用程序tls(transport layer security,一种传输层密码通信协议或框架)流量解密和实时监控存在的技术问题,便于获取第三方应用程序的通信明文流量数据,从而能够监测及分析第三方应用程序是否为恶意程序,保障网络资产安全运行。
43.需要说明的是,该方法可以以软件的形式固化于某一制造的实体产品中,当用户在使用该产品时,可以再现本技术的方法流程。
44.图1为本发明一实施例动态获取应用程序通信密钥的方法流程示意图;参看图1所示,所述动态获取应用程序通信密钥的方法可以应用于第三方应用程序与服务器通信过程中,所述方法包括步骤:
45.s101、判断第三方应用程序通信时加密流量所携带的第一公钥与当前计算出的第二公钥是否一致;
46.s103、若一致,则根据计算所述第一公钥时所使用的第一随机数计算得到加/解密密钥。
47.其中,所述第一公钥与所述第二公钥均是基于操作系统自定义随机数生成器根据
实时输入参数生成的随机数列中的随机数生成。
48.本发明实施例中,采用操作系统自定义随机数生成器,替换第三方应用程序自身rng函数生成随机数列,使第三方应用程序基于该随机数列生成第一公钥和加/解密密钥以进行加密传输,监听网络流量时,基于操作系统自定义随机数生成器根据当前输入参数动态生成的随机数列中的随机数计算出第二公钥,判断第一公钥与第二公钥是否一致,若一致,则相当于当前随机数与第一随机数一致,进而逆推得出第一随机数,并基于逆推得到的第一随机数计算得到加/解密密钥。这样,相比于现有网络明文流量数据或加/解密密码获取方案,通过采用系统生成随机数机制,既不需要对不同应程序专门定制开发,也不需要修改第三方应用程序程序代码,逆向分析应用程序结构和脱壳和反混淆,根据上述步骤即可获取第三方应用程序的加/解密密钥,进而便于获取第三方应用程序的通信明文流量数据。
49.作为一可选实施例,该方法之前还包括:监听通信链路中的网络流量,获取携带加密数据的加密流量。
50.其中,第三方应用程序通信过程中,从第一随机数列中取出第一随机数生成第一公钥和加/解密密钥,所述第一随机数列为操作系统自定义随机数生成器根据实时输入参数生成;基于所述加/解密密钥对待传输数据进行加密,得到加密数据;携带所述第一公钥传输所述加密数据。
51.请参看图2所示,本实施例中,当第三方应用程序从第一随机数列中取出第一随机数生成第一公钥和加/解密密钥,基于所述加/解密密钥加密数据,并携带所述第一公钥(pubkey)传输所述加密数据时;执行步骤s110、监听通信链路中的网络流量,获取携带所述加密数据的加密流量。
52.其中,所述第一随机数列是基于操作系统自定义随机数生成器(random number generator)根据第一输入参数生成的。这样,通过替换原有第三方应用程序基于自身rng函数生成随机数,进而用于计算得到公钥和其它密钥的方案,无需针对不同的应用程序定制开发,适配性更好,进而可降低开发成本。
53.本实施例中,作为一可选实施例,所述第一输入参数分别包括:种子(seed)、实时时间(time)和/或硬件信息(hw),所述硬件信息包含资产(这里主要指终端设备,也可以是服务器,本质都是计算机等电子设备)的指令、内存等硬件信息。优选种子、实时时间和硬件信息为第一输入参数,这样可以确保随机数产生随机性。
54.s120、基于所述操作系统自定义随机数生成器根据当前输入参数生成第二随机数列。
55.本实施例中,所述当前输入参数也包括:种子、实时时间和/或硬件信息。监听获取到加密流量之后,开始实施解密任务。由于该加密流量的相关密钥是基于操作系统自定义随机数生成器生成的随机数列中的随机数生成的,可以通过所述操作系统自定义随机数生成器根据当前输入参数计算得到的一个第二随机数列;当前输入参数选取与第一输入参数在预定时间差范围内的参数值,这样,可以减少解密过程中的数据计算量,具体是提升枚举随机数生成器输入参数的例举效率,进而提升数据解密效率。
56.s130、提取所述加密流量中携带的第一公钥,并从第二随机数列中取出第二随机数;所述第二随机数列为操作系统自定义随机数生成器根据实时输入参数生成;
57.可以理解的是,公钥一般是都可以看到的,而加/解密密钥则只有传输数据的用户
知道。如果要获取明文流量数据,则需要先得到加/解密密钥。
58.s140、根据所述第二随机数基于预设加密算法计算出对应的第二公钥;
59.本实施例中,该预设加密算法与第三方应用程序基于第一随机数计算得到第一公钥的加密算法一致。加密算法为数据加密传输技术领域的成熟技术,就不再赘述。
60.可以理解的是,由于先前第三方应用程序生成密钥使用的第一随机数和当前的第二随机数基于同一随机数生成器生成,尽管不知道第一随机数的确切值,但是可以根据预定时间范围选取相应的输入参数输入该随机数生成器中得到第二随机数,再根据后续方法步骤确定是否可以用于计算第三方应用程序的加/解密密钥。而一旦随机数确定下来,根据相同的加密算法就可以计算得到当前加密数据的加/解密密钥。
61.s150、判断所述第一公钥与所述第二公钥是否一致;
62.若一致,则执行步骤s160a、基于所述第二随机数计算得到加/解密密钥。
63.本实施例中,如果第一公钥与所述第二公钥一致,则表明第二随机数与第三方应用程序使用的第一随机数相同。这样,就可以基于该第二随机数直接计算得到加/解密密钥。
64.本发明实施例提供的技术方案,当第三方应用程序与服务器等电子设备基于tls/ssl协议通信时,第三应用程序生成公钥和加/解密密钥的随机数是基于操作系统自定义随机数生成器根据第一输入参数生成的,替换了原来由第三方应用程序自身rng函数(随机数生成函数)生成随机数的方式。由于采用系统自定义随机数生成器,替换第三方应用程序自身rng函数生成第一随机数列,使第三方应用程序基于该随机数列生成公钥和加/解密密钥加密传输,通过监听通信链路中的网络流量,获取加密流量,并基于所述操作系统自定义随机数生成器根据当前输入参数动态地生成第二随机数列,并根据所述第二随机数列的随机数根据预设加密算法计算出对应第二公钥,将该第二公钥与先前第三方程序生成的第一公钥进行比对,若一致,则可逆推得出第一随机数,并基于逆推得到的第一随机数(即与公钥一致时对应的第二随机数相同)计算得到加/解密密钥。这样,相比于现有网络明文流量数据或加/解密密码获取方案,通过采用系统生成随机数机制,既不需要对不同应程序专门定制开发,也不需要修改第三方应用程序程序代码,逆向分析应用程序结构和脱壳和反混淆,根据上述步骤即可获取第三方应用程序的加/解密密钥,进而便于获取第三方应用程序的通信明文流量数据。
65.另外,现有通过在应用程序挂钩子获取网络明文流量数据的方案,对于某些带有反调试和完整性验证功能的应用程序,无法挂载钩子,致使无法成功获取网络明文流量数据。
66.而本实施例中,通过基于操作系统自定义随机数生成器及其加载机制,可以无需在应用程序挂载钩子(hook),通过本实施例提供的上述方法步骤即可成功获取网络明文流量数据,相比于在应用程序挂载钩子的方案,密钥获取成功率高。
67.为了确保随机数函数输出高质量的随机数列,具体的,所述系统自定义随机数生成器采用高安全单向杂凑函数作为随机数生成器,输入参数以种子为初始值,并辅以实时时间和硬件信息作为变化的输入。由于其中指令内容、内存内容等硬件信息与终端设备环境强相关,而且每次终端设备重启参数内容都会变化,从而可以确保随机数函数输出高质量的随机数,并且不影响原有应用程序的安全性。
68.另外,尽管基于相同的自定义随机数生成器,但作为自定义随机数生成器输入参数的种子、实时时间、硬件信息等参数可能不一致,造成相同随机数生成器生成的随机数输出不一致,如第一随机数和第二随机数可能不同,导致无法准确计算出加/解密密钥。
69.为了解决上述随机数输出存在偏差导致无法计算出加/解密密钥的问题,请参看图3所示,在一些实施例中,在所述判断所述第一公钥与所述第二公钥是否一致之后,所述方法还包括:若不一致,则执行步骤s160b1、枚举预定时间范围内的随机数生成器输入参数,输入至所述操作系统自定义随机数生成器,得到第三随机数列;
70.s160b3、从所述第三随机数列中轮询选取随机数,并根据选取的随机数计算相应的第三公钥,并判断所述第三公钥与所述第一公钥是否一致;
71.s160b5、若一致,则根据轮询当次对应的随机数计算得到加/解密密钥,采用枚举有限参数的方式,配合监控流量参数,计算出第三方应用程序随机数输出,从而推出解密密钥。
72.本实施例中,在第一公钥与第二公钥不一致,即第一随机数与第二随机数相应也不一致的情况下,通过枚举参数方式,逆推出第三方应用程序所使用的第一随机数,从而可以计算得到解密密钥,由此解决了输入参数不同导致随机数列不一致无法成功获取密钥的问题。
73.如上述公开,公钥与随机数是对应的,公钥判定是否一致之后,也就可以判断相应的随机数是不是相同的。因此,在一些实施例中,当判定公钥一致之后,且计算得到加/解密密钥之前,所述方法还包括:确定第二随机数或当次对应的随机数与所述第一随机数相同。
74.在一些实施例中,在当第三方应用程序从第一随机数列中取出第一随机数生成第一公钥和加/解密密钥之前,所述方法还包括:将第三方应用程序的rng函数替换为操作系统自定义随机数生成器;所述操作系统自定义随机数生成器包含:操作系统内置随机数生成器。基于所述操作系统自定义随机数生成器生成随机数列;所述随机数列包含预定位数的随机数。
75.其中,替换闭源第三方应用程序的随机数产生函数rng,根据操作系统的不同可以利用其内置随机数生成器与操作系统加载机制进行替换。例如,对于windows系统,可以采用其dll劫持机制替换其内存中的第三方应用程序的随机数产生函数rng;而对于linux系统,可以采用其ld_preload加载机制替换;对于android系统,可以采用其so文件加载机制替换等。作为随机数生成器的输入参数包括:种子、实时时间和指令、内存等硬件信息。
76.本实施例中,通过基于操作系统自定义随机数生成器替换第三方应用程序自身的rng函数,并使第三应用程序在与服务器等通信时,基于该操作系统自定义随机数生成器生成的随机数根据预设加密算法得到公钥和加/解密密码,在后续仍然基于该同一操作系统自定义随机数生成器生成的随机数推出与第三方应用程序使用的随机数相同的随机数,进而计算得到加/解密密钥,可以不修改第三方应用程序程序代码,不需要逆向分析应用程序结构和脱壳和反混淆,即可以动态获取tls密钥,进而成功获取明文流量数据。
77.当然,为了使第三方应用程序通信时从系统指定随机数生成器处读取随机数,在一些实施例中,需要配置终端设备的操作系统环境,利用操作的加载机制使第三方应用程序从系统指定随机数生成器处读取随机数,以实现本实施例中的方法步骤,从而成功获取解密密钥,解密并获取明文流量数据。
78.所述第三方应用程序基于tls/ssl协议与服务器通信,所述通信密钥为基于tls/ssl协议通信的密钥。
79.请参看图4所示,在得到所述加/解密秘钥之后,所述方法还包括步骤s170、根据所述加/解密密钥解密加密流量,获取对应的明文流量流量数据。由此,可以根据获取的通信明文流量数据,实时分析和监控第三方应用程序网络流量。
80.为了帮助理解本发明实施例提供的技术方案,以下结合具体示例对本发明实施例的技术方案及其技术效果进行如下详细说明:
81.某服务器(linux系统)运行第三方应用程序,该应用程序使用tls加密协议,与远端服务器通信。安全防护软件为了检测该应用程序是否是恶意程序,需要分析第三方应用程序与服务端的通信流量数据,采用本方案一实施例实现过程如下:
82.1、基于操作系统加载机制,替换闭源第三方应用程序的rng函数,例如在linux系统下,利用ld_preload动态库预加载机制,替换rng函数,使用系统自带的随机数生成器,输入参数包括:种子、实时时间、指令、内存等硬件信息。
83.2、闭源第三方应用程序在tls通信初始化过程,读取所述系统自带的随机数生成器的输出,取随机数a作为根密钥,生成pubkey和其他密钥,该其它密钥包含加/解密密钥,使用加/解密密钥加密发送数据包至服务器。
84.3、实时监控网络链路中的网络流量,获取tls加密流量。
85.4、调用所述系统自带随机数生成器,读取预定时间范围内的种子、实时时间、指令、内存等硬件信息等参数,计算得到第二随机数列。
86.5、提取网络流量中携带的关键数据pubkey,从第二随机数列中取随机数b,通过随机数b,计算随机数b对应的pubkey,判断该pubkey与第三方应用程序生成的pubkey是否一致。
87.如果一致,表示密钥处理模块随机数与应用程序产生随机数相同,可以直接计算解密密钥。
88.如果不一致,则开始枚举预定偏离范围内的rng函数输入信息实时时间、指令数据、内存等硬件数据,得到随机数ci;
89.根据ci计算出pi,直到pi等于pubkey,表明ci与随机数a相同。然后基于ci计算推导出加/解密密钥。
90.6、获取加/解密密钥,解密tls流量,获取网络明文流量数据,从而可以实时分析和监控应用程序网络流量。
91.由此,本发明实施例中,基于定制随机数生成器,便于动态获取tls密钥方法,实现tls流量成功解密;进一步地,在此过程中解决了随机数源输出存在偏差无法成功获取加/解密密钥的问题,提高了tls加/解密密钥获取的成功率。
92.具体的,本实施例中的方法可以开发成一款程序,运行该程序以执行本实施例中的方法步骤。或者,将所述程序作为插件集成到wireshark、ssldump等常用流量监控和分析软件中,以在软件原有业务的基础上,扩展新的功能。
93.根据上述公开可知,本发明实施例提供的获取应用程序通信密钥的方法,基于自定义随机数发生器替换原有第三方应用程序自身rng函数,执行上述方法步骤,便于成功地动态获取tls加/解密密钥,实现tls流量解密。进一步地,无需修改第三方应用程序程序代
码,不需要逆向分析应用程序结构和脱壳和反混淆,采用系统加载机制,执行上述方法步骤即可以动态获取到tls密钥。基于系统内置随机数生成器在需要时计算得到tls密钥,无需存储在数据库和文件中,在一定程度上可以防止tls密钥泄露,保障通信安全。
94.实施例二
95.图5为本发明一实施例动态获取应用程序通信密钥的系统架构示意框图,请参看图5所示,基于与前述实施例一中各实施例相同的技术构思,还提供一种动态获取应用程序通信密钥的系统,包括:判断程序模块201,用于判断第三方应用程序通信时加密流量所携带的第一公钥与当前计算出的第二公钥是否一致;
96.解密程序模块203,用于若判断一致,则根据计算所述第一公钥时所使用的第一随机数计算得到加/解密密钥;
97.其中,所述第一公钥与所述第二公钥均是基于操作系统自定义随机数生成器根据实时输入参数生成的随机数列中的随机数生成。
98.本实施例的系统可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果与实施例一类似,此处不再多赘述,可相互参看。
99.请参看图6所示,在一些实施例中,所述方法包括:监听程序模块210,用于当第三方应用程序从随机数列中取出第一随机数生成第一公钥和加/解密密钥,基于所述加/解密密钥加密数据,并携带所述第一公钥传输所述加密数据时,监听通信链路中的网络流量,获取携带所述加密数据的加密流量;其中,所述第一随机数列是基于操作系统自定义随机数生成器根据第一输入参数生成的;第一生成程序模块220,用于基于所述随机数生成器根据当前输入参数生成第二随机数列;提取程序模块230,用于提取所述加密流量中携带的第一公钥,并从所述第二随机数列中取出第二随机数;计算程序模块240,用于根据所述第二随机数基于预设加密算法计算出对应的第二公钥;判断程序模块260,用于判断所述第一公钥与所述第二公钥是否一致;解密程序模块270,用于若判断一致,则基于所述第二随机数计算得到加/解密密钥。其中,当第一公钥与第二公钥一致时,基于相同加密算法得到的第一随机数与第二随机数相同。
100.本实施例的系统可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果与实施例一类似,此处不再多赘述,可相互参看。
101.另外,可以理解的是,图6所示的系统,也适用于实施例一中其它实施例执行步骤流程,具体可参看实施例一中相关描述,在此就不再赘述。
102.本发明实施例中的各程序模块也可以根据程序执行的任务按照其它方式组合或命名,请参看图7所示,例如,所述系统包括:随机数加载模块,用于将第三方应用程序的rng函数替换为操作系统自定义随机数生成器;密钥处理模块,用于同步加载所述操作系统自定义随机数生成器,并可一并执行上述第一生成程序模块、提取程序模块、计算程序模块、判断程序模块及解密程序模块执行的任务;流量监控模块,可用于执行上述监听程序模块执行的任务。此处仅是为帮助理解而举例说明程序模块的划分可以根据具体执行任务不同而有所变化,再比如,流量监控模块也可以和密码处理模块集成到一起;但执行的总的步骤流程则基本相同,具体可参看实施例一或上述描述,就不再赘述。
103.本发明实施例提供的动态获取应用程序通信密钥的系统,通过上述各程序模块,相互配合,协同作用,紧密联系,基于自定义随机数发生器替换原有第三方应用程序自身
rng函数,执行上述方法步骤,便于成功地动态获取tls加/解密密钥,实现tls流量解密。进一步地,无需修改第三方应用程序程序代码,不需要逆向分析应用程序结构和脱壳和反混淆,采用系统加载机制,执行上述方法步骤即可以动态获取到tls密钥。基于系统内置随机数生成器在需要时计算得到tls密钥,无需存储在数据库和文件中,在一定程度上可以防止tls密钥泄露,保障通信安全。
104.实施例三
105.本发明还实施例提供了一种电子设备,包括:一个或者多个处理器;存储器;所述存储器中存储有一个或者多个可执行程序,所述一个或者多个处理器读取存储器中存储的可执行程序代码,运行与可执行程序代码对应的动态获取应用程序通信密钥的系统,以用于执行实施例一任一所述的动态获取应用程序通信密钥的方法。
106.图8为本发明电子设备一个实施例的结构示意图,其可以实现本发明实施例一任一所述的方法,如图8所示,作为一可选实施例,上述电子设备可以包括:壳体41、处理器42、存储器43、电路板44和电源电路45,其中,电路板44安置在壳体41围成的空间内部,处理器42和存储器43设置在电路板44上;电源电路45,用于为上述电子设备的各个电路或器件供电;存储器43用于存储可执行程序代码;处理器42通过读取存储器43中存储的可执行程序代码来运行与可执行程序代码对应的动态获取应用程序通信密钥的系统,用于执行前述是实施例一中任一所述的动态获取应用程序通信密钥的方法。
107.处理器42对上述步骤的具体执行过程以及处理器42通过运行可执行程序代码来进一步执行的步骤,可以参见本发明动态获取应用程序通信密钥的方法实施例一的描述,在此不再赘述。
108.该电子设备以多种形式存在,包括但不限于:(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机、多媒体手机、功能性手机,以及低端手机等。(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如ipad。(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放模块(例如ipod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。(5)其他具有数据交互功能的电子设备。
109.本发明还实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述实施例一中任一所述的动态获取应用程序通信密钥的方法。
110.综上,根据上述各实施例描述可知,本发明实施例公开的动态获取应用程序通信密钥的方法及系统,便于成功地动态获取tls加/解密密钥,实现tls流量解密。进一步地,无需修改第三方应用程序程序代码,不需要逆向分析应用程序结构和脱壳和反混淆,采用系统加载机制,执行上述方法步骤即可以动态获取到tls密钥,成功率高。进一步地,通过采用枚举参数范围方式,配合监控流量关键参数,计算出第三方应用程序生成密钥使用的随机数,从而推出解密密钥,解决了随机数源输出存在偏差而无法成功获取tls加/解密密钥的
技术难题;更进一步地,基于系统内置随机数生成器在需要时计算得到tls密钥,无需存储在数据库和文件中,在一定程度上可以防止tls密钥泄露,保障通信安全。
111.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
112.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
113.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质还可为磁碟、光盘、只读存储记忆体(read-oily memory,rom)或随机存储记忆体(raidom access memory,ram)等。
114.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献