V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
liyafe1997
V2EX  ›  Android

Android data 分区备份及加密问题

  •  
  •   liyafe1997 · 344 天前 · 7394 次点击
    这是一个创建于 344 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    9 条回复    2024-02-22 21:04:16 +08:00
    lx0758
        1
    lx0758  
       344 天前
    TEE 就是阻止你干这种事的
    vcn8yjOogEL
        2
    vcn8yjOogEL  
       343 天前 via Android
    恢复出厂时密钥会被清空
    要备份先在机器本地解密再备份
    liyafe1997
        3
    liyafe1997  
    OP
       343 天前 via Android
    @vcn8yjOogEL
    @lx0758 关键是,我怎么知道我当前的主密钥是被 TEE 加密的?
    iminto
        4
    iminto  
       341 天前
    @liyafe1997 你不需要知道,这是标准和规范。

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

    简单的说结论就是除非你能拿到 SOC 里面的一些 key ,否则你不可能有效的备份 rpmb 区域。甚至从 Linux kernel 那边应该碰不到这些分区。
    liyafe1997
        7
    liyafe1997  
    OP
       295 天前 via Android
    @yanqiyu 有相关的资料和链接吗?
    liyafe1997
        9
    liyafe1997  
    OP
       293 天前
    @yanqiyu 谢啦!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3116 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 04:56 · PVG 12:56 · LAX 20:56 · JFK 23:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.