安卓版本6及以上的机型,分区基本都加密了的,Google还要求开启Data分区的加密以保护手机数据安全.
从安卓10开始,针对分区存储权限进行了巨大变更,具体内容:“针对外部存储的过滤视图,可提供对特定于应用的文件和媒体集合的访问权限”
从安卓11开始,强制执行分区存储机制,若未将 requestLegacyExternalStorage 设为 true 将以停用分区存储的应用
注意:此分区存储机制和本文的Data分区不是同样一个东西,data分区的数据加密指的是/dev/block/by-name/userdata 这个分区

参考:
Android 11 中的隐私权变更:https://developer.android.google.cn/about/versions/11/privacy
Android 10 中的隐私权变更:https://developer.android.google.cn/about/versions/10/privacy

谷歌对以上手机分区存储机制的改变不限于防止恶意软件读取手机中的数据(恶意软件不限于微信,tim,qq等腾讯类软件)和防止修改Data分区数据

Android 11 中对隐私的重大改变也带来了些弊端
最明显的就是 IO 性能下降
在安卓11采用了FUSE作为用户空间文件系统(Filesystem in Userspace)
Fuse优缺点:
优点:1.传统文件系统都是定义在操作系统内核层面上的,要操作系统识别一种新的文件系统,必需重写内核,而内核态代码难以调试,生产率较低;但是用户空间编程和调试难度较小,有更多的语言可以选择(目前FUSE已经绑定了很多语言,比如c++、java等),还可以复用已有的库),从而能够大幅提高生产率,极大地简少了为操作系统提供新的文件系统的工作量。
2.一些服务可以通过统一的文件系统接口来进行访问,比如说ftp、sftp、samba
3.可以把非文件的服务当做文件来实现,比如把gmail提供的巨大的空间用来进行文件存储的Gmail Filesystem
缺点:在用户态实现文件系统必然会引入额外的内核态/用户态切换带来的开销,对性能会产生一定影响。

具体了解可以参考:https://www.wwwbuild.net/androidperf/17565.html
这篇文章详细讲了 FUSE的问题等
我总结了一下,主要有:
I/O Overhead (由于文件位于由sdcard守护程序管理的外部存储上,因此需要执行许多其他操作。这些操作让FUSE造成了巨大的开销)
Double Caching (由于实现FUSE的方式,Android可以存储所需缓存的两倍)
Incomplete Implementation of FAT32 (由于使用FUSE模拟FAT32而引起不正确的时间戳记)

从安卓10开始强制加密的要求扩展到所有安卓设备(电视,盒子,车机等等)。
注意:升级到安卓6或安卓10的设备不是强制要求加密的,2016年发布的手机基本上出厂预装安卓6,2021年发布的电视和盒子基本上出厂预装安卓10,中国大陆除外
国内仍有有一大堆厂商还在用安卓9,基本上不会按照Android CDD(安卓兼容性定义文档,是谷歌的安卓开发规范文档,想要搭载GMS必须遵守CDD里的所有要求)的要求来开发,
由于没有谷歌的监管,安全性(安全补丁几乎不更新)和安卓底层(几乎不更新)都很差,目前国内在售电视设备貌似只有索尼会遵守Android CDD.
反观手机的情况,除了杂牌手机,基本上都会遵守Android CDD。

下图是Android CDD,点击照片可以直接去来源.

Android CDD

遵守Android CDD且出厂时为强制加密的机型都会利用TEE(可信执行环境,利用硬件虚拟化技术隔离安全世界(TEE OS)与普通世界(安卓系统),可以简单地理解为运行在最底层的虚拟机)来保护相关密钥,确保只有本机的SoC才能解密(在SoC生产时利用自身的硬件真随机数发生器TRNG,探测电子布朗运动产生的热噪声来生成随机数,然后将随机数作为密钥烧写入SoC内部的电子熔丝,烧写完毕后不可更改,只有SoC内部的硬件加密引擎才能访问,外部无法获取,这个密钥被称为HUK,数据加密相关的密钥会被HUK的派生密钥所加密保护,不直接用HUK加密是为了防止HUK被逆推,也保证了相关密钥只有本机SoC才能解密。除了数据加密,HUK还会被用于保护指纹支付证书,DRM证书等,可以用于证明设备的真实性)。

TEE框架图

加密方式有两大类,第一类是FDE加密方式(预装安卓7到安卓9的低端机使用较多), 第二类是FBE加密方式(预装安卓7及以上的高端机使用较多,预装安卓10及以上的所有机型必须使用FBE加密方式)。其中FDE加密方式默认不将锁屏密码与相关密钥关联,这意味着手机在重启后无需提供锁屏密码即可解密所有数据,安全性完全依靠锁屏UI和验证启动,一旦出现可利用的安全漏洞就会导致隐私数据泄露,不安全。开启安全启动即可将锁屏密码与相关密钥关联,手机重启后必须提供锁屏密码才能解密,不提供密码无法正常开机,安全性高。不过大部分国产机隐藏了安全启动的开关,需要用adb locksettings指令设置锁屏密码才能打开安全启动,然而这个指令只支持安卓8及以上,这意味着一些老机型只能用不安全的加密方式。FBE加密方式必须将锁屏密码与相关密钥关联,但是位于DE部分的数据除外,DE部分的安全性完全依靠锁屏UI和验证启动(也就是说解锁BL后DE部分的数据不再保密,因为DE部分的数据虽然是加密的,但是允许任何刷入的rec,系统等解密访问),DE部分包含部分系统设置,WIFI密码,查找手机凭据,部分应用的数据(如闹钟,输入法,无障碍等)等,除此之外的大部分数据仍然需要提供锁屏密码才能解密。无论是哪种加密方式,谷歌都要求在更改密码后原密码失效,恢复出厂设置后数据永久销毁,限制锁屏密码的输入次数和速率,这是通过RPMB(集成到手机硬盘里,一个硬盘只能配置一次,配置完毕后与本机SoC永久绑定)或独立安全芯片(部分三星手机和pixel手机有搭载,专业术语称为StrongBox Keymaster)实现的,原理是SoC与其通信有双向验证机制,每次通信都生成随机数相互验证,写入操作还会增加写入次数(写入次数只能增加不可清零或减少),这些安全机制可确保攻击者无法伪造数据欺骗SoC(攻击者无法凭空生成数据欺骗SoC也无法将数据写入RPMB或安全芯片),无法重放之前的通信(比如说当前密码错误次数的消息被截取后,攻击者无法重播这个消息来实现无限制地暴力破解密码;在更改密码或恢复出厂设置后攻击者无法用事先从硬盘备份的数据欺骗SoC,来达到原密码失效和数据永久销毁的目的)。

RPMB

Google Titan M芯片,StrongBox Keymaster背后的硬件

顺便一提,iPhone同样是有数据加密的,保护数据的方式类似安卓手机,TEE被苹果称之为Secure Enclave。在A7到A11的机器上用的是防回滚EEPROM(俗称逻辑码片),作用类似RPMB,只不过不和硬盘集成,是一个独立的组件;A12开始用的是苹果自研的安全存储芯片,类似于安卓的StrongBox Keymaster,都是独立的安全芯片
总结,大部分出厂时开启了强制加密的手机无需担心恢复出厂设置后数据被恢复,有安全硬件作为保障。FDE加密的机型不开启安全启动无法保障数据安全,开启了安全启动后处于正常开机状态时密码前10次每5次输错等待30秒,10次后每次输错等待30秒,重启后未输入正确密码前输错30次密码自动永久销毁数据。FBE加密的机型前10次每5次输错等待30秒,10次到150次每次输错等待30秒,150次后每次输错至少等待24小时(以上限制改时间无法绕过,因为只有设备开机通电时才会计时,一旦关机或重启会重新计时)。建议设置复杂密码并且不要和网络帐户的密码相同,也不要泄露给他人,这样可以最大程度保护隐私数据。

以上就是我关于手机数据安全及技术的部分理解,如有不对,欢迎指正.