为了防止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知识。
关注方法:打开手机微信->通讯录->右上角"添加"->"搜号码"->输入"手机安全之家"->搜索。
或者而通过扫描下方二维码也可以添加。

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

被折叠的 条评论
为什么被折叠?



