我想切换到 ZFS,但仍想加密我的数据。ZFS 的本机加密已在“ ZFS 池版本号 30 ”中添加,但我在 FreeBSD 上使用版本 28 的 ZFS。我的问题是 encfs(保险丝加密)将如何影响 ZFS 的特定功能,如数据完整性和重复数据删除?
1 回答
encfs 对文件/目录名称长度的限制比 zfs 短。我不记得了,但每个对象可能少于 255 个字符。如果您碰巧有任何名称超过该限制的文件/目录,您将在复制到已安装的 encfs 资源期间收到 i/o 错误,并且不会创建有问题的文件/目录,仅此而已。
我不使用重复数据删除(不幸的是 RAM 太少),但由于 encfs 使用 ECB 模式来加密文件名,那么在加密方面自然会看到相似的文件名(文件属性也没有改变),这对于工具来说是幸运的像rsync。不幸的是,对于重复数据删除,encfs 将数据签名 (hmac) 用于初始化向量,这会使相同内容的副本完全不同。找到一种方法来阻止这种行为可能是可行的,但是数据完整性取决于它,所以我不建议这样做。
如果您需要设备级加密,请查看 cryptsetup。为此,您需要将池从迁移/dev/disk/by-id/ata-*
到/dev/disk/by-id/dm-name-*
设备。这不会禁止使用重复数据删除,只会导致轻微的性能损失。而且您必须对解密的数据进行操作以进行备份,这可能是不可取的。
目前我正在使用这两种方法(即 cryptsetup 和 encfs)。这似乎有点多余,但我发现有必要避免解密数据以进行备份以及将加密参数以纯文本形式存储在 .encfs.xml 文件中,这会打扰我偏执的安全感;)