个人使用 Android 设备随时随地访问和存储个人隐私信息。如果设备被盗或丢失,这会增加信息泄露的风险。保护设备上的用户信息的安全措施之一是加密磁盘。如果设备丢失或被盗,加密可将数据泄露的风险降至最低。
截止 Android 13,Google 先后推出了 Android 用户数据加密方案:
- FDE(Full disk encryption):Android 5.0 到 Android 9
- FBE(File-based encryption):Android 7.0 及更高版本支持
- ME(Metadata Encryption):Android 9?及更高版本支持
加密是使用对称加密密钥对 Android 设备上的所有用户数据进行编码的过程。设备经过加密后:
- 所有由用户创建的数据在存入磁盘之前都会自动加密
- 所有读取操作都会在将数据返回给调用进程之前自动解密数据。
- 加密可确保未经授权方在尝试访问相应数据时无法进行读取或者读不到正确的数据。
这些技术主要解决的是设备被盗,丢失或者送修等机器不在用户手中的情况下,依然保护用户的隐私数据不被窃取。但是对于用户正常使用过程中,黑客通过提权等手段窃取数据的行为,这些技术基本无能为力。
这里简单介绍这?3 种加密方案要解决的问题和存在的问题:
1. FDE(全盘加密)
全盘加密是使用单个密钥(由用户的设备密码加以保护)来保护设备的整个用户数据分区。在启动时,用户必须先提供其凭据,然后才能访问磁盘的任何部分。
虽然这种加密方式非常有利于确保安全性,但这也意味着当重新启动设备时,用户无法立即使用手机的大多数核心功能。在用户提供凭据前(即开机过程中,在显示锁屏界面之前,系统会提供单独的输入界面给用户输入密码),系统无法访问用户的数据,所以闹钟等功能将无法运行,无障碍服务将无法使用,并且手机也无法接听电话。
注意:搭载 Android 10 及更高版本的新设备上不允许使用全盘加密。请在新设备上使用文件级加密。
2. FBE(文件级加密)
FBE 可以使用不同的密钥对不同的文件进行加密,也可以对加密文件单独解密。支持文件级加密的设备还可以支持直接启动。该功能处于启用状态时,已加密设备在启动后将直接进入锁定屏幕,从而可让用户快速使用重要的设备功能,例如无障碍服务和闹钟。
引入文件级加密和可以将应用设为加密感知型应用的 API 后,应用可以在受限环境中运行。这意味着,应用可以在用户提供凭据之前运行,同时系统仍能保护私密用户信息。
说白了就是对用户的数据进行安全分级。低安全等级的数据在机器启动后即可访问,而高安全等级的数据需要等用户输入密码验证后才可访问(此处不仅仅是对数据读写行为的限制,而是加解密数据的密钥需要用户的密码校验通过后才可用)。
3. ME(元数据加密)
采用元数据加密时,启动时即可用的单个密钥会加密未通过 FBE 进行加密的任何内容(例如目录布局、文件大小、权限和创建/修改时间)。该密钥受到 Keymaster 的保护,而 Keymaster 受到启动时验证功能的保护。
后续章节将分别详细介绍这三种加密技术的实现。
4. 参考
https://source.android.com/docs/security/features/encryption
|