用于Android系统的轻量级隐私数据加密方法及系统的制作方法

文档序号:6398025阅读:291来源:国知局
专利名称:用于Android系统的轻量级隐私数据加密方法及系统的制作方法
技术领域
本发明涉及的是一种移动通信设备技术领域的方法及系统,具体是一种用于Andro i d系统的轻量级隐私数据加密方法及系统。
背景技术
移动智能设备(智能手机、平板电脑)上的数据存储存在大量安全风险,在各种移动智能平台上均存在窃取隐私数据的恶意软件。已有的数据安全存储产品,使用的方案主要包括对数据进行加密和将数据存储于安全硬件两类。移动智能设备(智能手机、平板电脑)上的数据存储具有很高的安全风险,由于大量隐私数据的存在(短信、联系人、照片等),各移动智能平台上均存在窃取隐私数据的恶意软件。同时,由于移动智能终端的计算能力比较弱,通常情况下安全防护方案为了适应功耗开销,不得不降低保护强度。已有的移动智能终端数据安全存储产品,使用的方案主要包括对数据进行加密和将数据存储于安全硬件两类,其中:数据加密方案的典型实例如苹果公司iPhone4使用的AES硬件加密芯片加密方法,如Zhaohui Wang等在《Implementing and Optimizingan Encryption Filesystem on Android))(安卓系统上的文件系统加密应用及优化,mdmconferences)中公开的Google公司Android3.0及以上系统使用的全系统加密方法等等。这一类方案的特点是根据用户输入的密码和硬件特征联合进行加密,以防止设备失窃带来的数据泄漏。这些已有的安全存储方案开销通常比较大,比如全系统加密使得数据密集读写时性能下降严重,安全硬件存储需要额外添加设备。现有技术仅仅支持对整个设备的存储介质(磁盘、闪存)进行加密,这种加密方案存在两个问题:第一,全磁盘加密带来了很大的计算开销,通常情况下首次加密需要2-3小时,而且加密选项开启后不可逆;我们的方案相比仅仅需要可以忽略不计的时间开销,并且支持动态开启和关闭。第二,整体加密方案是底层透明的加密机制,无法保护操作系统层面上的攻击;我们的方案是内置于操作系统级别的加密,可以有效抵御操作系统层面上进程间的数据窃取行为。
经过对现有技术的检索发现,中国专利文献号CN102346831A,
公开日2012-02-08,公开了一种“Android操作系统的手持设备隐私加密保护方法”,该技术包括以下步骤:在系统加密数据库中事先定义各应用的隐私属性并保存;操作系统检测新应用启动并识别该新应用的唯一标记,解密读取所述数据库并根据所述唯一标记查找该新应用对应的隐私属性;根据存在所述隐私属性或所述隐私属性是真,提示用户输入该新应用对应的启动密码;验证所述启动密码是否正确,是正常启动该新应用,否则不允许正常使用该新应用。但该技术仅是针对Android系统中的应用程序进行上锁管理,为每一个应用程序配置密钥,用户如果正确输入密钥则允许使用应用程序,否则就禁止使用。该技术的问题在于没有对系统底层的数据进行保护,各种应用程序所使用的数据库文件仍旧是明文的,能够被攻击者读取。另外这样的应用程序锁是加载在系统上层的,和其他应用程序属于同一级另Ij,很容易被其他的恶意程序攻击。
中国专利文献号CN102567688A,
公开日2012-07-11,公开了一种“安卓操作系统上的文件保密系统”,该技术用于将数据加密后再传给实际存储数据的文件系统去存储或者将实际存储数据的文件系统中的数据解密后再传出,其包括:保密箱用户界面模块101、保密箱本地代码模块102、保密箱工具库模块103和加密文件子系统104 ;该保密箱用户界面模块101,用于获取用户加密或解密的属性信息,包括:密钥、加密类型和密钥长度,提供与用户进行交互的用户界面接口,并调用底层文件系统的保密箱本地代码模块;该保密箱本地代码模块102,用于获取用户界面模块101的加密或解密的属性信息,调用底层文件系统的保密箱工具库模块103并将加密或解密的属性信息传递给工具库模块103 ;该保密箱工具库模块103,用于获取本地代码模块102的加密或解密的属性信息并将其注入到内核,然后加载或卸载加密文件子系统;该加密文件子系统104,是一层虚拟的文件系统,用于根据保密箱工具库模块103中加密或解密的属性信息将任何写入的数据进行加密或者将任何读出的数据进行解密。但该技术的缺陷和不足在于:对用户来说加解密过程不够透明;增加的虚拟文件层会对系统性能造成损耗;仅对写入数据库的数据进行加密,数据库本身并不加密,存在安全隐患。

发明内容
本发明针对现有技术存在的上述不足,提出一种用于Android系统的轻量级隐私数据加密方法及系统,针对系统底层的数据库进行保护,即从源头上对用户的隐私数据进行高强度的保护。通过对整个数据库文件进行加密,在没有密钥的情况下,数据库文件呈现被破坏状态,无法读取任何信息;加解密操作对用户透明,轻量级的加密算法不会对系统性能造成损耗;加解密操作在系统数据库Sqlite3内部实现,处于系统底层,和系统的契合度较高,不容易被上层的恶意程序发现,保证了系统的保密功能正常发挥作用,为Android系统引入轻量级加密机制来保护隐私数据文件,同时减少系统开销。
本发明是通过以下技术方案实现的:
本发明涉及一种用于Android系统的轻量级隐私数据加密方法,包括以下步
骤:第一步、在文件系统中选择待保护的敏感文件集,然后在Android系统中嵌入加密处理模块和解密处理模块,将敏感文件集中的文件进行加密存储并生成被保护数据库,具体步骤包括:1.1)根据应用程序请求调用并打开数据库及对应的加密处理模块和解密处理模块;1.2)如需要新建一个数据库,则调用加密处理模块,根据配置信息建立一个新的被保护数据库;否则请求打开被保护数据库,验证配置信息中的密钥与附加在被保护数据库的数据库文件上的密钥是否匹配,如是则执行步骤1.3),否则执行步骤1.4);1.3)对存入被保护数据库中的数据进行加密存储;1.4 )删除内存中的临时数据,结束访问。所述的敏感文件集包括:短信、通信录、通话记录、图片等;第二步、当应用程序请求访问被保护数据库时,必须先通过密钥验证后才能获得一个明文的被保护数据库的镜像,应用程序通过操作这个明文镜像实现对被保护数据库的文件的修改,当访问结束则销毁该镜像,具体步骤包括:2.1)根据应用程序请求调用并打开数据库及其对应的解密处理模块;2.2)根据配置信息判断被调用的数据库是否为被保护数据库,如是则执行步骤
2.3),否则执行步骤2.5);2.3)通过密钥哈希比对验证应用程序请求中包含的密钥是否与附加在被保护数据库的数据库文件上的密钥匹配,如匹配则执行下一步骤,否则向应用程序返回匹配错误;2.4)根据系统中配置的加密算法类型,由解密处理模块对被保护数据库进行解密,并向应用程序返回解密后的明文数据库镜像;2.5)判断应用程序是否结束对数据库的访问,如是则将对明文数据库的修改加密存储至数据库文件中,之后删除内存中的临时数据库镜像,结束访问。所述的配置信息是指:由文件系统管理模块管理的经加密算法加密保存的敏感文件集的数据库列表、不同数据库对应的密钥、数据库加密算法类型信息。本发明涉及上述方法的加密系统,包括:文件系统管理模块、加密处理模块和解密处理模块,其中:文件系统管理模块分别与加密处理模块、认证模块以及底层文件系统相连,向底层文件系统传递应用程序的原始数据以及命令,并从底层文件系统接收处理后的数据;加密处理模块分别和文件系统管理模块、底层文件系统相连,接收应用程序的原始数据,进行加密处理后再进行存储;解密模块分别和文件系统管理模块、底层文件系统相连,根据应用程序的指令对底层的文件系统中的数据进行处理并将处理后的结果输出至应用程序。所述的文件系统管理模块用于对现有文件系统中需要加密的对象进行标注,并管理密钥,具体为:加密阶段:从配置信息中读取信息并判断目标数据库是否需要加密,当需要时向加密处理模块提供加密密钥,生成加密算法需要的密钥组,对数据库进行加密。认证阶段:从配置信息中读取信息并判断目标数据库是否已经加密,如是则向解密处理模块提供密钥,和附加在数据库上的加密密钥进行比对,判断是否通过认证。解密阶段:从配置信息中读取目标数据库的密钥,分发至解密处理模块,生成解密需要的密钥组,对加密数据库进行解密。所述的加密处理模块用于对文件系统管理模块标注加密的文件进行加密处理,该模块包括:加密单元、密钥生成单元和写回单元,其中:密钥生成单元从用户配置文件中定义的密钥中生成加密算法所需要的密钥组;加密单元用密钥生成单元生成的密钥组对将写入的信息进行加密;写回单元将加密后的密文写入数据库。所述的解密处理模块用于对用户输入的密码进行认证,该模块包括:验证单元、解密单元和返回单元,其中验证单元验证当前打开数据库所使用的密钥与附加在加密后的数据库上的密钥是否一致,如一致则通过验证,否则返回错误;解密单元用正确的密钥生成解密需要的密钥组,并对数据库进行解密;返回单元在解密完成后,将明文的一个镜像返回应用程序,供应用程序操作。
技术效果
与已有技术相比,本发明工作效率得到大幅度更高,因为仅涉及敏感文件集,通常只占文件系统中很小比例,所以对系统性能的影响比较其它方案更小。同时,本发明由于在文件系统层面上引入加密机制,对于应用程序应用的API调用等均不会改变原有操作方式,即加密对于应用程序应用具有透明性,具有良好的兼容性。


图1为现有技术中Android数据库操作示意图。图2为本发明带加密机制的Android原理示意图。图3为本发明加解密存储的具体步骤示意图。图4为本发明系统结构示意图。
具体实施例方式下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
实施例1如图1所示,在Android系统中,应用程序对数据库的访问是通过Sqlite3来实现的,Android系统对Sqlite3进行了一定程度的封装,将封装后的接口提供给应用程序使用。对于本实施例,一个比较好的实施方案就是修改底层的Sqlite3的源码,本实施例具体的实施步骤如下:第一步、在文件系统中选择待保护的敏感文件集;在本实施例中,选取Android平台最常见的Sqlite3使用的db类型文件作为敏感文件集进行操作。第二步、在Android系统中增加加密处理模块和解密处理模块,将敏感文件集中的文件加密存储,生成被保护数据库,具体步骤包括:2.1)取得最新的Android系统的源码;2.2)对底层Sqlite3库进行修改,增加一系列实施方案所需的模块;2.3)选择需要加密的目标数据库,例如短信数据库mmssms.db等,并进行密钥方案配置;实施完成后的Android系统数据库模型如图2所示;2.4)对修改完毕的Android源代码进行编译,将编译完成的系统文件刷入需要使用加密数据库的设备中,启动设备。第三步、刷入数据库增强系统的设备已经具备了数据库加密功能,当应用程序请求访问被保护数据库时,先通过密钥验证,然后获得一个明文的数据库镜像,应用程序通过操作这个明文的数据库镜像来进行对底层数据库文件的修改,一旦结束访问,该明文镜像则被销毁,具体步骤包括: 3.1)在配置文件中添加需要加密保护的目标数据库,并对不同的数据库设定不同的密钥;3.2)当应用程序第一次建立目标数据库时,会通过系统生成一个带有设定密钥的加密数据库;
3.3)每次应用程序对数据库的访问,首先需要比对配置信息文件中的密钥和附加在数据库上的加密密钥是否一致,如是则执行步骤3.4),否则执行3.6);3.4)使用密钥对数据库进行解密,返回一个明文的数据库镜像供上层操作;3.5)完成数据库访问后,删除内存中的明文数据库镜像;3.6)返回退出。本实施例通过以下加密系统实现上述轻量加密,该系统包括:文件系统管理模块、加密处理模块和认证模块,其中:文件系统管理模块分别与加密处理模块、认证模块以及底层文件系统相连,向底层文件系统传递应用程序的原始数据以及命令,并从底层文件系统接收处理后的数据;加密处理模块分别和文件系统管理模块、底层文件系统相连,接收应用程序的原始数据,进行加密处理后再进行存储;认证模块分别与文件系统管理模块、底层文件系统相连,根据应用程序的指令对底层文件系统中的数据进行处理并将处理后的结果输出至应用程序。
实验效果分析针对本实施例选取的常见大小的db类型文件作为敏感文件集进行操作,在实际使用中感觉不到加解密系统带来的额外开销,系统性能的下降不足5% ;与现有Android平台的全磁盘数据加密相比,本实施例的效果提升达到:90%以上。对于Android平台来说,当前使用最为广泛的数据加密方案是Android自身提供的全磁盘数据加密。本发明从性能上来说,相比全磁盘加密有了非常大的进步,全磁盘数据加密需要2-3个小时来完成对磁盘的第一次加密,之后每一次开启设备的时候有会需要一段时间来进行数据的解密。而在本发明的系统之中,加解密的时间几乎可以忽略不记,用户在使用的时候感受不到任何延迟。从工作机理来说,全磁盘加密的工作方式是对整个系统存储设备中的数据进行全面加密,之后每次开启设备的时候再一次性解密,这样的方案有两个比较明显的缺点,一是对于用户来说,每次开启设备需要输入密码解密,显得十分的繁琐,并且这个加密过程是不可逆的。另外一个缺点在于当设备开启的时候,磁盘中的数据仍旧是明文的,这样的方案无法抵御数据库拷贝攻击,敌手在设备开启时拿到的数据库依旧是可读的。本发明中不存在这样的问题,由于其位于Android系统的底层,对于用户来说,加解密过程都是透明的,用户使用的时候和一般的Android系统并无二致,对用户体验不会造成影响。另外,本发明的加解密过程是动态完成的,只有在打开数据库的时候才会对数据库解密,而解密之后的明文也是存储在内存中的,磁盘上的数据库文件自始至终是加密的状态,这就能很好的数据库拷贝攻击,敌手无论什么时候非法取得数据库文件,都无法访问数据库,有效提高了数据库的访问安全。
权利要求
1.一种用于Android系统的轻量级隐私数据加密方法,其特征在于,包括以下步骤: 第一步、在文件系统中选择待保护的敏感文件集;然后在Android系统中嵌入加密处理模块和解密处理模块,将敏感文件集中的文件进行加密存储并生成被保护数据库, 所述的敏感文件集包括:短信、联系人、通话记录、图片; 第二步、当应用程序请求访问被保护数据库时,必须先通过密钥验证后才能获得一个明文的被保护数据库的镜像,应用程序通过操作这个明文镜像实现对被保护数据库的文件的修改,当访问结束则销毁该镜像;
2.根据权利要求1所述的方法,其特征是,所述的第一步的具体步骤包括: 1.1)根据应用程序请求调用并打开数据库及对应的加密处理模块和解密处理模块; 1.2)如需要新建一个数据库,则调用加密处理模块,根据配置信息建立一个新的被保护数据库;否则请求打开被保护数据库,验证配置信息中的密钥与附加在被保护数据库的数据库文件上的密钥是否匹配,如是则执行步骤1.3),否则执行步骤1.4) 1.3)对存入被保护数据库中的数据进行加密存储; 1.4)删除内存中的临时数据,结束访问。
3.根据权利要求1所述的方法,其特征是,所述的第二步的具体步骤包括: 2.1)根据应用程序请求调用并打开数据库及其对应的加密处理模块和解密处理模块; 2.2)根据配置信息 判断被调用的数据库是否为被保护数据库,如是则执行步骤2.3),否则执行步骤2.5) 2.3)通过密钥哈希比对验证应用程序请求中包含的密钥与附加在被保护数据库的数据库文件上的密钥是否匹配,如匹配则执行下一步骤,否则向应用程序返回匹配错误; 2.4)根据配置信息中的加密算法类型,由解密处理模块对被保护数据库进行解密,并向应用程序返回解密后的明文数据库镜像; 2.5)判断应用程序是否结束对数据库的访问,如是则删除内存中的临时数据库镜像,结束访问; 所述的配置信息是指:由文件系统管理模块管理的经加密算法加密保存的敏感文件集的数据库列表、不同数据库对应的密钥、数据库加密算法类型信息。
4.根据上述任一权利要求所述方法的加密系统,其特征在于,包括:文件系统管理模块、加密处理模块和解密处理模块,其中:文件系统管理模块分别与加密处理模块、认证模块以及底层文件系统相连,向底层文件系统传递应用程序的原始数据以及命令,并从底层文件系统接收处理后的数据;加密处理模块分别和文件系统管理模块、底层文件系统相连,接收应用程序的原始数据,进行加密处理后再进行存储;解密模块分别和文件系统管理模块、底层文件系统相连,根据应用程序的指令对底层的文件系统中的数据进行处理并将处理后的结果输出至应用程序。
5.根据权利要求4所述的系统,其特征是,所述的文件系统管理模块用于对现有文件系统中需要加密的对象进行标注,并管理密钥,具体为: 加密阶段:从配置信息中读取信息并判断目标数据库是否需要加密,当需要时向加密处理模块提供加密密钥,生成加密算法需要的密钥组,对数据库进行加密; 认证阶段:从配置信息中读取信息并判断目标数据库是否已经加密,如是则向解密处理模块提供密钥,与附加在数据库上的加密密钥进行比对,判断是否通过认证; 解密阶段:从配置信息中读取目标数据库的密钥,分发至解密处理模块,生成解密需要的密钥组,对加密数据库进行解密。
6.根据权利要求4所述的系统,其特征是,所述的加密处理模块用于对文件系统管理模块标注加密的文件进行加密处理,该模块包括:加密单元、密钥生成单元和写回单元,其中:密钥生成单元从用户配置文件中定义的密钥中生成加密算法所需要的密钥组;加密单元用密钥生成单元生成的密钥组对将写入的信息进行加密;写回单元将加密后的密文写入数据库。
7.根据权利要求4所述的系统,其特征是,所述的解密处理模块用于对用户输入的密码进行认证,该模块包括:验证单元、解密单元和返回单元,其中:验证单元验证当前打开数据库所使用的密钥和附加在加密之后的数据库上的密钥是否一致,当一致则通过验证,否则返回错误;解密单元用正确的密钥生成解密需要的密钥组,并对数据库进行解密;返回单元在解密完成后,将明文的一个镜像返回应用程序,供应用程序操作。
全文摘要
一种移动通信设备技术领域的用于Android系统的轻量级隐私数据加密方法及系统,通过在文件系统中选择待保护的敏感文件集;然后在Android系统中嵌入加密处理模块和解密处理模块,将敏感文件集中的文件进行加密存储并生成被保护数据库,当应用程序请求访问被保护数据库时,必须先通过密钥验证后才能获得一个明文的被保护数据库的镜像,应用程序通过操作这个明文镜像实现对被保护数据库的文件的修改,当访问结束则销毁该镜像。本发明针对系统底层的数据库进行保护,保证了系统的保密功能正常发挥作用,为Android系统引入轻量级加密机制来保护隐私数据文件,同时减少系统开销。
文档编号G06F21/62GK103106372SQ201310017709
公开日2013年5月15日 申请日期2013年1月17日 优先权日2013年1月17日
发明者谷大武, 束骏亮, 杨文博, 李勇, 李卷孺 申请人:上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1