掌桥专利:专业的专利平台
掌桥专利
首页

基于可否认存储加密的安卓系统数据删除方法

文献发布时间:2023-06-19 13:45:04


基于可否认存储加密的安卓系统数据删除方法

技术领域

本发明属于信息安全技术领域,涉及一种数据删除方法,具体涉及一种基于可否认存储加密的安卓系统数据删除方法。

背景技术

当今时代是飞速发展的信息时代,使用智能手机的人越来越多。据报告显示,截至2020年底,全球智能手机用户达到35亿,目前中国拥有最多的智能手机活跃用户。移动互联时代的今天,智能手机在5G的支持下快速发展,特别是应用层的软件扩展,各式各样的应用软件,诸如电子支付、线上学习和远程办公等,显著的改变了人们的日常生活和交流方式。安卓系统自谷歌公司在2007年正式推出后,由于其优越的性能和开放源代码的特性使之成为全球最受欢迎的移动操作系统。根据市场报告显示,截止至2020年6月,国内移动设备的市场格局已经基本定型,移动设备的主流操作系统是安卓和iOS,占据的市场份额分别是78.4%和21.6%。由于移动设备的便捷性和5G的发展,越来越多的敏感数据存储在移动设备中,用户在使用这些敏感数据后想要安全地删除数据,但是传统的删除操作不能保证数据被删除后被敌手恢复,安全删除的目标确保被删除数据删除之后的安全性,在现有的安全删除方案中,例如ZHAO等人的文献(ZHAO L,MANNAN M.Gracewipe:Secure andverifiable deletion under coercion.[C]//NDSS,California,USA.San Diego,February 8-11,2015.),提出了一种针对移动设备的数据删除技术,通过删除密钥来确保敏感数据安全性,即使设备的密钥后来被泄露给敌手,也无法恢复安全删除后的数据,但是其无法确保敏感数据在没有删除之前的机密性,比如在删除之前设备所有者可能被敌手威胁透漏其设备口令,以及在删除敏感数据后容易被敌手发现删除痕迹。配备有安卓系统的移动设备使用可否认存储加密可以将常规数据存放在加密后的公共卷,将敏感数据存放在加密后的隐藏卷,通过诱饵口令进入公共卷,真实口令进入隐藏卷,来表明设备只存在常规数据从而实现对敏感数据存在性的否认,可以和安全删除结合来提高数据在没有删除之前的机密性,而且在数据删除之后很难被敌手发现删除痕迹。

发明内容

本发明的目的在于针对上述现有技术存在的不足,提出一种基于可否认存储加密的安卓系统数据删除方法,旨在提高用户在受迫环境下敏感数据的机密性和安全性。

为实现上述目的,本发明采取的技术方案包括如下步骤:

(1)初始化参数:

初始化用户输入的删除口令为dd、真实口令为ed、诱饵口令为pd,移动设备适配的安卓系统随机生成的随机密钥为shred_key,公共卷的加密密钥为MK,隐藏卷的加密密钥为MK',MK与MK'的长度相等,系统开机启动保存的全局变量saved_master_key;

(2)安卓系统创建公共卷及隐藏卷:

(2a)安卓系统使用密钥shred_key,并采用AES-XTS模式对逻辑块设备进行多次加密,得到数据擦除后的逻辑块设备L;

(2b)安卓系统在逻辑块设备L的总空间上创建第一加密映射块设备,同时根据用户输入的真实口令ed计算偏移地址offset,并选取偏移地址offset到逻辑块设备L末端的存储空间创建第二加密映射块设备;

(2c)安卓系统通过逻辑卷管理器LVM和精简配置T在第一加密映射块设备上创建public_volumn卷,同时在第二加密映射块设备上创建pde_volumn卷,并通过系统指令将public_volumn卷、pde_volumn卷分别格式化为EXT4文件格式,得到公共卷、隐藏卷;

(3)安卓系统对公共卷及隐藏卷的加密密钥进行加密:

(3a)安卓系统对用户输入的删除口令dd与用户输入的真实口令ed、诱饵口令pd分别进行异或操作,并将dd与ed的异或结果拼接在dd与pd的异或结果之前,形成盐值salt,再将salt存储在逻辑块设备L的加密页脚中;

(3b))安卓系统采用PBKDF2算法,并通过盐值salt和用户输入的诱饵口令pd导出第一密钥key

(4)安卓系统对移动设备的公共卷和隐藏卷进行加密,生成可否认存储加密系统:

(4a)安卓系统通过诱饵口令pd和盐值salt对加密的公共卷密钥E(MK)进行解密,得到公共卷的加密密钥MK,同时通过真实口令ed计算偏移地址offset,并通过盐值salt和真实口令ed对所读取的offset处加密的隐藏卷密钥E(MK')进行解密,得到隐藏卷的加密密钥MK';

(4b)安卓系统采用AES-XTS模式,通过公共卷的加密密钥MK对公共卷进行加密,同时通过隐藏卷的加密密钥MK'对隐藏卷进行加密,得到具有加密的公共卷和加密的隐藏卷的安卓系统,即可否认存储加密系统;

(5)基于可否认储存加密系统确定安卓系统数据删除模式:

(5a)开机启动后用户在锁屏界面输入口令passwd

(5b)安卓系统读取存放在逻辑块设备L的加密页脚中的加密的公共卷密钥E(MK)和盐值salt,并通过salt和用户输入的口令passwd

(5c)安卓系统判断口令解密码MK”与公共卷的加密密钥MK是否相等,若是,使用MK”对加密的公共卷进行解密,并将解密后公共卷作为自己的文件系统,同时将MK保存在系统开机启动保存的saved_master_key中,形成标准模式,然后执行步骤(7),否则执行步骤(5d);

(5d)安卓系统根据用户输入的口令passwd

(5e)安卓系统判断第一偏移解密码MK”'1与隐藏卷的加密密钥MK'是否相等,若是,使用MK”'1对加密的隐藏卷进行解密,并将解密后隐藏卷作为自己的文件系统,同时将MK'保存在系统开机启动保存的saved_master_key中,形成PDE模式,然后执行步骤(8),否则执行步骤(5f);

(5f)安卓系统计算用户输入的口令passwd

(6)安卓系统实现开机启动模式的数据删除:

安卓系统删除加密的隐藏卷密钥E(MK'),同时使用随机密钥shred_key对隐藏卷的原有数据进行加密,实现对隐藏卷的原有数据进行覆盖,即实现开机启动模式对隐藏卷的原有数据安全删除,并将dd保存在系统开机启动保存的saved_master_key中,然后提示用户口令输入错误,并要求用户重新输入口令;

(7)安卓系统实现标准模式的数据删除:

(7a)用户在锁屏界面输入口令passwd

(7b)安卓系统读取存放在逻辑块设备L的加密页脚中的加密的公共卷密钥E(MK)、盐值salt和系统开机启动保存的saved_master_key,并对用户输入的口令passwd

(7c)安卓系统使用第二后异或值passwd'2和盐值salt对加密的公共卷密钥E(MK)进行解密,得到第二后异或解密码MK2;

(7d)安卓系统判断第二后异或解密码MK2与saved_master_key是否相等,若是,则输入的口令passwd

(7e)安卓系统通过前后异或值passwd”'计算第二伪偏移地址offset”,并通过盐值salt和passwd”'对所读取的offset”处的与加密的隐藏卷密钥E(MK')长度相等的随机数K2进行解密,得到第二偏移解密码MK”'2;

(7f)安卓系统判断第二偏移解密码MK”'2与saved_master_key是否相等,若是,安卓系统执行重启安卓系统操作,否则执行步骤(7g);

(7g)安卓系统判断用户输入的口令passwd

(8)安卓系统实现PDE模式的数据删除:

(8a)用户在锁屏界面输入口令passwd

(8b)安卓系统读取存放在加密页脚的已加密的公共卷密钥E(MK)、盐值salt和系统开机启动保存的saved_master_key,并对用户输入的口令passwd

(8c)安卓系统通过第三前异或值passwd”3计算第三伪偏移地址offset”',并通过盐值salt和passwd”3对offset”'处与加密的隐藏卷密钥E(MK')长度相等的随机数K3进行解密,得到第三偏移解密码MK”'3;

(8d)安卓系统判断第三偏移解密码MK”'3和saved_master_key是否相等,若是,则输入的口令passwd

(8e)安卓系统使用后前异或值passwd””计算第四伪偏移地址offset””,并通过passwd””和盐值salt对offset””处与加密的隐藏卷密钥E(MK')长度相等的随机数K4进行解密,得到第四偏移解密码MK”'4;

(8f)安卓系统判断第四偏移解密码MK”'4和saved_master_key是否相等,若是,安卓系统执行重启安卓系统操作,否则执行步骤(8g);

(8g)安卓系统判断用户输入的口令passwd

本发明与现有技术相比,具有以下优点:

本发明通过对移动设备的公共卷和隐藏卷进行加密,生成可否认存储加密系统,将常规数据存放在加密的公共卷中,将敏感数据存放在隐藏卷中,解决了敏感数据在删除之前,设备所有者可能被敌手威胁透漏其设备口令,造成敏感数据泄露的问题,实现数据机密性的提高;并基于可否认储存加密系统确定安卓系统三种数据删除模式,设备所有者可以在开机启动、标准或者PDE三种模式下删除隐藏卷的加密密钥,并且对隐藏卷的数据进行重写,然后设备所有者可以使用诱饵口令进入存放常规数据的公共卷,解决了数据被删除后容易被敌手发现删除痕迹的问题,实现了数据可否认性的提高。

附图说明

图1是本发明的实现流程图;

图2是本发明确定删除模式的实现流程图;

图3是发明在标准模式下数据删除的实现流程图;

图4是本发明在PDE模式下数据删除的实现流程图。

具体实施方式

下面结合附图和具体实施例,对本发明作进一步详细描述。

本发明使用Android 4.2.2和LG Nexus 4来实现,首先需要先将修改后的CommandListener.cpp、cryptfs.c和cryptfs.h放在Android 4.2.2代码的aosp/system/vold/中,并替换原始文件,可以从http://source.android.com/source/downloading.html获取整个安卓源代码。

编译前在http://source.android.com/source/building-kernels.html获得内核源码。配置内核时,应打开XTS、gf128mul和Thin Provisioning。然后开始编译修改后的Android 4.2.2代码,编译代码后会得到system.img、boot.img等镜像,然后使用工具Android Image Kitchen修改boot.img,将init.mako.rc置于boot下的/ramdisk中,并替换旧的。此外,您应该为Android编译LVM和thin provisioning tools,并将它们放在boot.img中,然后可以得到修改后的boot.img,最后使用adb和fastbooot工具将所有镜像刷入手机。

参照图1,本发明包括如下步骤:

步骤1)初始化参数:

初始化用户输入的最长为64比特删除口令为dd、真实口令为ed、诱饵口令为pd,移动设备适配的安卓系统随机生成的512比特的随机密钥为shred_key,和两个长度为512比特公共卷的加密密钥为MK,隐藏卷的加密密钥为MK',系统开机启动保存的全局变量saved_master_key。

步骤2)安卓系统创建公共卷及隐藏卷:

步骤2a)安卓系统使用密钥shred_key,并采用AES-XTS模式对逻辑块设备进行两次加密,AES-XTS是目前最安全的且已经被多方分析且广为全世界所使用的加密算法,进行两次加密是因为一次加密后的结果不能保证数据被完全覆盖,加密实际上是产生随机数据,然而加密的结果并不是完全随机的,所以要进行两次加密,目的是擦除逻辑块设备上原来的数据,得到数据擦除后的逻辑块设备L;

步骤2b)安卓系统在逻辑块设备L的总空间上创建第一加密映射块设备,同时根据用户输入的真实口令ed计算偏移地址offset,并选取偏移地址offset到逻辑块设备L末端的存储空间创建第二加密映射块设备,offset计算公式如下,

offset=0.75*vlen-H(ed||salt)mod(0.25*vlen)

步骤2c)安卓系统通过逻辑卷管理器LVM和精简配置T在第一加密映射块设备上创建public_volumn卷,同时在第二加密映射块设备上创建pde_volumn卷,并通过系统指令将public_volumn卷、pde_volumn卷分别格式化为EXT4文件格式,得到公共卷、隐藏卷。

其中EXT4是第四代扩展文件系统,是Linux系统下的日志文件系统;逻辑卷管理器LVM是Linux内核提供的逻辑卷管理功能用于实现存储系统的虚拟化,它通过在硬盘的分区上创建一个逻辑层,把磁盘或分区抽象成逻辑分区以方便Linux系统管理磁盘分配系统;精简配置T是在共享存储环境下优化可用空间利用率的技术,它按需分配数据块,而不是传统的预先分配所有数据块的方式。采用传统的预先分配的方式,如果分配给应用程序的空间未被完全利用,剩余的空间将不能共享给其他的应用程序。相对于传统的预先分配,这种按需分配方式的方式,消除了由于未完全使用容量造成的空间浪费。此外,Thinprovisioning还将部分文件系统对于块设备的随机读写转化为存储介质上的顺序读写

步骤3)安卓系统对公共卷及隐藏卷的加密密钥进行加密:

步骤3a)安卓系统对用户输入的删除口令dd与用户输入的真实口令ed、诱饵口令pd分别进行异或操作,并将dd与ed的异或结果拼接在dd与pd的异或结果之前,形成盐值salt,即salt的前64比特为删除口令dd与真实口令ed的异或结果,salt的后64比特为删除口令dd与诱饵口令pd的异或结果,再将salt存储在逻辑块设备L的加密页脚(metadata分区)中;

步骤3b)安卓系统采用PBKDF2算法,并将盐值salt和用户输入的诱饵口令pd代入该算法可以导出大小为512的第一密钥key

步骤4)安卓系统对移动设备的公共卷和隐藏卷进行加密,生成可否认加密系统:

步骤4a)安卓系统通过诱饵口令pd和盐值salt对加密的公共卷密钥E(MK)进行解密,得到公共卷的加密密钥MK,同时通过真实口令ed计算偏移地址offset,并通过盐值salt和真实口令ed对所读取的offset处加密的隐藏卷密钥E(MK')进行解密,得到隐藏卷的加密密钥MK',offset计算公式为,

offset=0.75*vlen-H(ed||salt)mod(0.25*vlen)

步骤4b)安卓系统采用AES-XTS模式,通过公共卷的加密密钥MK对公共卷进行加密,同时通过隐藏卷的加密密钥MK'对隐藏卷进行加密,得到具有加密的公共卷和加密的隐藏卷的安卓系统,即可否认加密系统;

步骤5)基于可否认加密系统确定安卓系统数据删除模式,实现流程如图2所示:

步骤5a)开机启动后用户输入启动口令passwd

步骤5b)安卓系统读取存放在逻辑块设备L的加密页脚中的加密的公共卷密钥E(MK)和盐值salt,并通过salt和用户输入的口令passwd

步骤5c)安卓系统判断口令解密码MK”与公共卷的加密密钥MK是否相等,若是,使用MK”对加密的公共卷进行解密,并将解密后公共卷作为自己的文件系统,同时将MK保存在系统开机启动保存的saved_master_key中,形成标准模式,然后执行步骤(7),否则执行步骤(5d);

步骤5d)安卓系统根据用户输入的口令passwd

offset'=0.75*vlen-H(passwd||salt)mod(0.25*vlen)

然后通过盐值salt和passwd

步骤5e)安卓系统判断第一偏移解密码MK”'1与隐藏卷的加密密钥MK'是否相等,若是,使用MK”'1对加密的隐藏卷进行解密,并将解密后隐藏卷作为自己的文件系统,同时将MK'保存在系统开机启动保存的saved_master_key中,形成PDE模式,然后执行步骤(8),否则执行步骤(5f);

步骤5f)安卓系统计算用户输入的口令passwd

步骤6)安卓系统实现开机启动模式的数据删除:

安卓系统随机生成521比特的随机数,将其写入到偏移地址offset处,完成对加密的隐藏卷密钥E(MK')的删除,并生成大小为512比特的随机密钥shred_key对隐藏卷的数据进行加密,使其完成对隐藏卷的原有数据进行覆盖,实现开机启动模式对隐藏卷原有数据数据的安全删除,并将dd保存在系统开机启动保存的saved_master_key中,提示用户口令输入错误,并要求用户重新输入;

步骤7)安卓系统实现标准模式的数据删除,实现流程如图3所示:

步骤7a)用户在锁屏界面输入口令passwd

步骤7b)安卓系统读取存放在逻辑块设备L的加密页脚中的加密的公共卷密钥E(MK)、盐值salt和系统开机启动保存的saved_master_key,并对用户输入的口令passwd

步骤7c)安卓系统使用第二后异或值passwd'2和盐值salt对加密的公共卷密钥E(MK)进行解密,得到第二后异或解密码MK2;

步骤7d)安卓系统判断第二后异或解密码MK2与saved_master_key是否相等,若是,则输入的口令passwd

步骤7e)安卓系统通过前后异或值passwd”'计算第二伪偏移地址offset”,通过盐值salt和passwd”'对所读取的offset”处的与加密的隐藏卷密钥E(MK')长度相等的随机数K2进行解密,得到第二偏移解密码MK”'2,offset”计算公式如下,

offset”=0.75*vlen-H(passwd”2||salt)mod(0.25*vlen)

步骤7f)安卓系统判断第二偏移解密码MK”'2与saved_master_key是否相等,若是,安卓系统执行重启安卓系统操作,否则执行步骤(7g);

步骤7g)安卓系统判断用户输入的口令passwd

步骤8)安卓系统实现PDE模式的数据删除,实现流程如图4所示:

步骤8a)用户在锁屏界面输入口令passwd

步骤8b)安卓系统读取存放在加密页脚的已加密的公共卷密钥E(MK)、盐值salt和系统开机启动保存的saved_master_key,并对用户输入的口令passwd

步骤8c)安卓系统通过第三前异或值passwd”3计算第三伪偏移地址offset”',并通过盐值salt和passwd”3对offset”'处与加密的隐藏卷密钥E(MK')长度相等的随机数K3进行解密,得到第三偏移解密码MK”'3,offset”'计算公式如下,

offset”'=0.75*vlen-H(passwd”3||salt)mod(0.25*vlen)

步骤8d)安卓系统判断第三偏移解密码MK”'3和saved_master_key是否相等,若是,则输入的口令passwd

步骤8e)安卓系统使用后前异或值passwd””计算第四伪偏移地址offset””,并通过passwd””和盐值salt对offset””处与加密的隐藏卷密钥E(MK')长度相等的随机数K4进行解密,得到第四偏移解密码MK”'4,offset””计算公式如下,

offset””=0.75*vlen-H(passwd””||salt)mod(0.25*vlen)

步骤8f)安卓系统判断第四偏移解密码MK”'4和saved_master_key是否相等,若是,安卓系统执行重启安卓系统操作,否则执行步骤(8g);

步骤8g)安卓系统判断用户输入的口令passwd

与现有技术相比,在可用性相当的前提下,本发明有效提升了数据的机密性和可否认性:

数据的机密性是指数据在没有授权或者没有口令时,这些数据是不可获得或者不可理解的。本实例中依据和安全删除结合的可否认存储加密系统,将常规数据存放在加密后的公共卷,敏感数据存放在加密后的隐藏卷,在敏感数据还没有被删除之前,如果设备所有者受到敌手威胁时可以交出诱饵口令,使其进入存放常规数据的公共卷,提升了数据的机密性。

数据的可否认性是指设备所有者可以否认设备中存在的敏感数据,从而达到对这些敏感数据的隐藏,很难被敌手发现。本实例中基于可否认储存加密系统确定安卓系统三种数据删除模式,设备所有者可以在开机启动、标准或者PDE三种模式下删除存放在隐藏卷的数据,然后设备所有者可以使用诱饵口令进入存放常规数据的公共卷,让敌手很难发现对数据的删除痕迹,提升了数据的可否认性。

本发明未详细说明部分属于本领域技术人员公知常识。

以上描述仅是本发明的一个具体实施例,不构成对本发明的任何限制,显然对于本领域的专业人员来说,在了解了本发明内容和原理后,都可能在不背离本发明原理的情况下,进行形式和细节上的各种修正和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求的保护范围之内。

相关技术
  • 基于可否认存储加密的安卓系统数据删除方法
  • 一种基于异构系统的可否认认证的加密方法和系统
技术分类

06120113792333