基于是否可以判断硬盘驱动器是否已加密?,实际上是否可以在实践中隐藏一个卷?根据这个答案,TrueCrypt 是唯一没有签名的知名磁盘加密软件。即使使用 TrueCrypt,它似乎也不可能让任何人相信你恰好有一个模 512 字节的文件,对应于未知的二进制格式,具有极高的熵。并且在全盘加密的情况下,整个磁盘是否不太可能充满高度随机的数据,即使是直接来自工厂的数据?
似乎即使是 TrueCrypt 隐藏卷也可以以一种可以合理否认其存在的方式创建和使用,这似乎是有争议的。
基于是否可以判断硬盘驱动器是否已加密?,实际上是否可以在实践中隐藏一个卷?根据这个答案,TrueCrypt 是唯一没有签名的知名磁盘加密软件。即使使用 TrueCrypt,它似乎也不可能让任何人相信你恰好有一个模 512 字节的文件,对应于未知的二进制格式,具有极高的熵。并且在全盘加密的情况下,整个磁盘是否不太可能充满高度随机的数据,即使是直接来自工厂的数据?
似乎即使是 TrueCrypt 隐藏卷也可以以一种可以合理否认其存在的方式创建和使用,这似乎是有争议的。
TL;DR:不,似是而非的否认是保护数据的弱论据。基于似是而非的否认来建立隐私是不明智的。(另外,请阅读下面的第一句话)
TrueCrypt 不是唯一一种流行的磁盘加密解决方案,它可以用来加密磁盘cryptsetup
,可以使用-c
并-h
生成看起来像随机噪声的加密磁盘(假设-c
在 XTS 模式下使用了指定的密码)。
(我已将此点添加到链接的答案中作为评论)
我(几乎)没有使用 TrueCrypt 的经验,因此我从 cryptsetup 的角度来写答案。Arno Wagner 在他很棒的cryptsetup FAQ中很好地定义了一个观点:
为什么“我没有隐藏分区”比“我忘记了我的加密密钥”或“我用随机数据擦除了那个分区,里面什么都没有”更合理?我看不出任何理由。
总而言之,我们谈论的是似是而非的可否认性,它与简单的可否认性不同,因为攻击者已经知道某事可能存在,但他无法证明这一点。
想象一下,你有一个 LUKS 分区,但你真的忘记了密码。有人可能会放弃或可能对您做出讨厌的事情来强迫您提供密码。他不能证明你有钥匙,他也不能证明你没有。这取决于他对你做坏事的意图和意愿。
包含随机噪声的磁盘没有什么不同。它可以是一个加密磁盘!而攻击者对你做坏事的意愿比证明磁盘是否是加密磁盘的能力要强得多。
现在把攻击者想象成一个执法政府机构,你会发现“对你做坏事”可能只是因为对某事的“怀疑”而把你关进监狱。我住在英国,所以它需要 Arno Wagner 的另一句话:
[没有 LUKS 的加密] 对当局的价值有限。在文明国家,他们无论如何都不能强迫你放弃加密密钥。在世界上相当多的国家,他们可以强迫你交出钥匙(使用监禁或更严厉的手段来向你施压,有时没有正当程序),最坏的情况下,他们只需要对存在的模糊“怀疑”的加密数据。有时这适用于所有人,有时仅当您被怀疑拥有“非法数据”(定义可能会发生变化)时,有时特别是在跨越边界时。请注意,在美国和英国等国家,这种情况正在不同程度地发生,有时法院会限制当局实际要求的内容。
以上都是考虑到攻击者无法证明磁盘是加密磁盘,即似是而非的否认是有效的。
Bruce Schneier 在他关于 TrueCrypt 和 DFS(可否认文件系统)的论文中指出,分区周围的环境线索看起来像随机噪声,可以击败似是而非的否认。你是否相信这篇论文的论点是你的决定(我不相信),但它又让我们看到了合理的推诿是多么软弱的辩护。
参考:
我完全不同意这里提出的反对似是而非的否认的论点。
首先,似是而非的否认不仅适用于整个加密的磁盘和分区,也适用于加密的文件(具有加密的隐藏卷),例如在 TrueCrypt 中。使用加密磁盘或分区对单个文件/卷没有显着优势,例如,很容易检测到非常可疑的加密分区的存在,并且检查您的 PC 的调查人员/攻击者可以轻松确定您知道并可能使用加密工具,例如 LUKS或 TrueCrypt。因此,“我安全地擦除了该磁盘/分区,这里没有加密”的答案并不比说“TrueCrypt 文件不包含隐藏卷,因为我不需要增加的安全性。证明?看看内容,它们是机密的,但不是关键的,也不是非法的,
其次,如果您被要求输入密码并且您回答“我忘记了我的加密密钥”,您将显示为不合作的嫌疑人,而如果您提供密码,您就不能被指控,并且撒谎指控的全部负担是在调查员/攻击者身上。此外,您在一个大的加密文件或您仍然保留在计算机上的十几个加密文件上忘记密码的可信度有多少?如果你生活在一个“民主”国家,那么合理的推诿就更重要了,在那里你不能被迫提供密码:通过提供一个(无害的)密码,你就不能被指责缺乏与调查人员的合作,在相反,如果你不给它,你会显得更不可信和更可疑。
第三,有些国家,比如英国,如果你不给他一个密码,法官可以把你关在监狱里很长时间。同样,通过合理的推诿,你可以给他“无害”的密码,你不能被指控妨碍司法公正和入狱。
第四,如果您有合理的可否认性,您始终可以选择断言不存在隐藏信息并且不存在第二个密码,或者(例如,如果您是水边的)承认它们存在并给他们第二个和“真实”的密码。似是而非的推诿给了你一个你不能没有的选择。
我的坦率意见:反对似是而非的否认可能是由于长期以来许多 Linux 支持者对 TrueCrypt 所做的反对,这只是为了许可证问题,尽管出于技术原因伪装。易于使用且有效的合理否认可能是 TrueCrypt 中最好的功能,但是很多 Linux 用户在他们的发行版中没有找到 TC,习惯于使用没有它的工具进行加密(多年来 LUKS 没有合理的否认支持)并习惯于说“合理的否认是毫无价值或有害的”。这是一个仍在继续的“酸葡萄”案例。而且我发现 cryptsetup\LUKS 开发人员在常见的关于合理否认的陈词滥调之后拒绝在常见问题解答中提供任何信息,这真的令人不安,关于在该工具中实施似是而非的否认。这里严重缺乏专业精神。
我的强烈建议: 使用 PLAUSIBLE DENIABILITY(尤其是隐藏卷),最好使用 TrueCrypt 7.1a 等经过验证的工具(仔细查看它的继任者,如 VeraCrypt 或 Ciphershed,但在经过合理审计之前不要使用它们!)。
使用 TrueCrypt,您可以分配一个文件来保存加密的磁盘映像。但是该磁盘映像不必完全填充文件。TrueCrypt 将所有实际分配的加密扇区保存在文件的前面,这意味着分区末尾的扇区只是随机字节,不包含任何内容。除非您可以解密分区,否则您不知道文件中有多少扇区分配给了该分区,以及有多少只是填充了随机数据。
TrueCrypt 支持在那些未分配的扇区中写入另一个加密分区。如果需要,您可以在那里创建另一个。
假设您为 TrueCrypt 文件分配了 10 MB。如果你只在分区中保留 7MB 的数据,你还有 3MB 的随机扇区。您可以在其中合理地创建一个 2MB 的分区,也可以不创建。如果您确实创建了第二个分区,您可以否认它存在。没有钥匙,没有人可以证明它的存在。
我建议您查看RubberhoseFS。这是一个已停产的项目,但具有一些非常酷的技术,可以说“我只有 2 个数据分区,这里是密码”,没有人能够证明实际上存在第三个或第四个。
它的工作原理大致如下:
我已经为我自己的项目编写了一个规范,我想在有时间的时候进行工作,主要基于 RubberhoseFS:https ://github.com/programagor/wrenchcrypt/blob/3ab9fa0bae2d74d65c762630ddd6026196fa15a5/README