如何在 BtrFS 之上的每个文件的加密之上分层压缩?

如何在 BtrFS 之上的每个文件的加密之上分层压缩?

BtrFS 应该确实支持这个,但事实并非如此。因此 ECryptFS 看起来将填补这一空白。唯一的问题是,我如何在此之上分层压缩?

在加密之上进行压缩的原因:

  • 有意地,相反的过程(压缩之上的加密)不会压缩,因为理想情况下,加密试图使密文与随机数据无法区分;
  • 更密集的信息加密更安全。

我正在寻找一种文件系统级解决方案,以便可以在临时基础上使用不同的密钥(例如用户/组)对文件进行加密(即可以更改而无需像块级那样进行重大重新配置)加密)。

答案1

看来剩下的唯一方法就是在加密文件系统之上堆叠压缩文件系统。这里有一些选择,但我没有实践经验:

我怀疑您是否可以选择每个文件的压缩或加密。 Btrfs 应该能够提供这一点,但现实可能与此相去甚远。就像5年前应该有RAID一样。

答案2

您必须将压缩文件系统的输入嵌入(主要在超级块私有信息字段中)某些数据库文件中,该数据库文件在压缩文件系统安装在 encryptfs 之上时执行(使用 -o 选项进行安装时参数传递)。它将是可堆叠文件系统,根据文件系统方法中的一些预定义机制,作用于传入的文件读/写请求。

假设某些文件要使用某种算法进行压缩,这必须通过您将在 compressfs/main.c 和 file.c 等中编写的读/写方法来计算。编写实现 ioctl 的用户级代码来更新此压缩的功能文件系统,例如通过写入在安装期间移植的数据库来支持添加/删除/列出算法。

相关内容