一种面向Android系统内部数据传递过程的保护方法及系统的制作方法

文档序号:9489676阅读:465来源:国知局
一种面向Android系统内部数据传递过程的保护方法及系统的制作方法
【专利说明】一种面向Android系统内部数据传递过程的保护方法及系统
[0001]
技术领域
本发明属于系统安全领域;涉及移动终端上的数据保护技术领域,尤其涉及一种对Andro i d系统中数据传递过程的保护方法及系统。
[0002]
【背景技术】
随着移动互联网的飞速发展,智能移动终端设备已成为人们生活、工作中的重要一部分。而由Google公司开发的Android系统以其充分的开放性、良好的易用性,受到广大设备厂商和用户的青睐,目前已经成为智能移动终端设备中应用最广泛的操作系统。
[0003]在Android系统内部,为了实现不同应用程序、不同进程间的资源共享、数据传输,Android系统提供了基于Binder的进程间通信的机制。当应用程序进程需要某种资源或服务时,需要向相应服务的管理者发送请求,管理者经过权限检查之后,对进程的请求进行应答。其中,应用程序对服务的请求和应答,以及应用程序与服务间的数据交互、过程调用等,都是通过Binder进行的。在请求服务的过程中,应用程序将请求的服务类型及数据,传递给Binder,Binder将其交给相应的服务管理者,服务管理者再通过Binder传回应答;在应用程序与服务建立连接之后,双方继续通过Binder进行服务中方法的远程过程调用、数据通讯。因此,Binder就好像是服务端与应用程序客户端之间沟通的管道。
[0004]在Android系统中,Binder机制仅提供了一种端到端的数据通讯方式,不支持针对重要数据的安全通信接口。所有基于Binder的通信数据都以明文方式传输,包括用户隐私相关的敏感型数据,如短信内容、GPS位置信息等。这就存在如下安全问题:一旦攻击者拦截Binder通信接口或数据产生端到使用端整个传递过程中的数据接口,即可窃取、篡改通过Binder传输的重要数据,破坏数据的机密性、完整性和可用性,进而引发更严重的危害。
[0005]在2014年的顶级安全技术会议Blackhat Europe上,就已经有安全研究人员给出了针对Android系统中数据通信方式Binder的攻击实例。通过拦截Binder通信的关键函数接口,即可以获取Binder中的通信数据,如短信内容、按键数据等。进一步证实了威胁的真实性和严重性。因此,亟需一种针对Android系统内部数据传递过程的保护方法,来有选择性的确保重要数据的安全性。
[0006]

【发明内容】

[0007]针对上述问题,本发明提出一种能够有效保护Android系统内部数据传递过程的保护方法和系统。本发明通过对基于Binder通信的重要数据实施产生源头加密、数据使用处解密,构建了基于Binder的安全通信通道,实现了重要数据在Android系统内部传输过程中的端到端的安全性保证。
[0008]本发明中的技术方案是:
一种面向Android系统内部数据传递过程的保护方法,包括如下步骤:
步骤1:确定需要保护的Android系统内部传递的数据类型,以及数据使用端的系统进程或应用程序;
步骤2:根据确定的数据类型、系统进程或应用程序,生成用于对保护的数据进行加密和解密的密钥;
步骤3:使用函数拦截方法,对所保护数据的产生端的数据处理函数进行拦截并安装数据加密功能代码,对数据使用端的应用程序或进程中的数据处理函数进行拦截并安装数据解密功能代码;
步骤4:数据在系统内部传递之前,在数据产生端的处理函数中使用生成的密钥进行加密保护;
步骤5:加密的数据在系统内部传递过程的另一端接收之后、使用之前,在被拦截的数据处理函数用生成的密钥对其进行解密。
[0009]根据权利要求1所述的一种面向Android系统内部数据传递过程的保护方法,其特征在于:所述的步骤1中,系统内部数据传递过程包括Android系统中基于Binder的通信方式,进行保护的数据包括基于Binder进行的应用程序、系统进程间交互和传递的数据。
[0010]优选的,所述的步骤2中,确定的保护数据类型可以为多种被保护的数据类型,所述的确定的应用程序或系统进程可以为多个可以正确使用受保护数据的应用程序或系统进程;
优选的,所述的步骤4中使用对称加密算法的密钥进行数据加密保护。
[0011]优选的,所述的步骤3中对数据产生端的数据处理函数、数据使用端的数据处理函数的拦截方法,包括对Android Framework层Java代码中函数和系统运行库层原生代码Native Code中函数的拦截。
[0012]一种面向Android系统内部数据传递过程的保护系统,其特征在于,至少包括:月艮务选择模块,密钥管理模块,函数拦截模块,数据加密模块,数据解密模块;
所述的服务选择模块:用于确定需要保护的Android系统内部传递的数据类型,以及数据使用端的系统进程或应用程序;
所述的密钥管理模块,用于根据确定的数据类型、系统进程或应用程序,生成用于对保护的数据进行加密和解密的密钥;
所述的函数拦截模块,用于使用函数拦截方法,对所保护数据的产生端的数据处理函数进行拦截并安装数据加密功能代码,对数据使用端的应用程序或进程中的数据处理函数进行拦截并安装数据解密功能代码;所述数据加密模块,用于数据在系统内部传递之前,在数据产生端的处理函数中使用生成的密钥进行加密保护;
所述的数据解密模块,用于在加密的数据在系统内部传递过程的另一端接收之后、使用之前,在被拦截的数据处理函数用生成的密钥对其进行解密。
[0013] 优选的,还包括提供额外的用于个性化使用的日志存储模块、配置数据存储模块;
所述配置数据存储模块,包括用于存储确定的数据类型和应用程序信息;
所述日志存储模块,包括用于存储系统的运行日志、数据保护日志信息。
[0014]本发明的有益效果:本发明提出一种对Android系统中内部数据传递过程的保护方法和系统;本发明通过对基于Binder通信的重要数据实施产生源头加密、数据使用处解密,构建了基于Binder的安全通信通道,实现了重要数据在Android系统内部传输过程中的端到端的安全性保证。
[0015]
【附图说明】
[0016]图1为本发明中提供的面向Android系统内部数据传递过程的保护方法的流程图;
图2为本发明中提供的面向Android系统内部数据传递过程的保护系统的结构图和原理示意图。
[0017]
【具体实施方式】
[0018]本发明提供了一种面向Android系统内部数据传递过程的保护方法及系统,为了使本技术领域的人员更好的理解本发明实施案例中的技术方案,并使本发明的功能、特征和优越性更加简明易懂,下面结合附图2中的示例对本发明中的技术和方案作进一步详细的说明。应当理解为,此处所描述的具体实施例仅用以解释本发明,但并不用于限定本发明。
[0019]本发明首先提供了一种对Android系统中内部数据传递过程的保护方法,该方法的一个实施方式如图1所示,包括:
S01步骤首先确定需要保护的数据类型和应用程序,所述数据和所述应用程序之间存在关联,即所确定的所述应用程序应能够有权限访问所述数据,本方法中所述应用程序能够获得正确的受保护数据;
S02步骤确定用于生成加密、解密密钥,在本实施例方法中,加密密钥和解密密钥相同,即采用对称加密算法;
S03步骤拦截Android系统中Framework层中数据产生端的数据处理函数,该函数是相应Java类里的一个方法,拦截数据接收端的指定应用程序进程空间中的Framework层的数据处理函数,该函数是相应Java类里的一个方法;
S04步骤在上述步骤S03中拦截的数据产生端的数据处理函数中,额外执行一个加密流程,当保护数据流经
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1