为加强用户资料的保护,最早从Android 4.4版本开始,手机上启用了对称式加密机制(Symmetric Encryption)。加密机制一旦启用,所有的用户资料在保存在存储空间之前都会自动加密,并且所有资料都会在回到系统之前自动解密完成。加密机制确保即使未经授权的乙方试图读取资料,也只能得到无法识别的乱码内容。
Android 有两种加密机制:Full-Disk Encryption (FDE)和File-based Encryption (FBE)。
出厂预设为Android 9或更低版本的手机才能使用FDE加密。FBE从Android 7开始支持,直到 Android 10后出厂的手机必须改用FBE加密机制。Android 10-12还支持FDE加密机制,但仅限从较低Android版本升级的手机才能使用。Android 13则完全移除了对FDE 加密机制的支持。
Android 各版本加密支持表
Full Disk Encryption 说明
Android手机出厂时预设的操作系统若介于 5–9 ,皆可使用 Full-Disk Encryption,Android 10 -12 也支持FDE,但仅供由出厂预设安装Android 9以下的手机升级使用。FDE加密仅使用一个密钥(受使用者开机密码保护)来加密/解密整个手机的资料分区 (/data分区)。启动时,使用者必须输入开机密码,系统才能解开FDE的密钥进而读取用户分区的资料。
FDE 仅对/data分区加密。
解开/data 分区的 Master Key (随机数产生) 预设由「default_password」搭配 Device Unique Hardware Key 保护。
开机进入到操作系统后/data 分区为解密状态,即使屏幕锁尚未解锁。
因此可以绕过屏幕锁,并读取用户分区资料。
仅对ISP、JTAG 或 Chip-off 等传统取证方式有封堵效果。
Secure Startup
Secure Startup 为 FDE 的延伸版本,唯一的差別是保护加密/解密的 Masterkey 秘钥的方式不同。原本在 FDE 架构下保护 Masterkey 的其中一个密码为default_password,在 Secure Startup 下可改为用户自定义的屏幕锁密码。
由于该加密方式是对整个用户分区进行加密,这代表手机重新开机后,直到用户输入屏幕锁密码前,Android 系統都无法读取用户分区的任何资料,如用户设定的闹钟时间。
加密 Master Key 密码由「default_password」改为用户的屏幕锁密码。
在操作系统启动后输入正确的Passcode 解锁,才可解開开Master Key 秘钥读取用户分区的资料。
未输入密码前使用者分区资料结尾加密状态,无法读取。
仅可使用暴力破解,无法绕过屏幕锁。
File Based Encryption
Android 7.0以上的版本开始支持 File-based Encryption (FBE),启用后每个文件都启用不同的秘钥进行加密/解密。启用FBE后Android 7.0导入了另一项新功能,直接启动(Direct Boot)。Direct Boot允许加密手机尚未解锁前,存取特定的用户文件。与FDE的Secure Startup 加密手机最大的不同,Secure Startup 需待用户解锁之后才能存取用户分区资料而 Direct Boot允许 APP 开发者通过 API 自定义档案是否可在未解锁状态下被存取。
在启用FBE的手机上,会有两个储存位置来存放用户的 APP 资料:
Credential Encrypted (CE) 存储空间:预设的 APP 资料存放位置,该位置必须等用户解锁才可以被系统读取。
Device Encrypted (DE) 存储空间:用户未解锁前 ( Direct Boot 状态下) 与用户解锁后,系统都有存取权限。
结论
市面上现有的智能手机,不管是 Apple或 Android,出厂皆已使用FBE加密方式,虽然对于用户的数据保护更安全了,但对取证人员在提取过程能使用的工具则限制更多。
欢迎在碰到疑难手机无法解锁时,试用取证元宇宙的解锁服务。
如有需要,可通过后台留言联系。