手机是红米 K30Pro ,Android12 ,已知启用了 FBE (文件级加密)。
根据 Google 官方文档: https://source.android.com/docs/security/features/encryption/file-based
这个第一级的“系统 DE 密钥”是不是有可能被 TEE 加密的?怎么看有没有被 TEE 加密呢?
我在 Recovery ( TWRP )里通过 dd if=/dev/block/sda 来备份所有资料,不知道在做了刷机&官方 Recovery 的“恢复出厂设置”操作后,把备份出来的 userdata 分区重新 dd 回去,我原来的整个数据能否正常运行,正常解密。如果密钥是由 TEE 加密的,会不会在比如恢复出厂设置/空 data 分区第一次引导时,重置 TEE 里的主密钥,导致我先前备份的 userdata 无法解密呢?
总之问题就是,通过 dd 来备份闪存镜像(最主要的是 userdata 分区),之后拿这手机各种折腾,比如线刷各种版本的系统,各种恢复出厂设置之类的,再刷回原先版本的系统并把 userdata 的备份 dd 回去,这备份是否安全,数据还能否正常解密?以及除了 userdata 分区之外是否还有其它分区有保存我的“用户数据”(比如主密钥啥的?)。
1
lx0758 354 天前
TEE 就是阻止你干这种事的
|
2
vcn8yjOogEL 354 天前 via Android
恢复出厂时密钥会被清空
要备份先在机器本地解密再备份 |
3
liyafe1997 OP |
4
iminto 352 天前
|
5
liyafe1997 OP @iminto
TEE 也是存在闪存上的,按理说,我是不是能通过备份某个分区的内容备份当前 TEE 的状态,之后还原 userdata 分区的时候连带着 TEE 一起还原回去? 甚至说,我把整个/dev/block/sda dd 镜像下来,之后 dd 回去,应该不会少什么吧? |
6
yanqiyu 307 天前 via Android
@liyafe1997 不行,tee 的数据在闪存的特殊区域上(rpmb),这个区域实现上(通过密码学的手段)保证了绑定 SOC ,并且防篡改,重放和伪造。
简单的说结论就是除非你能拿到 SOC 里面的一些 key ,否则你不可能有效的备份 rpmb 区域。甚至从 Linux kernel 那边应该碰不到这些分区。 |
7
liyafe1997 OP @yanqiyu 有相关的资料和链接吗?
|
8
yanqiyu 304 天前
|
9
liyafe1997 OP @yanqiyu 谢啦!
|