一种移动应用程序透明通信保护方法与装置制造方法及图纸

技术编号:24104374 阅读:35 留言:0更新日期:2020-05-09 15:20
本发明专利技术公开了一种应用程序透明通信保护方法及装置,方法包括:监控Android系统上所有应用的进程;拦截被保护应用程序的网络请求;对网络请求中携带的请求数据进行加密,并将网络请求中的网络连接目标地址替换为通信转发节点服务器的中转地址;通信转发节点服务器根据网络协议解析并完成安全检测,根据负载均衡策略转发至网络请求服务器;网络请求服务器对加密的请求数据解密后,拼装为正常网络访问并代理该请求应答发送至网络连接目标地址;应答消息通过会话密钥加密后,经通信转发节点服务器返回,同样被拦截函数所劫持,通过解密并获取应答消息,返回给上层函数。采用本发明专利技术,可以保证数据传输的安全性和可靠性。

A transparent communication protection method and device for mobile application

【技术实现步骤摘要】
一种移动应用程序透明通信保护方法与装置
本专利技术涉及移动应用程序通信领域,尤其涉及一种移动应用程序透明通信保护方法与装置。
技术介绍
随着移动互联网的迅速发展,移动智能终端的使用越来越普及,尤其是谷歌公司开源的Android系统更是占据了移动智能设备的绝大市场份额,各种移动应用程序层出不穷,这些移动应用程序在给人们的生活带来各种便利的同时,也由于其网络通信行为的复杂性、不确定性,给移动互联网安全、稳定运行带来了严峻的挑战。例如,某些移动应用程序在运行过程中可能会与多个不同的服务器进行通信,恶意攻击者通过监听嗅探网络传输数据获取用户传输数据,甚至个别移动应用程序会与潜在的恶意服务器进行隐匿通信从而泄露个人隐私数据和其他重要信息。因此,有必要对移动应用程序运行过程中的网络流量数据进行保护,以便更好保护用户隐私。目前由于TLS/SSL普及还不够,同时限于应用程序开发者技术能力和成本,目前很多移动应用程序仍使用明文传输数据,存在攻击者分析通信内容获取关键信息的风险,使得用户隐私数据存在极大的安全风险。虽然目前也有一些方案,如采用专门的HTTPS协议,修改系统底层固件或重新封装通信函数,在开发时需引入新的SDK,使用专门的通信接口,极大的增加更加了开发者的负担,同时也影响了应用程序兼容性。当前并没有针对移动应用程序透明通信保护的成熟方案。
技术实现思路
为克服上述现有技术的不足,本专利技术提供一种移动应用程序透明通信保护方法与装置,不需要引入专门的SDK,开发者移动应用无需修改,不改变用户使用行为,即可使得移动应用程序的网络连接得到安全检查,发送的数据经过透明加密处理,防止他人通过分析网络数据,获取用户和应用的敏感数据,极大提高安全性和使用便捷性。实现移动应用程序透明通信保护方法与装置,同时还可以提供一种透明内网代理的功能,解决由于内网服务器限制,需要某些移动应用在使用中使用某些固定的暴露在外网的服务器来访问内网数据的应用场景。为了实现上述目的,本专利技术提供的技术方案是:本专利技术实施例提出一种移动应用程序透明通信保护方法,该方法包括以下步骤:S1:在Android系统中安装移动应用程序客户端,所述移动应用程序客户端用于监控所述Android系统上所有应用的进程;S2:当被保护应用启动时,所述移动应用程序客户端注入所述被保护应用的内存空间,并替换所述被保护应用的网络连接函数为所述移动应用程序客户端中定义的拦截函数;S3:当所述被保护应用发起网络请求时,由所述拦截函数获取源链接网络请求的IP地址和端口,并将其对应更改为通信转发节点服务器的IP地址和端口,然后执行网络协议中密钥协商、传输数据加密,并按照所述网络协议填入所述源链接网络请求的IP地址和端口以及所述传输数据形成网络数据包进行发送;S4:获取所述拦截函数的执行结果,并返回所述被保护应用的内存空间继续执行;S5:所述通信转发节点服务器根据所述网络协议从所述网络数据包中获取所述源链接网络请求IP地址和端口,对所述源链接网络请求IP地址和端口执行安全检测并根据负载均衡策略转发至网络请求服务器;S6:所述网络请求服务器获取所示网络数据包,按照所述网络协议解析获取所述源链接网络请求的IP地址和端口、所述传输数据,并作出应答消息;S7:所述应答消息通过会话密钥加密后,经所述通信转发节点服务器返回所述被保护应用程序,被所述拦截函数拦截,通过解密并获取所述应答消息后返回给上层函数。根据本专利技术的一些实施例,所述步骤S1,包括:通过所述移动应用程序客户端获取所述Android系统中安装的应用列表,根据应用场景需求选择被保护应用集合;通过所述移动应用程序客户端选择网络协议的参数,并配置服务器证书以及相关加密、解密参数。在本专利技术的一些实施例中,所述步骤S2,包括:S21:获取所述Android系统安装的应用的当前进程列表,判断所述被保护应用是否在运行;S22:若存在所述被保护应用在运行,获取所述被保护应用的目标进程PID,使用系统函数ptrace拦截所述目标进程,并将拦截函数所在的动态链接库注入所述被保护应用的内存空间;S23:利用所述ptrace执行注入的所述动态链接库中的入口函数,保存所述被保护应用的当前执行状态,获取所述被保护应用的网络连接函数connect,sendto,recvfrom及注入的拦截函数x_connect,x_sendto,x_recvfrom所在内存地址,并替换相应网络连接函数实现调用劫持;S24:所述被保护应用发起网络连接时,调用所述拦截函数,并在其执行完毕后跳转回所述系统函数继续执行。在本专利技术的一些实施例中,所述步骤S3,包括:密钥协商,所述被保护应用发起网络请求时,所述拦截函数x_connect随机生成通信会话密钥K,利用配置的服务器证书公钥进行加密,得到会话密钥密文E(K),按照以下格式编排所述网络数据包:会话密钥密文E(K)前增加2字节编码固定为A6EF作为网络数据包头部,经所述通信转发节点服务器发送至所述网络请求服务器,所述通信转发节点服务器解密获取会话密钥,完成密钥协商。数据加密,所述被保护应用发送所述网络请求时,所述拦截函数使用分组密码算法及通信会话密钥K对所述网络数据包中的传输数据加密得到传输数据密文EK(M),并计算所述传输数据的哈希散列值H(M)。数据解密,所述被保护应用接收所述网请求时,所述拦截函数使用分组密码及通信会话密钥K对所述传输数据解密得到传输数据明文M;传输格式,所述拦截函数将按照以下传输格式编排所发送的网络数据包:在所述传输数据密文EK(M)前增加42字节编码作为网络数据包头部,其中,前2个字节固定为A6EE,第3到18字节存放源链接IP地址包括IPV4或IPV6协议地址,第19到22字节存放源链接端口信息,第23到42字节存放传输数据哈希散列值H(M)。在本专利技术的一些实施例中,所述步骤S5,包括:安全检测,所述网络请求服务器根据获取的上述网络请求,对连接的IP地址进行安全性检测,确认该IP不在威胁黑名单中,对于不安全的请求连接则返回错误信息码。负载均衡,所述通信转发节点服务器根据获取网络连接信息,以及目前服务器连接状态,根据预先定义好的负载均衡策略,选择网络请求服务器,并转发该请求。本专利技术实施例还提出一种移动应用程序透明通信保护装置,该装置包括:移动应用程序客户端,用于管理、配置被保护应用集合,执行注入拦截函数、网络连接相关操作函数,执行网络协议操作。通信转发节点服务器,用于对网络连接进行安全检测,并依据负载均衡策略进行网络请求的转发。网络请求服务器,用于执行网络协议操作、解密数据、拼装源链接请求并代理访问、以及加密应答消息并返回。根据本专利技术的一些实施例,所述移动应用程序客户端包括管理配置模块、注入拦截模块、网络协议模块、加解密模块;所述移动应用程序客户端启动后通过所述管理配置模块进行所述被保护应用的选择本文档来自技高网...

【技术保护点】
1.一种移动应用程序透明通信保护方法,其特征在于,该方法包括以下步骤:/nS1:在Android系统中安装移动应用程序客户端,所述移动应用程序客户端用于监控所述Android系统上所有应用的进程;/nS2:当被保护应用启动时,所述移动应用程序客户端注入所述被保护应用的内存空间,并替换所述被保护应用的网络连接函数为所述移动应用程序客户端中定义的拦截函数;/nS3:当所述被保护应用发起网络请求时,由所述拦截函数获取源链接网络请求的IP地址和端口,并将其对应更改为通信转发节点服务器的IP地址和端口,然后执行网络协议中密钥协商、传输数据加密,并按照所述网络协议填入所述源链接网络请求的IP地址和端口以及所述传输数据形成网络数据包进行发送;/nS4:获取所述拦截函数的执行结果,并返回所述被保护应用的内存空间继续执行;/nS5:所述通信转发节点服务器根据所述网络协议从所述网络数据包中获取所述源链接网络请求IP地址和端口,对所述源链接网络请求IP地址和端口执行安全检测并根据负载均衡策略转发至网络请求服务器;/nS6:所述网络请求服务器获取所示网络数据包,按照所述网络协议解析获取所述源链接网络请求的IP地址和端口、所述传输数据,并作出应答消息;/nS7:所述应答消息通过会话密钥加密后,经所述通信转发节点服务器返回所述被保护应用程序,被所述拦截函数拦截,通过解密并获取所述应答消息后返回给上层函数。/n...

【技术特征摘要】
1.一种移动应用程序透明通信保护方法,其特征在于,该方法包括以下步骤:
S1:在Android系统中安装移动应用程序客户端,所述移动应用程序客户端用于监控所述Android系统上所有应用的进程;
S2:当被保护应用启动时,所述移动应用程序客户端注入所述被保护应用的内存空间,并替换所述被保护应用的网络连接函数为所述移动应用程序客户端中定义的拦截函数;
S3:当所述被保护应用发起网络请求时,由所述拦截函数获取源链接网络请求的IP地址和端口,并将其对应更改为通信转发节点服务器的IP地址和端口,然后执行网络协议中密钥协商、传输数据加密,并按照所述网络协议填入所述源链接网络请求的IP地址和端口以及所述传输数据形成网络数据包进行发送;
S4:获取所述拦截函数的执行结果,并返回所述被保护应用的内存空间继续执行;
S5:所述通信转发节点服务器根据所述网络协议从所述网络数据包中获取所述源链接网络请求IP地址和端口,对所述源链接网络请求IP地址和端口执行安全检测并根据负载均衡策略转发至网络请求服务器;
S6:所述网络请求服务器获取所示网络数据包,按照所述网络协议解析获取所述源链接网络请求的IP地址和端口、所述传输数据,并作出应答消息;
S7:所述应答消息通过会话密钥加密后,经所述通信转发节点服务器返回所述被保护应用程序,被所述拦截函数拦截,通过解密并获取所述应答消息后返回给上层函数。


2.如权利要求1所述的移动应用程序透明通信保护方法,其特征在于,所述步骤S1,包括:
通过所述移动应用程序客户端获取所述Android系统中安装的应用列表,根据应用场景需求选择被保护应用集合;
通过所述移动应用程序客户端选择网络协议的参数,并配置服务器证书以及相关加密、解密参数。


3.如权利要求2所述的移动应用程序透明通信保护方法,其特征在于,所述步骤S2,包括:
S21:获取所述Android系统安装的应用的当前进程列表,判断所述被保护应用是否在运行;
S22:若存在所述被保护应用在运行,获取所述被保护应用的目标进程PID,使用系统函数ptrace拦截所述目标进程,并将拦截函数所在的动态链接库注入所述被保护应用的内存空间;
S23:利用所述ptrace执行注入的所述动态链接库中的入口函数,保存所述被保护应用的当前执行状态,获取所述被保护应用的网络连接函数connect,sendto,recvfrom及注入的拦截函数x_connect,x_sendto,x_recvfrom所在内存地址,并替换相应网络连接函数实现调用劫持;
S24:所述被保护应用发起网络连接时,调用所述拦截函数,并在其执行完毕后跳转回所述系统函数继续执行。


4.如权利要求3所述的移动应用程序透明通信保护方法,其特征在于,所述步骤S3,包括:
密钥协商,所述被保护应用发起网络请求时,所述拦截函数x_connect随机生成通信会话密钥K,利用配置的服务器证书公钥进行加密,得到会话密钥密文E(K),按照以下格式编排所述网络数据包:会话密钥密文E(K)前增加2字节编码固定为A6EF作为网络数据包头部,经所述通信转发节点服务器发送至所述网络请求服务器,所述通信转发节点服务器解密获取会话密钥,完成密钥协商;数据加密,所述被保护应用发送所述网络请求时,所述拦截函数使用分组密码算法及通信会话密钥K对所述网络数据包中的传输数据加密得到传输数据密文EK(M),并计算所述传输数据的哈希散列值H(M);
数据解密,所述被保护应用接收所述网请求时,所述拦截函数使用分组密码及通信会话密钥K对所述...

【专利技术属性】
技术研发人员:杨腾飞李阳阳谢海永
申请(专利权)人:中国电子科技集团公司电子科学研究院
类型:发明
国别省市:北京;11

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

1