Android data 分区备份及加密问题

127 天前
 liyafe1997

手机是红米 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 分区之外是否还有其它分区有保存我的“用户数据”(比如主密钥啥的?)。

2989 次点击
所在节点    Android
9 条回复
lx0758
127 天前
TEE 就是阻止你干这种事的
vcn8yjOogEL
127 天前
恢复出厂时密钥会被清空
要备份先在机器本地解密再备份
liyafe1997
127 天前
@vcn8yjOogEL
@lx0758 关键是,我怎么知道我当前的主密钥是被 TEE 加密的?
iminto
125 天前
@liyafe1997 你不需要知道,这是标准和规范。

除非你的加密是“假”加密。
liyafe1997
121 天前
@iminto
TEE 也是存在闪存上的,按理说,我是不是能通过备份某个分区的内容备份当前 TEE 的状态,之后还原 userdata 分区的时候连带着 TEE 一起还原回去?
甚至说,我把整个/dev/block/sda dd 镜像下来,之后 dd 回去,应该不会少什么吧?
yanqiyu
80 天前
@liyafe1997 不行,tee 的数据在闪存的特殊区域上(rpmb),这个区域实现上(通过密码学的手段)保证了绑定 SOC ,并且防篡改,重放和伪造。

简单的说结论就是除非你能拿到 SOC 里面的一些 key ,否则你不可能有效的备份 rpmb 区域。甚至从 Linux kernel 那边应该碰不到这些分区。
liyafe1997
78 天前
@yanqiyu 有相关的资料和链接吗?
yanqiyu
78 天前
liyafe1997
77 天前
@yanqiyu 谢啦!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1005334

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX