哈哈哈,真的是什么狗鸡儿文件格式都有,当我在去配置安卓挂载文件的时候,made,什么鬼?.fbe文件属实把我惊艳到了。
下面来学习一下。
1、Android对文件的加密-理论
加密是使用对称加密密钥对 Android 设备上的所有用户数据进行编码的过程。
设备经过加密后,所有由用户创建的数据在存入磁盘之前都会自动加密,并且所有读取操作都会在将数据返回给调用进程之前自动解密数据。加密可确保未经授权方在尝试访问相应数据时无法进行读取。
Android 有两种设备加密方法,即文件级加密和全盘加密。
1)全盘加密(FDE):
Android 5.0 到 Android 9 支持全盘加密。全盘加密是使用单个密钥(由用户的设备密码加以保护)来保护设备的整个用户数据分区。在启动时,用户必须先提供其凭据,然后才能访问磁盘的任何部分。
虽然这种加密方式非常有利于确保安全性,但这也意味着当重新启动设备时,用户无法立即使用手机的大多数核心功能。由于此单个用户凭据的保护,系统无法访问用户的数据,所以闹钟等功能将无法运行,无障碍服务将无法使用,并且手机也无法接听电话。
2)文件级加密(FBE):
Android 7.0 及更高版本支持文件级加密。采用文件级加密时,可以使用不同的密钥对不同的文件进行加密,也可以对加密文件单独解密。支持文件级加密的设备还可以支持直接启动。该功能处于启用状态时,已加密设备在启动后将直接进入锁定屏幕,从而可让用户快速使用重要的设备功能,例如无障碍服务和闹钟。
引入文件级加密和可以将应用设为加密感知型应用的 API 后,应用可以在受限环境中运行。这意味着,应用可以在用户提供凭据之前运行,同时系统仍能保护私密用户信息。
(精细化的保护)
在启用了 FBE 的设备上,每位用户均有两个可供应用使用的存储位置: 凭据加密 (CE) 存储空间,这是默认存储位置,仅在用户解锁设备后可用。 设备加密 (DE) 存储空间,该存储位置在直接启动模式下和用户解锁设备后均可使用。 这种分离能够使工作资料更加安全,因为这样一来,加密不再只基于启动密码,从而能够同时保护多位用户。
3)Android 9
Android 9 引入了对存在硬件支持的元数据加密的支持。采用元数据加密时,启动时出现的单个密钥会加密未通过 FBE 进行加密的任何内容(例如目录布局、文件大小、权限和创建/修改时间)。该密钥受到 Keymaster 的保护,而 Keymaster 受到启动时验证功能的保护。
4)更多
关于FBE加密的理论必须要看原文【Android 加密之文件加密(FBE)】
2、Android FBE加密源码分析
这三篇文章很有价值,观后的感觉有一丢丢不好的,就是这个白话文太少了。哈哈哈,少了点文字去串联三篇文章,不过这个排版和内容都有价值。