Android Crypt - xapool/xapool.github.io GitHub Wiki
- FDE,会严重拖慢系统的读写性能,大多数机型上所配备的 eMMC 闪存并没有自带的加密标准,而且手机上的 SoC 也没有专门的模块用来处理数据的加密/解密功能。比较稳妥可行的解决方案包括采用更快的闪存芯片,更快的文件系统如 F2FS,优化 SoC 的数据加密和解密性能。单纯启用FDE全盘加密其实并不足够,还需其它加密相配合,例如解锁密码、数据读取密码等。若使用了密码,又会导致手机在重启后, 之前用户设置的所有提醒,如闹钟都会因为手机并未解锁, 而没法工作。
L 时,说是强制开启,后又因为性能问题,取消掉了,厂商可选择开启。Android M 中,CDD 强制默认开启 FDE。N 开始使用 FBE。
- FBE,谷歌采用了 ext4 encryption,说性能达到了 FDE 的性能。并且避免了上面提到的缺点。所以也不支持 F2FS。
参见官方文档 Android 安全之加密
- dm-crypt,FDE 使用的正是这个,是对块设备加密,是内核态
- ext4 encryption,FBE 采用的是这个,也是内核态。之所以使用这个,是因为谷歌说 eCryptfs 不符合性能需求
- eCryptfs,是对文件和文件夹加密,是内核态
- 一般来说,对文件和文件夹加密,用户态的加密方式就可以,如 EncFS、TrueCrypt。对块设备加密,因为要涉及到 DM,所以要是内核态的,如使用 dm-crypt 的 LUKS
这个 github 中有论文,有代码。详细的描述了如何集成 eCryptfs,并在系统锁屏的时候清除 key,杀死某个应用,让其数据处于加密状态,在解锁的时候,在解密这个应用的数据。相比 FBE 的只在首次开机解锁的时候数据才是加密的。
ANDROID PRIVACY THROUGH ENCRYPTION
这个也是集成 eCryptfs,但是没有上面提到的功能。
- Pixel Security: Better, Faster, Stronger
- Pixel Security: Better, Faster, Stronger
- Keeping Android safe: Security enhancements in Nougat
- An eCryptfs-Based Solution for Securing Your Data on Android
- 基于 eCryptfs 的解决方案助您保护 Android 上的数据
- The limitations of Android N Encryption
- Android N Encryption之局限
- eCryptfs
- Ext4 encryption
- ext4 encryption key
- Encrypted keys for the eCryptfs filesystem
- Per-File-Key (PFK) driver
- Linux Kernel Encryption Support for File system.pdf
- 基于android系统的加密文件系统设计