有没有办法加密驱动器,使攻击者无法知道驱动器上有多少数据?
它还需要能够容纳多个独立的文件系统,这样你就可以安全地共享一个密钥而不泄露其他数据。而且攻击者不应该知道有多少个加密文件系统。
在 Linux 上可以实现这个吗?
答案1
您有多种选择,最简单的方法是使用未加密的文件系统并在其中存储加密的映像文件,这些文件可以与块设备一起使用。cryptoloop
这样,您只需使用dd
和即可添加或删除加密卷losetup
。rm
当然,您也可以使用LUKS
和朋友,但这有点高级。加密循环设备可以容纳任何文件系统,AES 加密的属性使其成为默认设置,即每个文件系统中的数据量在没有密钥的情况下无法读取,只要您确保不使用稀疏文件(即使这样,攻击也非常理论化)。
编辑
只是为了绝对清楚地说明这一点:每个映像文件的大小是恒定的(就像物理分区的大小一样)。它以与分区大小相同的方式预先确定。
要隐藏文件系统的数量,您有两种选择:
- 创建一个加密的图像文件,并将其他图像文件写入其中(再次加密或纯文本,根据您的需要)
- 用虚拟图像文件填充剩余空间——没有人能分辨出哪些文件包含有效数据,哪些文件不包含