fad*_*bee 3 encryption ext4 ecryptfs
我正在使用 ext4 加密。 https://wiki.archlinux.org/index.php/Ext4#Using_file-based_encryption
在解密目录之前,我可以在其中看到许多加密的文件名。
我想复制加密的文件,以便我可以在不同的机器上解密它们。
我可以用 ecryptfs 做到这一点。我如何使用 ext4 加密来做到这一点。
您可以看到加密和填充的文件名,但您应该无法读取文件内容。因此,尝试复制未加密的文件将导致错误,例如:
cp: cannot open 'vault/YgI8PdDi8wY33ksRNQJSvB' for reading: Required key not available
Run Code Online (Sandbox Code Playgroud)
所以你几乎不应该这样做。实际的答案是解密它,然后复制它。如果您选择加密位置作为目标目录,则副本将被重新加密。通过 rsync/ssh 网络传输也将被加密。所以大多数事情都有效,只是将其存储在云中可能是不可能的。文件系统特定的加密在文件系统之外不起作用。
绕过读取障碍是不够的:与所有元数据都是常规文件的 ecryptfs 不同,ext4 加密涉及隐藏在文件系统本身中的元数据,对您不可见,因此您无法轻松复制它。
我发现的最接近的是e4crypt get_policy
,e4crypt set_policy
它允许您使用现有密钥加密目录,而无需知道明文中的实际密钥。但它只适用于空目录,不适用于文件。
您还可以加密 Vault 目录,用文件填充它,然后将这些文件硬链接到根目录,然后删除 Vault 目录。您最终会在根目录(您不应该对其进行加密)中获得加密文件(内容)。文件系统只知道文件已加密。(不建议实际执行此操作。)
如果您无论如何都必须制作副本,我想您可以通过迂回的方式进行:
否则,我想您需要一个专门的工具,该工具知道如何将加密目录 + 元数据从一个 ext4 文件系统复制到另一个文件系统,但我没有看到使用e4crypt
or这样做的方法debugfs
。
debugfs
特别是似乎没有与策略/加密相关的功能,除了ls -r
它以完整的方式显示加密的文件名,因为\x1e\x5c\x8d\xe2\xb7\xb5\xa0N\xee\xfa\xde\xa66\x8axY
这意味着 ASCII 表示常规ls
节目以某种方式编码以可打印。
实际文件名 [填充并实际存储在文件系统中] 16 个随机字节,但常规将其ls
显示为 22 个 ASCII 字符。当您确实需要将其存储为随机字节时,以传统方式复制此类文件将创建一个存储为其 ASCII 字符表示形式的文件。所以这肯定会在这么多层中失败。
tl;dr如果有办法做到这一点,那么我不知道:-}
归档时间: |
|
查看次数: |
543 次 |
最近记录: |