CN113806822A - 基于可否认存储加密的安卓系统数据删除方法 - Google Patents
基于可否认存储加密的安卓系统数据删除方法 Download PDFInfo
- Publication number
- CN113806822A CN113806822A CN202111074931.2A CN202111074931A CN113806822A CN 113806822 A CN113806822 A CN 113806822A CN 202111074931 A CN202111074931 A CN 202111074931A CN 113806822 A CN113806822 A CN 113806822A
- Authority
- CN
- China
- Prior art keywords
- key
- password
- volume
- android system
- salt
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012217 deletion Methods 0.000 title claims abstract description 62
- 230000037430 deletion Effects 0.000 title claims abstract description 62
- 238000000034 method Methods 0.000 title claims abstract description 16
- 150000003839 salts Chemical class 0.000 claims description 133
- 238000013507 mapping Methods 0.000 claims description 12
- 101100226364 Arabidopsis thaliana EXT1 gene Proteins 0.000 claims description 4
- 230000006870 function Effects 0.000 claims description 2
- 230000006872 improvement Effects 0.000 abstract description 2
- 238000004364 calculation method Methods 0.000 description 5
- 238000005192 partition Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 229920000057 Mannan Polymers 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2143—Clearing memory, e.g. to prevent the data from being stolen
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本发明提出了一种基于可否认存储加密的安卓系统数据删除方法,实现步骤为:(1)初始化参数;(2)创建公共卷及隐藏卷;(3)对公共卷及隐藏卷的加密密钥进行加密;(4)对公共卷和隐藏卷进行加密,生成可否认存储加密系统;(5)基于可否认储存加密系统确定数据删除模式;(6)实现开机启动模式的数据删除;(7)实现标准模式的数据删除;(8)实现PDE模式的数据删除。本发明通过生成可否认存储加密系统,解决了在数据在删除之前,设备口令被透露,造成数据泄露的问题,实现数据机密性的提高;并基于可否认储存加密系统确定三种数据删除模式,解决了数据被删除后容易被敌手发现删除痕迹的问题,实现了数据可否认性的提高。
Description
技术领域
本发明属于信息安全技术领域,涉及一种数据删除方法,具体涉及一种基于可否认存储加密的安卓系统数据删除方法。
背景技术
当今时代是飞速发展的信息时代,使用智能手机的人越来越多。据报告显示,截至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导出第一密钥key1,然后通过key1对公共卷的加密密钥MK进行加密后,将加密的公共卷密钥E(MK)存储在逻辑块设备L的加密页脚中,同时通过盐值salt和用户输入的真实口令ed导出第二密钥key2,然后通过key2对隐藏卷的加密密钥MK'进行加密后,将加密的隐藏卷密钥E(MK')存储在逻辑块设备L的偏移地址offset位置;
(4)安卓系统对移动设备的公共卷和隐藏卷进行加密,生成可否认存储加密系统:
(4a)安卓系统通过诱饵口令pd和盐值salt对加密的公共卷密钥E(MK)进行解密,得到公共卷的加密密钥MK,同时通过真实口令ed计算偏移地址offset,并通过盐值salt和真实口令ed对所读取的offset处加密的隐藏卷密钥E(MK')进行解密,得到隐藏卷的加密密钥MK';
(4b)安卓系统采用AES-XTS模式,通过公共卷的加密密钥MK对公共卷进行加密,同时通过隐藏卷的加密密钥MK'对隐藏卷进行加密,得到具有加密的公共卷和加密的隐藏卷的安卓系统,即可否认存储加密系统;
(5)基于可否认储存加密系统确定安卓系统数据删除模式:
(5a)开机启动后用户在锁屏界面输入口令passwd1;
(5b)安卓系统读取存放在逻辑块设备L的加密页脚中的加密的公共卷密钥E(MK)和盐值salt,并通过salt和用户输入的口令passwd1对E(MK)进行解密,得到口令解密码MK”;
(5c)安卓系统判断口令解密码MK”与公共卷的加密密钥MK是否相等,若是,使用MK”对加密的公共卷进行解密,并将解密后公共卷作为自己的文件系统,同时将MK保存在系统开机启动保存的saved_master_key中,形成标准模式,然后执行步骤(7),否则执行步骤(5d);
(5d)安卓系统根据用户输入的口令passwd1计算第一伪偏移地址offset',然后通过盐值salt和passwd1对所读取的offset'处的与加密的隐藏卷密钥E(MK')长度相等的随机数K1进行解密,得到第一偏移解密码MK”'1;
(5e)安卓系统判断第一偏移解密码MK”'1与隐藏卷的加密密钥MK'是否相等,若是,使用MK”'1对加密的隐藏卷进行解密,并将解密后隐藏卷作为自己的文件系统,同时将MK'保存在系统开机启动保存的saved_master_key中,形成PDE模式,然后执行步骤(8),否则执行步骤(5f);
(5f)安卓系统计算用户输入的口令passwd1与盐值salt后半部分的第一后异或值passwd'1,并使用第一后异或值passwd'1和盐值salt对与加密的隐藏卷密钥E(MK')长度相等的随机数K1进行解密,得到第一后异或解密码MK'1,然后判断MK'1与公共卷的加密密钥MK是否相等,若是,形成开机启动模式,执行步骤(6),否则用户口令输入错误,并提示用户重新输入口令后,执行步骤(5a);
(6)安卓系统实现开机启动模式的数据删除:
安卓系统删除加密的隐藏卷密钥E(MK'),同时使用随机密钥shred_key对隐藏卷的原有数据进行加密,实现对隐藏卷的原有数据进行覆盖,即实现开机启动模式对隐藏卷的原有数据安全删除,并将dd保存在系统开机启动保存的saved_master_key中,然后提示用户口令输入错误,并要求用户重新输入口令;
(7)安卓系统实现标准模式的数据删除:
(7a)用户在锁屏界面输入口令passwd2;
(7b)安卓系统读取存放在逻辑块设备L的加密页脚中的加密的公共卷密钥E(MK)、盐值salt和系统开机启动保存的saved_master_key,并对用户输入的口令passwd2和salt后半部分进行异或操作,得到第二后异或值passwd'2;
(7c)安卓系统使用第二后异或值passwd'2和盐值salt对加密的公共卷密钥E(MK)进行解密,得到第二后异或解密码MK2;
(7d)安卓系统判断第二后异或解密码MK2与saved_master_key是否相等,若是,则输入的口令passwd2是删除口令,删除加密的隐藏卷密钥E(MK'),同时使用随机密钥shred_key对隐藏卷的原有数据进行加密,实现对隐藏卷的原有数据进行覆盖,即实现标准模式对隐藏卷的原有数据安全删除,否则对用户输入的口令passwd2和盐值salt的前半部分进行异或操作,得到第二前异或值passwd”2,并对第二前异或值passwd”2和salt的后半部分进行异或操作,得到前后异或值passwd”',然后执行步骤(7e);
(7e)安卓系统通过前后异或值passwd”'计算第二伪偏移地址offset”,并通过盐值salt和passwd”'对所读取的offset”处的与加密的隐藏卷密钥E(MK')长度相等的随机数K2进行解密,得到第二偏移解密码MK”'2;
(7f)安卓系统判断第二偏移解密码MK”'2与saved_master_key是否相等,若是,安卓系统执行重启安卓系统操作,否则执行步骤(7g);
(7g)安卓系统判断用户输入的口令passwd2是否是屏幕解锁口令,若是,将解锁屏幕,否则用户口令输入错误,并提示用户重新输入锁屏口令后,执行步骤(7a);
(8)安卓系统实现PDE模式的数据删除:
(8a)用户在锁屏界面输入口令passwd3;
(8b)安卓系统读取存放在加密页脚的已加密的公共卷密钥E(MK)、盐值salt和系统开机启动保存的saved_master_key,并对用户输入的口令passwd3和salt前半部分进行异或操作,得到第三前异或值passwd”3;
(8c)安卓系统通过第三前异或值passwd”3计算第三伪偏移地址offset”',并通过盐值salt和passwd”3对offset”'处与加密的隐藏卷密钥E(MK')长度相等的随机数K3进行解密,得到第三偏移解密码MK”'3;
(8d)安卓系统判断第三偏移解密码MK”'3和saved_master_key是否相等,若是,则输入的口令passwd3是删除口令,删除加密的隐藏卷密钥E(MK'),同时使用随机密钥shred_key对隐藏卷的数据进行加密,使其完成对隐藏卷的原有数据进行覆盖,实现数据的安全删除,否则对用户输入的口令passwd3和盐值salt的后半部分进行异或操作,得到后异或值passwd'3,并对后异或值passwd”3和salt的前半部分进行异或操作,得到后前异或值passwd””,然后执行步骤(8e);
(8e)安卓系统使用后前异或值passwd””计算第四伪偏移地址offset””,并通过passwd””和盐值salt对offset””处与加密的隐藏卷密钥E(MK')长度相等的随机数K4进行解密,得到第四偏移解密码MK”'4;
(8f)安卓系统判断第四偏移解密码MK”'4和saved_master_key是否相等,若是,安卓系统执行重启安卓系统操作,否则执行步骤(8g);
(8g)安卓系统判断用户输入的口令passwd3是否是屏幕解锁口令,若是,将解锁屏幕,否则用户口令输入错误,并提示用户重新输入锁屏口令后,执行步骤(8a)。
本发明与现有技术相比,具有以下优点:
本发明通过对移动设备的公共卷和隐藏卷进行加密,生成可否认存储加密系统,将常规数据存放在加密的公共卷中,将敏感数据存放在隐藏卷中,解决了敏感数据在删除之前,设备所有者可能被敌手威胁透漏其设备口令,造成敏感数据泄露的问题,实现数据机密性的提高;并基于可否认储存加密系统确定安卓系统三种数据删除模式,设备所有者可以在开机启动、标准或者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的第一密钥key1,然后通过key1对公共卷的加密密钥MK进行加密后,将加密的公共卷密钥E(MK)存储在逻辑块设备L的加密页脚中,同时通过盐值salt和用户输入的真实口令ed导出大小为521比特第二密钥key2,然后通过key2对隐藏卷的加密密钥MK'进行加密后,将加密的隐藏卷密钥E(MK')存储在逻辑块设备L的偏移地址offset位置;
步骤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)开机启动后用户输入启动口令passwd1;
步骤5b)安卓系统读取存放在逻辑块设备L的加密页脚中的加密的公共卷密钥E(MK)和盐值salt,并通过salt和用户输入的口令passwd1对E(MK)进行解密,得到口令解密码MK”;
步骤5c)安卓系统判断口令解密码MK”与公共卷的加密密钥MK是否相等,若是,使用MK”对加密的公共卷进行解密,并将解密后公共卷作为自己的文件系统,同时将MK保存在系统开机启动保存的saved_master_key中,形成标准模式,然后执行步骤(7),否则执行步骤(5d);
步骤5d)安卓系统根据用户输入的口令passwd1计算第一伪偏移地址offset',其计算公式为,
offset'=0.75*vlen-H(passwd||salt)mod(0.25*vlen)
然后通过盐值salt和passwd1对所读取的offse't处的与加密的隐藏卷密钥E(MK')长度相等的随机数K1进行解密,得到第一偏移解密码MK”'1;
步骤5e)安卓系统判断第一偏移解密码MK”'1与隐藏卷的加密密钥MK'是否相等,若是,使用MK”'1对加密的隐藏卷进行解密,并将解密后隐藏卷作为自己的文件系统,同时将MK'保存在系统开机启动保存的saved_master_key中,形成PDE模式,然后执行步骤(8),否则执行步骤(5f);
步骤5f)安卓系统计算用户输入的口令passwd1与盐值salt后64位比特的第一后异或值passwd'1,并使用第一后异或值passwd'1和盐值salt对与加密的隐藏卷密钥E(MK')长度相等的随机数K1进行解密,得到第一后异或解密码MK'1,然后判断MK'1与公共卷的加密密钥MK是否相等,若是,形成开机启动模式,执行步骤(6),否则用户口令输入错误,并提示用户重新输入口令后,执行步骤(5a);
步骤6)安卓系统实现开机启动模式的数据删除:
安卓系统随机生成521比特的随机数,将其写入到偏移地址offset处,完成对加密的隐藏卷密钥E(MK')的删除,并生成大小为512比特的随机密钥shred_key对隐藏卷的数据进行加密,使其完成对隐藏卷的原有数据进行覆盖,实现开机启动模式对隐藏卷原有数据数据的安全删除,并将dd保存在系统开机启动保存的saved_master_key中,提示用户口令输入错误,并要求用户重新输入;
步骤7)安卓系统实现标准模式的数据删除,实现流程如图3所示:
步骤7a)用户在锁屏界面输入口令passwd2;
步骤7b)安卓系统读取存放在逻辑块设备L的加密页脚中的加密的公共卷密钥E(MK)、盐值salt和系统开机启动保存的saved_master_key,并对用户输入的口令passwd2和salt后64位比特进行异或操作,得到第二后异或值passwd'2;
步骤7c)安卓系统使用第二后异或值passwd'2和盐值salt对加密的公共卷密钥E(MK)进行解密,得到第二后异或解密码MK2;
步骤7d)安卓系统判断第二后异或解密码MK2与saved_master_key是否相等,若是,则输入的口令passwd2是删除口令,删除加密的隐藏卷密钥E(MK'),同时使用随机密钥shred_key对隐藏卷的原有数据进行加密,实现对隐藏卷的原有数据进行覆盖,即实现标准模式对隐藏卷的原有数据安全删除,否则对用户输入的口令passwd2和盐值salt的前64位比特进行异或操作,得到第二前异或值passwd”2,并对第二前异或值passwd”2和salt的后64位比特进行异或操作,得到前后异或值passwd”',然后执行步骤(7e);
步骤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)安卓系统判断用户输入的口令passwd2是否是屏幕解锁口令,若是,将解锁屏幕,否则用户口令输入错误,并提示用户重新输入锁屏口令后,执行步骤(7a);
步骤8)安卓系统实现PDE模式的数据删除,实现流程如图4所示:
步骤8a)用户在锁屏界面输入口令passwd3;
步骤8b)安卓系统读取存放在加密页脚的已加密的公共卷密钥E(MK)、盐值salt和系统开机启动保存的saved_master_key,并对用户输入的口令passwd3和salt前64位比特进行异或操作,得到第三前异或值passwd”3;
步骤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是否相等,若是,则输入的口令passwd3是删除口令,删除加密的隐藏卷密钥E(MK'),同时使用随机密钥shred_key对隐藏卷的原有数据进行加密,实现对隐藏卷的原有数据进行覆盖,即实现PDE模式对隐藏卷的原有数据安全删除,否则对用户输入的口令passwd3和盐值salt的后64位比特进行异或操作,得到后异或值passwd'3,并对后异或值passwd”3和salt的前64位比特进行异或操作,得到后前异或值passwd””,然后执行步骤(8e);
步骤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)安卓系统判断用户输入的口令passwd3是否是屏幕解锁口令,若是,将解锁屏幕,否则用户口令输入错误,并提示用户重新输入锁屏口令后,执行步骤(8a)。
与现有技术相比,在可用性相当的前提下,本发明有效提升了数据的机密性和可否认性:
数据的机密性是指数据在没有授权或者没有口令时,这些数据是不可获得或者不可理解的。本实例中依据和安全删除结合的可否认存储加密系统,将常规数据存放在加密后的公共卷,敏感数据存放在加密后的隐藏卷,在敏感数据还没有被删除之前,如果设备所有者受到敌手威胁时可以交出诱饵口令,使其进入存放常规数据的公共卷,提升了数据的机密性。
数据的可否认性是指设备所有者可以否认设备中存在的敏感数据,从而达到对这些敏感数据的隐藏,很难被敌手发现。本实例中基于可否认储存加密系统确定安卓系统三种数据删除模式,设备所有者可以在开机启动、标准或者PDE三种模式下删除存放在隐藏卷的数据,然后设备所有者可以使用诱饵口令进入存放常规数据的公共卷,让敌手很难发现对数据的删除痕迹,提升了数据的可否认性。
本发明未详细说明部分属于本领域技术人员公知常识。
以上描述仅是本发明的一个具体实施例,不构成对本发明的任何限制,显然对于本领域的专业人员来说,在了解了本发明内容和原理后,都可能在不背离本发明原理的情况下,进行形式和细节上的各种修正和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求的保护范围之内。
Claims (3)
1.一种基于可否认存储加密的安卓系统数据删除方法,其特征在于包括如下步骤:
(1)初始化参数:
初始化用户输入的删除口令为dd、真实口令为ed、诱饵口令为pd,移动设备适配的安卓系统随机生成的随机密钥为shred_key,公共卷的加密密钥为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导出第一密钥key1,然后通过key1对公共卷的加密密钥MK进行加密后,将加密的公共卷密钥E(MK)存储在逻辑块设备L的加密页脚中,同时通过盐值salt和用户输入的真实口令ed导出第二密钥key2,然后通过key2对隐藏卷的加密密钥MK'进行加密后,将加密的隐藏卷密钥E(MK')存储在逻辑块设备L的偏移地址offset位置;
(4)安卓系统对移动设备的公共卷和隐藏卷进行加密,生成可否认存储加密系统:
(4a)安卓系统通过诱饵口令pd和盐值salt对加密的公共卷密钥E(MK)进行解密,得到公共卷的加密密钥MK,同时通过真实口令ed计算偏移地址offset,并通过盐值salt和真实口令ed对所读取的offset处加密的隐藏卷密钥E(MK')进行解密,得到隐藏卷的加密密钥MK';
(4b)安卓系统采用AES-XTS模式,通过公共卷的加密密钥MK对公共卷进行加密,同时通过隐藏卷的加密密钥MK'对隐藏卷进行加密,得到具有加密的公共卷和加密的隐藏卷的安卓系统,即可否认存储加密系统;
(5)基于可否认存储加密系统确定安卓系统数据删除模式:
(5a)开机启动后用户输入启动口令passwd1;
(5b)安卓系统读取存放在逻辑块设备L的加密页脚中的加密的公共卷密钥E(MK)和盐值salt,并通过salt和用户输入的口令passwd1对E(MK)进行解密,得到口令解密码MK”;
(5c)安卓系统判断口令解密码MK”与公共卷的加密密钥MK是否相等,若是,使用MK”对加密的公共卷进行解密,并将解密后公共卷作为自己的文件系统,同时将MK保存在系统开机启动保存的saved_master_key中,形成标准模式,然后执行步骤(7),否则执行步骤(5d);
(5d)安卓系统根据用户输入的口令passwd1计算第一伪偏移地址offset',然后通过盐值salt和passwd1对所读取的offse't处的与加密的隐藏卷密钥E(MK')长度相等的随机数K1进行解密,得到第一偏移解密码MK”'1;
(5e)安卓系统判断第一偏移解密码MK”'1与隐藏卷的加密密钥MK'是否相等,若是,使用MK”'1对加密的隐藏卷进行解密,并将解密后隐藏卷作为自己的文件系统,同时将MK'保存在系统开机启动保存的saved_master_key中,形成PDE模式,然后执行步骤(8),否则执行步骤(5f);
(5f)安卓系统计算用户输入的口令passwd1与盐值salt后半部分的第一后异或值passwd'1,并使用第一后异或值passwd'1和盐值salt对与加密的隐藏卷密钥E(MK')长度相等的随机数K1进行解密,得到第一后异或解密码MK'1,然后判断MK'1与公共卷的加密密钥MK是否相等,若是,形成开机启动模式,执行步骤(6),否则用户口令输入错误,并提示用户重新输入口令后,执行步骤(5a);
(6)安卓系统实现开机启动模式的数据删除:
安卓系统删除加密的隐藏卷密钥E(MK'),同时使用随机密钥shred_key对隐藏卷的原有数据进行加密,实现对隐藏卷的原有数据进行覆盖,即实现开机启动模式对隐藏卷的原有数据安全删除,并将dd保存在系统开机启动保存的saved_master_key中,然后提示用户口令输入错误,并要求用户重新输入口令;
(7)安卓系统实现标准模式的数据删除:
(7a)用户在锁屏界面输入口令passwd2;
(7b)安卓系统读取存放在逻辑块设备L的加密页脚中的加密的公共卷密钥E(MK)、盐值salt和系统开机启动保存的saved_master_key,并对用户输入的口令passwd2和salt后半部分进行异或操作,得到第二后异或值passwd'2;
(7c)安卓系统使用第二后异或值passwd'2和盐值salt对加密的公共卷密钥E(MK)进行解密,得到第二后异或解密码MK2;
(7d)安卓系统判断第二后异或解密码MK2与saved_master_key是否相等,若是,则输入的口令passwd2是删除口令,删除加密的隐藏卷密钥E(MK'),同时使用随机密钥shred_key对隐藏卷的原有数据进行加密,实现对隐藏卷的原有数据进行覆盖,即实现标准模式对隐藏卷的原有数据安全删除,否则对用户输入的口令passwd2和盐值salt的前半部分进行异或操作,得到第二前异或值passwd”2,并对第二前异或值passwd”2和salt的后半部分进行异或操作,得到前后异或值passwd”',然后执行步骤(7e);
(7e)安卓系统通过前后异或值passwd”'计算第二伪偏移地址offset”,并通过盐值salt和passwd”'对所读取的offset”处的与加密的隐藏卷密钥E(MK')长度相等的随机数K2进行解密,得到第二偏移解密码MK”'2;
(7f)安卓系统判断第二偏移解密码MK”'2与saved_master_key是否相等,若是,安卓系统执行重启安卓系统操作,否则执行步骤(7g);
(7g)安卓系统判断用户输入的口令passwd2是否是屏幕解锁口令,若是,将解锁屏幕,否则用户口令输入错误,并提示用户重新输入锁屏口令后,执行步骤(7a);
(8)安卓系统实现PDE模式的数据删除:
(8a)用户在锁屏界面输入口令passwd3;
(8b)安卓系统读取存放在加密页脚的已加密的公共卷密钥E(MK)、盐值salt和系统开机启动保存的saved_master_key,并对用户输入的口令passwd3和salt前半部分进行异或操作,得到第三前异或值passwd”3;
(8c)安卓系统通过第三前异或值passwd”3计算第三伪偏移地址offset”',并通过盐值salt和passwd”3对offset”'处与加密的隐藏卷密钥E(MK')长度相等的随机数K3进行解密,得到第三偏移解密码MK”'3;
(8d)安卓系统判断第三偏移解密码MK”'3和saved_master_key是否相等,若是,则输入的口令passwd3是删除口令,删除加密的隐藏卷密钥E(MK'),同时使用随机密钥shred_key对隐藏卷的数据进行加密,使其完成对隐藏卷的原有数据进行覆盖,实现数据的安全删除,否则对用户输入的口令passwd3和盐值salt的后半部分进行异或操作,得到后异或值passwd'3,并对后异或值passwd”3和salt的前半部分进行异或操作,得到后前异或值passwd””,然后执行步骤(8e);
(8e)安卓系统使用后前异或值passwd””计算第四伪偏移地址offset””,并通过passwd””和盐值salt对offset””处与加密的隐藏卷密钥E(MK')长度相等的随机数K4进行解密,得到第四偏移解密码MK”'4;
(8f)安卓系统判断第四偏移解密码MK”'4和saved_master_key是否相等,若是,安卓系统执行重启安卓系统操作,否则执行步骤(8g);
(8g)安卓系统判断用户输入的口令passwd3是否是屏幕解锁口令,若是,将解锁屏幕,否则用户口令输入错误,并提示用户重新输入锁屏口令后,执行步骤(8a)。
2.根据权利要求1所述的基于可否认存储加密的适用于安卓系统的数据删除方法,其特征在于,步骤(2a)中所述的数据擦除是指使用随机数填充的方式来清除原来数据。
3.根据权利要求1所述的基于可否认存储加密的适用于安卓系统的数据删除方法,其特征在于,步骤(4a)中所述的通过真实口令ed计算偏移地址offset,以及(5d)中所述的根据用户输入的口令passwd1计算第一伪偏移地址offset',以及(7e)中所述的根据前后异或值passwd”'计算第二伪偏移地址offset”,以及(8c)中所述的根据第三前异或值passwd”3计算第三伪偏移地址offset”',以及(8e)中所述的根据后前异或值passwd””计算第四伪偏移地址offset””,计算公式分别为:
offset=0.75*vlen-H(ed||salt)mod(0.25*vlen)
offset'=0.75*vlen-H(passwd||salt)mod(0.25*vlen)
offset”=0.75*vlen-H(passwd”2||salt)mod(0.25*vlen)
offset”'=0.75*vlen-H(passwd”3||salt)mod(0.25*vlen)
offset””=0.75*vlen-H(passwd””||salt)mod(0.25*vlen)
其中,H表示PBKDF2迭代散列函数,vlen表示逻辑块设备上分配的存储单元数,mod为取余运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111074931.2A CN113806822B (zh) | 2021-09-14 | 2021-09-14 | 基于可否认存储加密的安卓系统数据删除方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111074931.2A CN113806822B (zh) | 2021-09-14 | 2021-09-14 | 基于可否认存储加密的安卓系统数据删除方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113806822A true CN113806822A (zh) | 2021-12-17 |
CN113806822B CN113806822B (zh) | 2024-02-23 |
Family
ID=78895199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111074931.2A Active CN113806822B (zh) | 2021-09-14 | 2021-09-14 | 基于可否认存储加密的安卓系统数据删除方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113806822B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567688A (zh) * | 2011-11-30 | 2012-07-11 | 中标软件有限公司 | 一种安卓操作系统上的文件保密系统及其保密方法 |
US20170230179A1 (en) * | 2016-02-05 | 2017-08-10 | Mohammad Mannan | Password triggered trusted encrytpion key deletion |
CN107944292A (zh) * | 2017-11-15 | 2018-04-20 | 北京邮电大学 | 一种隐私数据保护方法及系统 |
EP3700123A1 (en) * | 2019-02-20 | 2020-08-26 | Thomas Waters | Cryptographic method and system for securing electronic transmission of data |
-
2021
- 2021-09-14 CN CN202111074931.2A patent/CN113806822B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567688A (zh) * | 2011-11-30 | 2012-07-11 | 中标软件有限公司 | 一种安卓操作系统上的文件保密系统及其保密方法 |
US20170230179A1 (en) * | 2016-02-05 | 2017-08-10 | Mohammad Mannan | Password triggered trusted encrytpion key deletion |
CN107944292A (zh) * | 2017-11-15 | 2018-04-20 | 北京邮电大学 | 一种隐私数据保护方法及系统 |
EP3700123A1 (en) * | 2019-02-20 | 2020-08-26 | Thomas Waters | Cryptographic method and system for securing electronic transmission of data |
Non-Patent Citations (2)
Title |
---|
张佳露;方勇;卜冬曜;许广宏;: "基于汽车移动互联平台的安卓系统安全加密", 网络空间安全, no. 1, 10 October 2016 (2016-10-10) * |
高慧;郭宪勇;: "面向Android的可否认透明加密系统", 计算机工程与设计, no. 02, 16 February 2016 (2016-02-16) * |
Also Published As
Publication number | Publication date |
---|---|
CN113806822B (zh) | 2024-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11263020B2 (en) | System and method for wiping encrypted data on a device having file-level content protection | |
US9740639B2 (en) | Map-based rapid data encryption policy compliance | |
US8433901B2 (en) | System and method for wiping encrypted data on a device having file-level content protection | |
US8589680B2 (en) | System and method for synchronizing encrypted data on a device having file-level content protection | |
US8412934B2 (en) | System and method for backing up and restoring files encrypted with file-level content protection | |
US6249866B1 (en) | Encrypting file system and method | |
US8689279B2 (en) | Encrypted chunk-based rapid data encryption policy compliance | |
WO2016173264A1 (zh) | 电子数据保护方法、装置及终端设备 | |
US9798677B2 (en) | Hybrid cryptographic key derivation | |
US10943013B2 (en) | Maintaining keys for trusted boot code | |
US8607071B2 (en) | Preventing replay attacks in encrypted file systems | |
Skillen et al. | Mobiflage: Deniable storage encryptionfor mobile devices | |
CN109325355A (zh) | 基于虚拟磁盘的移动终端数据安全存储方法 | |
Zhang et al. | Ensuring data confidentiality via plausibly deniable encryption and secure deletion–a survey | |
Hong et al. | Personal privacy protection framework based on hidden technology for smartphones | |
JP4965512B2 (ja) | 認証システム、情報処理装置、記憶装置、認証方法及びそのプログラム | |
CN116594567A (zh) | 信息管理方法、装置和电子设备 | |
CN113806822A (zh) | 基于可否认存储加密的安卓系统数据删除方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |