一种基于预解密的移动终端透明加密方法与流程

文档序号:12278138阅读:350来源:国知局
一种基于预解密的移动终端透明加密方法与流程

本发明主要涉及移动数据防泄漏领域,特别是一种基于预解密的移动终端透明加密方法。



背景技术:

随着移动终端设备功能日益强大,越来越多的企业员工已经或即将摆脱办公室的约束,通过移动终端设备来处理日常工作事务。然而,企业关键数据向移动终端设备延伸,使得移动终端数据泄漏成为企业面临的一个新的问题,因此移动终端透明加密技术应运而生。

所谓透明加密,是指在不改变用户操作习惯的情况下完成文件的加密和解密过程。当系统监测到用户对受保护的文件进行读写操作时,将对文件进行解密操作,将明文传送给应用程序。当系统监测到用户对受保护的文件结束读写操作时,又将对文件进行加密操作,将密文传送存储设备进行存储。整个过程与文件的所在环境密切相关,环境一旦更改,加解密过程将无法完成,从而保证了对指定文件的保护。

为此,研究人员提出了两种移动终端的数据透明加密技术:基于文件系统的驱动加密技术和钩子透明加密技术。基于文件系统的驱动加密技术工作在Android操作系统的内核层,主要依赖于Linux的文件系统驱动技术。文件系统驱动是把文件作为一种设备来处理的一种虚拟驱动。当文件系统驱动检测到用户对某种后缀文件进行操作时,对该文件进行加密/解密操作,从而达到加密的效果。而钩子透明加密技术工作在移动终端应用层,结合使用Android API函数和Hook消息处理机制。通过Java Hook的钩子技术,监控应用程序对文件的打开和保存。打开文件时,先对密文进行解密再读入内存,以保证应用程序读到的是明文。保存文件时,先将内存中的明文进行加密再写入到磁盘中。

然而,移动终端数据透明加密技术刚刚起步,两种透明加密技术都存在一定的问题。基于文件系统的驱动加密技术工作性能不稳定,且需要编译用户移动终端的系统,通用性不强,不适用于企业数据防泄漏体系。钩子透明加密技术通用性强,但相比驱动加密技术,文件读写慢,性能较差。



技术实现要素:

本发明的目的在于提供一种安全、高效的基于预解密的移动终端透明加密方法。

实现本发明目的的技术解决方案为:一种基于预解密的移动终端透明加密方法,针对移动终端数据加密的客户端模型,透明加密过程涉及到的实体如下:强密文集合M={Mi},预解密临时文件集合P={Pi}和明文集合N={Ni},文件集合F={Fi},i=1,2,3…,具体步骤如下:

(1)Xposed框架初始化:

初始化Xposed框架,加载文件系统Hook模块;根据Xposed框架特性,实现在Android Runtime层的Hook功能调用,首先初始化Hook模块功能,并设置输入参数为文件变量Fi;

(2)文件标识符遍历:

遍历文件标识符,判断Fi是否属于强密文集M;提取Fi字节流,Hook模块提取16位校验符,判断当前变量Fi是否属于强密文集合M,若否,则直接跳过Hook作用域,返回Fi字节流给上层应用;若是,则提取16位权限标识符并进行实时数字证书认证,若当前终端不合法,则返回强密文状态数据给用户;若合法,则进入步骤(3);

(3)预解密临时文件遍历:

提取16位预解密偏移值,对当前Fi字节流进行预解密文件验证,若验证不通过,不存在一次密文,则进入步骤(4);若验证通过,则直接进入步骤(5);

(4)预解密临时文件集更新:

若不存在一次密文,则对当前缓存中的强密文Fi进行预解密,并生成相应预解密临时文件;

(5)二次解密预解密临时文件子集:

若验证通过,存在相应一次密文,则提取预解密文件并替换缓存中的强密文Fi;然后,针对缓存中的一次密文进行二次解密;最终输出明文到应用层;

(6)明文子集二次强加密:

修改并存储文档时,首先,提取16位权限标识符并进行实时数字证书认证,若当前终端不合法,则无权修改数据,直接返回原强密文;若合法,则对明文数据一次加密,并进行预解密文件更新;然后进行二次强加密,并将强密文存储到终端内存中。

进一步地,步骤(1)中所述初始化Xposed框架,加载文件系统Hook模块;根据Xposed框架特性,实现在Android Runtime层的Hook功能调用,首先初始化Hook模块功能,并设置输入参数为文件变量Fi,具体如下:

1)通过覆盖原生的/system/bin/app_process程序,对app_process进行扩展,控制zygote进程;

2)使app_process在启动过程中会加载XposedBridge.jar这个jar包,从而完成对Zygote进程及其创建的Dalvik虚拟机的劫持;

3)在Android系统启动的时候,Zygote进程加载XposedBridge,将移动终端文件系统读写Method通过JNI方法HookMethodNative指向Native原生方法XposedCallHandler,此方法再转入handleHookedMethod这个Java方法执行用户规定的移动终端文件系统Hook Function。

进一步地,步骤(3)所述预解密临时文件遍历的过程如下:

提取16位预解密偏移值,对当前文档进行预解密文件验证,若验证不通过,不存在一次密文,则对当前缓存中的强密文进行预解密,并生成相应预解密临时文件;若验证通过,存在相应一次密文,则提取预解密文件并替换缓存中的强密文,具体过程如下:

预解密文件验证:是否成立,其中pre_verification(i)是提取16位预解密偏移值的签名;若成立,说明不存在一次密文,则对当前缓存中的强密文进行预解密;否则,存在相应一次密文,则提取预解密文件并替换缓存中的强密文。

进一步地,步骤(5)中所述二次解密预解密临时文件子集的过程如下:

预解密临时文件遍历验证通过,存在相应一次密文,则提取预解密文件并替换缓存中的强密文;然后,针对缓存中的一次密文进行二次解密;最终输出明文到应用层,具体过程如下:

二次解密:re_decrypt(Pi)→(i,N),Pi是已验证存在预解密临时文件的文件Fi字节流,通过二次解密生成明文字节流N提交应用层。

本发明与现有技术相比,其显著优点为:(1)透明加密安全性:采用Xposed框架Hook技术,通过覆盖原生的/system/bin/app_process程序,对app_process进行扩展,控制zygote进程,使得规定的Hook Function在Android框架的RUNTIME层(Android系统第三层)得到执行,解决了移动终端传统透明加密技术只能保证应用层安全的缺陷;(2)透明加密性能:采用二次解密的预解密透明加密方案,规避高性能损耗的解密操作,在合法移动终端上打开加密文件时,只进行简单的二次解密,大大提高透明加密技术在移动终端上的性能。

附图说明

图1是本发明基于预解密的移动终端透明加密方法的流程图。

图2是本发明基于预解密的移动终端透明加密方法的系统模型图。

具体实施方式

下面结合附图及实施示例对本发明作进一步详细描述。以下实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和过程,但本发明的保护范围不限于下述的实施例。

结合图1,本发明基于预解密的移动终端透明加密方法,针对移动终端数据加密的客户端模型,透明加密过程涉及到的实体如下:强密文集合M={Mi},预解密临时文件集合P={Pi}和明文集合N={Ni},文件集合F={Fi},i=1,2,3…,具体步骤如下:

(1)Xposed框架初始化:

初始化Xposed框架,加载文件系统Hook模块;根据Xposed框架特性,实现在Android Runtime层的Hook功能调用,首先初始化Hook模块功能,并设置输入参数为文件变量Fi,具体如下:

1)通过覆盖原生的/system/bin/app_process程序,对app_process进行扩展,控制zygote进程;

2)使app_process在启动过程中会加载XposedBridge.jar这个jar包,从而完成对Zygote进程及其创建的Dalvik虚拟机的劫持;

3)在Android系统启动的时候,Zygote进程加载XposedBridge,将移动终端文件系统读写Method通过JNI方法HookMethodNative指向Native原生方法XposedCallHandler,此方法再转入handleHookedMethod这个Java方法执行用户规定的移动终端文件系统Hook Function。

(2)文件标识符遍历:

遍历文件标识符,判断Fi是否属于强密文集M;提取Fi字节流,Hook模块提取16位校验符,判断当前变量Fi是否属于强密文集合M,若否,则直接跳过Hook作用域,返回Fi字节流给上层应用;若是,则提取16位权限标识符并进行实时数字证书认证,若当前终端不合法,则返回强密文状态数据给用户;若合法,则进入步骤(3)。

(3)预解密临时文件遍历:

提取16位预解密偏移值,对当前Fi字节流进行预解密文件验证,若验证不通过,不存在一次密文,则进入步骤(4);若验证通过,则直接进入步骤(5);

所述预解密临时文件遍历的过程如下:

提取16位预解密偏移值,对当前文档进行预解密文件验证,若验证不通过,不存在一次密文,则对当前缓存中的强密文进行预解密,并生成相应预解密临时文件;若验证通过,存在相应一次密文,则提取预解密文件并替换缓存中的强密文,具体过程如下:

预解密文件验证:是否成立,其中pre_verification(i)是提取16位预解密偏移值的签名;若成立,说明不存在一次密文,则对当前缓存中的强密文进行预解密;否则,存在相应一次密文,则提取预解密文件并替换缓存中的强密文。

(4)预解密临时文件集更新:

若不存在一次密文,则对当前缓存中的强密文Fi进行预解密,并生成相应预解密临时文件。

(5)二次解密预解密临时文件子集:

若验证通过,存在相应一次密文,则提取预解密文件并替换缓存中的强密文Fi;然后,针对缓存中的一次密文进行二次解密;最终输出明文到应用层;

所述二次解密预解密临时文件子集的过程如下:

预解密临时文件遍历验证通过,存在相应一次密文,则提取预解密文件并替换缓存中的强密文;然后,针对缓存中的一次密文进行二次解密;最终输出明文到应用层,具体过程如下:

二次解密:re_decrypt(Pi)→(i,N),Pi是已验证存在预解密临时文件的文件Fi字节流,通过二次解密生成明文字节流N提交应用层。

(6)明文子集二次强加密:

修改并存储文档时,首先,提取16位权限标识符并进行实时数字证书认证,若当前终端不合法,则无权修改数据,直接返回原强密文;若合法,则对明文数据一次加密,并进行预解密文件更新;然后进行二次强加密,并将强密文存储到终端内存中。

实施例1

为了更好地理解本发明提出的方法,选取一次移动办公环境下对企业机密数据的透明加解密事件。

本实施例执行流程如图1所示,针对移动终端数据加密的客户端模型,透明加密过程涉及到的实体如下:强密文集合M={Mi},预解密临时文件集合P={Pi}和明文集合N={Ni},文件集合F={Fi},i=1,2,3…,具体步骤如下:

步骤101:初始化xposed框架,加载文件系统hook模块。具体过程如下:

1)通过覆盖原生的/system/bin/app_process程序,对app_process进行扩展,控制zygote进程。

2)使app_process在启动过程中会加载XposedBridge.jar这个jar包,从而完成对Zygote进程及其创建的Dalvik虚拟机的劫持。

3)在Android系统启动的时候,Zygote进程加载XposedBridge,将移动终端文件系统读写Method通过JNI方法HookMethodNative指向Native原生方法XposedCallHandler,此方法再转入handleHookedMethod这个Java方法执行用户规定的移动终端文件系统Hook Function。

步骤102:遍历文件标识符,判断Fi是否属于强密文子集。具体过程如下:

1)遍历文件标识符,判断Fi是否属于强密文集M。提取Fi字节流,Hook模块提取16位校验符,判断当前变量Fi是否属于强密文集合M。

2)若当前变量Fi不属于强密文集合M,则直接跳过Hook作用域,返回Fi字节流给上层应用。

3)若当前变量Fi属于强密文集合M,则提取16位权限标识符并进行实时数字证书认证,

4)若当前终端数字证书认证不合法,则返回强密文状态数据给用户。

5)若当前终端数字证书认证合法,则进入步骤103。

步骤103:遍历预解密临时文件集P,判断强密文是否属于P。具体过程如下:

1)判断预解密文件验证:是否成立,其中pre_verification(i)是提取16位预解密偏移值的签名。

2)若条件成立,说明不存在一次密文,则对当前缓存中的强密文进行预解密;

3)若条件不成立,存在相应一次密文,则提取预解密文件并替换缓存中的强密文。

步骤104:预解密子集Fi并实时更新预解密临时文件集P。具体过程如下:

对当前缓存中的强密文进行预解密,并生成相应预解密临时文件。将一次解密的弱密文重新提交文件系统缓存区。

步骤105:二次解密预解密临时文件子集,并生成明文对象赋值对象Fi,更新明文集N。具体过程如下:

预解密临时文件遍历验证通过,存在相应一次密文,则提取预解密文件并替换缓存中的强密文;然后,针对缓存中的一次密文进行二次解密;最终输出明文到应用层。对于re_decrypt(Pi)→(i,N),其中Pi是已验证存在预解密临时文件的文件Fi字节流,通过二次解密生成明文字节流N提交应用层。

上述方法的系统模型如图2所示,包含三类实体:云服务器、合法移动终端和非法移动终端。当服务器需要下发关键数据时,云服务器与合法移动终端建立数据连接并进行数据通信。同时,服务器定时向合法移动终端下发权限管控指令,以完成透明加解密权限认证。合法客户端接收到服务器指令的同时,实时向云服务器反馈日志文件,将客户端行为记录上传到云服务器备份。同时,非法客户端企图与云服务器简历伪连接的行为将被身份验证后拒绝,同时云服务器在数据传输途中处于强加密状态,非法客户端无法窃听关键数据。

本发明利用预解密的思想构造了一个更加安全高效的移动终端透明加密方案,利用基于Xposed框架Hook技术完成文件系统透明加解密功能,实现了移动终端透明加密技术中间层的安全级别,有效解决了移动终端传统透明加密技术只能保证应用层安全的缺陷。同时,通过引入预解密零时文件集的概念,实现了对移动终端办公数据的二次强加密,提升了透明加密性能,节约了文件系统操作过程的开销。本发明能够同时实现移动终端透明加密技术性能和安全性的提升。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1