基于文件的加密是否提供与 Android 上的全盘加密相当的安全性?
全盘加密(FDE) 系统(如 Truecrypt、BitLocker 和 FileVault)在磁盘扇区级别加密磁盘。这是一种全有或全无的方法,因为加密驱动程序不一定知道这些扇区代表什么文件。同时,FDE 很受欢迎——主要是因为它非常容易实现。虽然这对于个人电脑来说可能非常好,但对于手机来说,可能需要另一种方法,我将在下面解释。
基于文件的加密(FBE) 系统(如 EncFS 和 eCryptFS)对单个文件进行加密。这种方法需要对文件系统本身进行更改,但具有允许细粒度访问控制的好处,其中单个文件使用不同的密钥进行加密。
智能手机的主要问题是从不鼓励用户关闭他们的设备。实际上,这意味着——在你启动后输入一次密码后——普通用户会花一整天的时间将他们所有的加密密钥存储在 RAM 中。由于手机电池可以使用一天或更长时间(与笔记本电脑相比更长),因此加密并不能真正保护您免受在此期间接触您手机的攻击者的侵害。
当然,用户确实会锁定他们的智能手机。原则上,一个聪明的实现可以在设备锁定时从 RAM 中删除敏感的加密密钥,然后在用户下次登录时重新派生它们。不幸的是,Android 没有这样做——原因很简单,Android 用户想要他们的电话才能真正工作。如果 RAM 中没有加密密钥,FDE 系统将无法访问存储驱动器上的所有内容。在实践中,这会将其变成一块砖。
出于这个非常好的原因,一旦您启动 Android FDE 手机,它就永远不会从 RAM 中删除其加密密钥。而这显然不好。
从 iOS 4 开始,Apple 包含了一项“数据保护”功能,用于加密存储在设备上的所有数据。但与 Android 不同的是,Apple 不使用全盘加密范式。相反,他们采用基于文件的加密方法,单独加密设备上的每个文件。
在 Apple 系统中,每个文件的内容都使用唯一的每个文件密钥进行加密(元数据单独加密)。文件密钥依次使用从用户密码和处理器中嵌入的一些硬件机密派生的几个“类密钥”之一进行加密。
为了确保有关密钥的安全,已经实施了一些安全特殊措施。如果使用高安全保护等级,使用该等级密钥加密的文件只有在设备上电和解锁时才能访问。为确保这一点,在设备锁定几秒钟后,类密钥将从 RAM 中逐出。这是可取的。在中等安全选项的情况下,加密文件受到保护,直到用户首次登录(重新启动后),并且密钥保留在内存中。在低安全性下,即使设备已重新启动且用户尚未登录,也可以访问文件。
总而言之,对于手机来说,有一个相对安全的 FBE 选项,由用户实际使用。
在这里阅读更多关于它的信息。
是的,基于文件的加密提供了良好的安全性,而且它也有一些优点和缺点。但让我们从头开始。这两种方法的主要区别是什么?
基于文件的加密
在基于文件的加密中,仅文件使用不同的密钥进行加密。所以说每个文件都有自己的“密码”。在这种类型的加密中有两种类型的存储:
- 凭据加密存储:仅当用户输入其凭据时才可用
- 设备加密存储:启动前后均可用。那就是您提到的保存警报和类似内容的空间。这可以通过直接引导访问。
这两种存储类型提供了一些好处:
- 无需分配存储空间
- 如果您更改一个文件,则会对存储进行细微更改(因此您无需更改整个容器只需更改一个文件)
- 细粒度的访问权限是可能的
但也有一些缺点:
- 元数据未完全加密
- 数据取决于使用的文件系统
全盘加密
在这种类型的加密中,您加密了整个空间。因此,您只需使用正确的钥匙即可解锁。但这也有一些我需要提到的优点:
- 元数据完全加密
- 此容器中的内容可以是随机的,不需要适合使用的文件系统
- 集成到操作系统中可能会为您带来一些性能优势
- 您无法“忘记”文件。如果它在这个容器内,它是加密的
但在这种加密中,你也有一些缺点:
- 在启动之前您不能使用任何程序(例如警报或一些类似的东西)(仅当它在加密位置内时)
- 如果您更改一个文件,您将更改整个容器
- 您需要分配整个空间
概括
如您所见,两种类型的加密都有一些优点和缺点。我想说基于文件的加密的最佳改进是您能够使用不同的密钥加密每个文件。因此,有些可以保持加密状态,而另一些则可以解密并使用。这将有利于可用性和安全性。我能看到的最大缺点是元数据没有完全加密。这可能是安全问题,因为某些元数据提供了有关文件的大量信息。
注意:在 Android 9 中,他们还引入了元数据加密来消除这个缺点。所以在这个版本之后,我真的看不到任何关于安全性的缺点了。
最后,您需要自己考虑并通过这种加密的论点。