手机取证数据恢复-什么是手机数据加密-安卓手机FDE与FBE加密区分

一起搞机网推荐使用浏览器为chrome

从2016年初开始,手机数据取证行业里多了一句话很让人无奈的话:“你这手机是加密的!",然后从2017年中开始又有了一句更让人无奈的话:”你这手机是FBE加密的!“为什么是无奈呢,我们来细究一下,什么是手机加密什么又是FBE加密。

什么是安卓手机加密

在安卓4.X的时代,google为了提升安卓手机用户数据安全级别引入了一个用户数据加密机制,FDE(全盘加密简称),这时候的FDE加密机制仅仅是安卓系统里的一个功能而已,而且还是个测试版本,这种加密机制会在用户手动开开启加密选项后把整个用户分区进行全盘加密,由于硬件水平限制(cpu以及手机存储),进行一次加密短则几十分钟,长则几个小时,而且加密过程中手机是完全不能正常使用的。如果中途断电等意外中断了加密进程,那么用户数据很有可能就此烟消云散,所以只有那些有进取精神敢于吃螃蟹的用户才能体验到这个功能的糟糕之处,所以安卓4.x的机型用户区基本上都是没有加密的(加密过的都是已经经历过一次生死考验的,也就不会再去尝试加密了)。

手机取证:FDE与FBE加密介绍

google对于FDE加密在安卓4.X上的表现不满意,经过了一年多的优化,推出了FDE优化版并伴随着安卓5.0的发布一并发布,google还是太自信了,为什么,google居然推行了强制FDE加密(就这么自信!强制FDE加密就是手机用户购买到的新手机在第一次开机的时候就默认启动了用户区全盘加密,没有给用户选择的机会也不可取消),原本按照google的计划呢,google对系统优化还是算可以的,但是万万没有想到的是,众多的手机生产商对于安卓系统的修改简直到了令人发指的程度(典型的就是三星手机UI负优化),当时一个可笑的问题就是5000元的高端FDE加密机型实际体验还不如2000元的没有开始FDE加密的低端机速度快,手机生产商不干了,客户体验糟糕。在大家的一致反对下,google于3个多月后推出了安卓5.1系统更新,除了继续优化之外,取消了强制启用FDE加密,又变回用户可以自己设置是否开启该功能。

FDE最大的问题在于启用后对于本来就不是很强大的硬件产生拖累,所以,google开始卧薪尝胆,没办法啊,google不造手机CPU不造存储器啊,只能说,用户区加密这个概念对于当时的安卓手机来说还是太超前了,硬件拖了后腿。

硬件的性能提升加速了加密技术的实现

这一年高通和小米已经合作了2年多,推出的小米手机备受关注,高通借此快速推出自己的顶级移动CPU-晓龙810,这时候google眼睛一亮,呵呵,这性能可以啊,赶紧发布安卓6.0(贼心不死),又默认开始FDE加密,不过这次没有丢脸,由于高通推出的新CPU平台自带硬件模块,对FDE加密解密的速度有了质的提升,至此,高通,MTK发布的新的CPU平台,都会通过自身硬件优化对FDE加密的支持,而且,又有另一个硬件被安卓引入--UFS存储(小编在以后给大家讲EMMC存储和UFS存储)

什么是FDE加密,看看google怎么定义的吧(以下部分内容引用网络某大神的解释):安卓会通过一个随机生成的128位设备加密密钥 (Device Encryption Key, DEK) 来加密设备的文件系统。安卓使用用户的PIN或者密码来加密DEK,并将它存储在设备加密过的文件系统上。从物理上来讲,它也在设备的闪存芯片中。当你输入正确的PIN或密码时,设备可以解锁DEK,并使用密钥来解锁文件系统。

不过,它也不像上面说的这么简单:DEK实际上是使用用户的PIN或密码,外加一个被称为KeyMaster Key Blob的加密数据块来进行加密的。这个数据块包含一个由KeyMaster程序生成的2048位RSA密钥,它运行在设备处理器上的一个安全区域上。KeyMaster会创建RSA密钥,将其存储在数据块中,并为安卓系统创建一份加密过的拷贝版本。

必须意识到,安卓系统和你的移动应用运行在处理器的非安全区域上。安卓没有访问KeyMaster的安全世界的权限,因此它无法知晓数据块里的RSA密钥。安卓只能获得这个数据块的加密版本,而只有KeyMaster能够解密它。

当你输入PIN或密码时,安卓拿到加密过的数据块,并将它和使用scrypt处理过的PIN或密码一起,传回运行在处理器安全区域上的KeyMaster。KeyMaster将私密地使用处理器中带有的私钥来对数据块进行解密,获得长RSA密钥。然后,它将私密地使用scrypt处理过的PIN或密码,外加长RSA密钥,来制造一个RSA签名,并将签名发回给安卓。之后安卓使用一系列算法来处理这一签名,并最终解密DEK,解锁设备。

因此,全部流程都基于KeyMaster的数据块。数据块包含解密DEK所需的长RSA密钥。安卓只拥有加密后的数据块,而只有用户才有PIN或密码。此外,只有KeyMaster才能解密加密过的数据块。

安卓设备制造商又苦了,为啥呢?没有开机密码用户分区不能被解密的啊,开机不输入密码的前提下电话接不到,短信收不到,最基本的电话需求都满足不了的,数据是安全了,可是,用户体验还是很糟糕啊!

 

手机取证:FDE与FBE加密介绍

经过广大的手机生产商对安卓系统的魔改(google也妥协了),最终采用的强制FDE加密方式的机型呢,开机密码并没有和加密的数据相关,啥意思呢,不管手机用户怎么设置开机密码,解密加密数据的密钥key并不发生任何变化,而且,在手机用户并未输入开机密码的情况下,用户区数据默认就是解密的,开机密码没有参与加密(广大的取证工作者们要感谢这些厂商,对于google提出的FDE加密机型的数据提取/开机密码解密的难度直接降了一个维度,但是通过9008端口;MTK端口;chip off这样优秀的数据提取方式就这样被扼杀了)。

FBE加密模式推出

上面说了,google最初设计的FDE加密其实安全性非常非常的高,只不过由于用户体验差不得已要降低其安全性,平衡自己的强迫症和制造商之间的矛盾(其实是用户对用户信息安全与用户体验的矛盾),google还是不甘心那,目的没达到呢,所以在一年多的时间里又推出了另一种加密方式--FBE。

FBE加密呢并不是对整个用户分区进行加密了,而是有选择性的对用户敏感数据进行加密,不敏感数据以及系统运行产生的数据并不加密,既保证了用户体验,又达到了对用户数据的保护,很明显FBE加密机型的安全性要强于FDE。伴随着安卓7.0,FBE加密首先被华为引用到了一款神机上,华为Mate9,18个月不卡顿,实际上FBE加密方式也是其助攻的一个方面那。为了更清晰的表达,下面给大家看下,FDE加密和FBE加密在首次开机启动未输入开机密码时候的数据状态:

 

手机取证:FDE与FBE加密介绍

FBE加密首次开机输入密码前后的变化

我们可以看到上图,FBE加密的机型在首次开机(就是重启之后开机进系统)没有输入密码的前提下访问 data/data目录都是乱码,但是根目录/data是没有乱码的,因为/data根目录没有被FBE加密,而/data/data子目录就被FBE加密了,被加密的是文件加和文件,而输入正确的开机密码之后手机进入系统后再次访问/data/data居然就被解密了,是不是很神奇?也就是说,用户数据想要被解密使用必须要输入开机密码,这样开机密码就参与到了整个FBE加密解密方式当中,大大加强了用户数据安全程度,接下来我们看一下FDE加密的机型首次开机输入开机密码前后变化:

 

手机取证:FDE与FBE加密介绍

上图,输入密码前后,几乎是没有任何变化的,FDE的加密解密不受开机密码的影响。

总结一下,FDE加密的机型呢,开机密码没有参与到用户数据的加密解密当中,所以FDE机型的开机密码仅仅就是一个不相关的数据文件而已,但是FBE加密机型的开机密码呢是参与到了加密解密的流程当中的,所以在那些FBE加密机型当中,如果办案人员不能获取实际的开机密码的话,基本上很难从手机中获取到又价值的信息。因此,对于FBE加密的机型,破解开机密码的主要方向就是要知道密码实际内容(FBE加密机型在不知晓开机密码的前提下能否提取到有效信息呢?我们留个关子,请听下回分解)。

文章转自河北阮咸公司,如果想要了解专业数据恢复及取证相关的技术可以自行搜索也可以联系一起搞机网站长


一起搞机网部分手机维修教程为网络搜集整理,如果侵犯到您的权益,请qq:2782649243联系我们删除。