FDE概况

本文详细介绍了Android全盘加密(FDE)的概念、原理、架构及其在不同Android版本中的应用,阐述了FDE如何保护/data分区的原始数据,并提到了相关的关键组件如vold、cryptfs和mountservice。此外,还提及了Android中涉及FDE的配置文件和fstab设置。

为了防止Android手机的数据被非法盗取,Google在Android 3.0之后的版本支持对手机加密,那个时候还是一个option的功能,用户可以在setting->security中根据自己的需要对手机加密。但在Android 6.0之后的版本,Google要求手机默认开启加密功能。

一.FDE(Full Disk Encryption简写)

FDE是对手机/data分区的raw data数据进行加密,对于文件系统,Android Framework,Application来说,/data的数据是透明的。非法用户无法通过tool工具,将/data分区的数据readback回来,来盗取信息。 即FDE保护的是/data分区的raw data数据。对于通过锁屏进入盗取数据的情况,无法保护。

二.FDE原理

借助DM-crypt这个虚拟device,来实现加解密动作。

1,将block device映射到dm-crypt这个虚拟device上

2,将Ext4等file system mount到dm-crypt

这样在访问data分区的时候,会在dem-crypt device上做加密解密的动作,然后再把数据写入emmc block上。下面是FDE的加解密流程。


因此FDE只能应用在Emmc上,对Nandflash不起作用。

三.FDE architecture

Android中涉及到加解密的模块主要有vold,cryptfs,mountservice.他们主要是通过发command的方式来触发系统进行访问。下面是FDE的架构图。


四.Android相关的文件

    1,/packages/apps/Settings/src/com/android/settings/CryptKeeper.java

    2,/system/vold/*

 3,system/core/fs_mgr/*

4,system/core/init/

五,fstab的配置

/dev/block/platform/msm_sdcc.1/by-name/userdata     /data           ext4    

noatime,nosuid,nodev,barrier=1,data=ordered,nomblk_io_submit,errors=panic                          

wait,check,encryptable=/dev/block/platform/msm_sdcc.1/by-name/metadata

      encyptable:表示未开启默认加密,需要自己手动在setting->security中加密

forceencrypt:表示开启默认加密。





---------------------------------------------------------------------------------------------------------------------------------------------------

敬请关注手机安全之家,了解更多Android Security知识。

关注方法:打开手机微信->通讯录->右上角"添加"->"搜号码"->输入"手机安全之家"->搜索。

或者而通过扫描下方二维码也可以添加。







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值