EncFS 加密 Dropbox 是否安全?

信息安全 加密 文件加密 保管箱
2021-08-24 05:37:59

根据我在网上找到的一些教程,我使用 EncFS 加密了我的 Dropbox 文件夹,提倡这种方法。

但是我在这个安全审计中发现了以下关于 EncFS 安全性的关键声明:

只要对手只得到一份密文副本,EncFS 就可能是安全的。如果攻击者有机会在不同时间看到两个或多个密文快照,EncFS 是不安全的。EncFS 试图保护文件免受恶意修改,但该功能存在严重问题。

因此,只要他们只获得一份加密文件的副本就可以了,但如果他们获得更多,那可能会很危险。

好吧,当使用 Dropbox 时,他们会得到很多不同的加密文件快照(因为它们会在每次更改后同步)。

因此,EncFS 与 Dropbox 之类的云服务结合起来并不是一个安全的解决方案,对吧?

3个回答

这基本上是对截至 2020 年 2 月的答案的完全重写,并且有更多的细节。

EncFS 在大多数普通用户可能会遇到的各种情况和威胁模型下是可靠安全的,尤其是对于 Dropbox 等文档同步服务。更具体地说,当您的期望类似于“攻击者无法读取我的文件”时,它会非常有效。

但是当你开始在它之上链接更复杂的假设时,它并没有那么热。这通常发生在您要保护的目录以其他人设想的方式使用时,例如浏览器的配置文件目录、某些自动化管道的数据存储或公司中所有用户的主目录。如果您的期望更加模糊和包罗万象,例如:“攻击者都将被挫败,因为目录已加密”,那么这不是适合您的工具。

为了做出合理的选择,了解您正在做出的权衡是有帮助的。所以这就是攻击者可以做的事情,以及他们可以在什么条件下做到这一点。

元数据

EncFS 每个未加密文件只存储一个加密文件,并且具有相同的目录结构、相同的修改时间和相似的​​文件大小(和文件名大小)。所以攻击者基本上会知道关于你的文件的所有元数据。这是一种有意的安全权衡,所以如果这听起来很危险,那么 EncFS 不适合您。您可以从日期、大小和目录结构中推断出很多信息,特别是如果您正在观察一段时间(见下文)。这可能是攻击者推断某些行为所需的所有信息。如果这对您很重要,那么这是一个依靠 EncFS 来保护的不仅仅是文件内容的示例,这意味着您需要一个不同的工具。

特别值得注意的是,EncFS 支持稀疏文件,这意味着长时间(非常长)运行的零不会被加密。这些空块中的任何一个都可以在加密存储中轻松识别。这是另一个有意的安全权衡;它可以为您节省大量存储空间,但代价是您可能无法接受更多有关这些特殊类型文件的信息。

元数据历史

如果攻击者可以看到随时间的变化,那么他们可以获得更多信息。他们可以查看哪些文件更改以及更改频率、更改是否影响文件大小等等。在某些情况下,他们甚至可以大致判断文件的哪一部分被更改。

Dropbox 会存储一定数量的文件历史记录(30 天或更长时间,具体取决于您的订阅和设置),即使没有持续存在也可以实现这一点,尽管显然窗口有限。

基于历史的攻击(被动)

此外,如果攻击者可以看到对单个文件(可能数百万)的绝对大量更改,他们可能能够利用该信息在数学层面获得更多洞察力,而不仅仅是元数据。

但实际上可能不会。实际上不存在已知的攻击,而且 Dropbox 同步文件通常不会更改足够多的时间以使提议的攻击模式与相关。即使他们这样做了,Dropbox 也不只是让您将一组数百万个旧修订下载到一个文件中。

基于写的攻击

如果攻击者可以编写您将尝试解密的文件,那么现在您遇到了一些真正的问题。至少,攻击者可以选择性地删除或破坏文件。他们甚至可以通过使用元数据作为指导来猜测要破坏哪些文件。此外,他们可能只能破坏文件的某些部分

记住关于稀疏文件的一点;攻击者可以通过清零相应的密文来清零文件的大块。

此外,对您的 Dropbox 具有写入权限的攻击者可以将文件恢复到以前的版本……尽管这也是 Dropbox 的一项明确功能。哪一种提出了这样的观点,即如果您将平台功能本身视为一个严重的漏洞,那么您必须问自己 Dropbox 是否真的是您要开始寻找的东西。

这就是重点。在云同步服务之上分层客户端加密有很多好处,有点像第二层防御。但是,如果您尝试提供的保证与底层平台的功能明显背道而驰,那么您可能会尝试将方形钉钉入圆孔中。您可能能够使用精心挑选的工具生成功能性解决方案,但您的整体体验会变得更糟,因为底层服务已经过优化,可以精确地执行您不想要的操作。

交互式攻击

如果攻击者可以修改密文,然后查看明文是什么(或者它是否成功解密),那么他们可能会在解密密钥中将数百万或数十亿文件更改为零。没有已知的攻击来实际派生密钥。但如果他们做到,那么它将成为整卷的万能钥匙,这是值得提出这一事实的主要原因。攻击者可能很容易禁用其中一项保护措施(MAC 设置)。

此外,如果攻击者的代码在受害者的机器上运行,那么他们可能能够利用时间信息来深入了解密钥。同样没有实际已知的攻击,只是猜测。在这些情况下,攻击者通常处于有利位置,实际上不需要密钥。

结论

对于典型的“个人文件”用例和典型的攻击模型,EncFS 通常没问题。如果提供的保护级别可以满足普通用户的期望,即使考虑到 Dropbox 的文件修订历史。主要需要注意的是元数据,因为它是故事中最可靠的可利用部分,人们很少考虑攻击者可以从元数据中学到多少。

但是对于更严格的保护,特别是如果这涉及某种自动化或共享设置,那么您可能想要加密磁盘映像而不是这种直通系统。而且您可能也不想要 Dropbox。

正如 tylerl 和 user80945 已经说过的,在 Dropbox 中使用 EncFS 并不安全。更多信息可以在这篇文章中找到。

另一种选择是CryFS它是一个新的开源项目,没有 EncFS 的安全漏洞,并且还加密了元数据(例如文件大小和目录结构)。

免责声明:我是 CryFS 的开发人员之一。由于上述缺点,我们自己在 Dropbox 中使用 EncFS 并开发了替代方案。

如果我正确理解安全审计报告,不应该使用 encfs 来加密 Dropbox:Dropbox 会保存所有文件的多个版本,这可能会被利用来进行攻击。

任何有权访问您的 Dropbox 帐户的人都可以访问这些不同的版本。我不知道攻击者需要多少个版本,而且我也不是这方面的专家,因此我无法判断它的影响。