免责声明:我是cryptsetup-deluks
and 的作者grub-crypto-deluks
。
可拒绝加密只是解决方案的一部分。如果您被对手抓住,没有完美的解决方案可以保护您自己和您的数据。即使对手无法证明,你也很难避免对加密的怀疑。我将列出问题和解决方案。
简短的部分答案
长完整的答案
战胜酷刑

在这种情况下,酷刑也称为橡胶软管密码分析。好消息是酷刑往往效率低下。您对酷刑的抵抗力是关键,或者至少是您提供无法验证的虚假事实的能力(例如解密诱饵操作系统的密钥)。理想情况下,要停止折磨,您还应该能够证明您无法解密数据。
可否认加密并不能解决橡胶软管问题。
解决方案分为两类。有关详细信息,请参阅可以在“橡胶软管攻击”中幸存的技术。
- 您没有密钥:密钥可能被拆分,其部分由几个朋友或隐藏的服务器拥有,充当身份验证器以检查您是否处于橡胶软管的情况。
- 密钥被销毁:自毁(警报系统)或手动销毁(可咀嚼的 microSD 卡等)。更难落实到位,时间紧迫,但在折磨后更能抵抗自己。
隐藏加密标头
不要使用(未加密的)LUKS 标头,这是不可否认的。
解决方案:
- 普通加密:( 普通 dm-crypt、losetup 等)除非您有非常强的密码,否则不要使用它。它没有针对暴力攻击、彩虹表攻击的保护,并且除非您重新加密整个有效负载数据,否则无法更改密码。强化普通加密可以做的事情是使用密码来解密给定的扇区,并使用这个解密的扇区作为密钥来解密有效负载数据;但缺点是您必须记住随机选择的扇区号。推荐的用于纯加密的 Linux 工具
cryptsetup --type plain
保持不变。
- Truecrypt/Veracrypt: Truecrypt 标头是可拒绝的,尤其是在用作全盘加密时。Truecrypt 使用盐和固定数量的密码哈希迭代 ( PBKDF2 ) 来解密包含密钥的标头,因此它不容易受到彩虹表攻击,并大大减慢了蛮力攻击。然而,固定的哈希迭代次数使得它对暴力破解的进化不如 LUKS(随着计算能力的增加,密码哈希迭代的次数应该增加)。与 LUKS 相比,Truecrypt 不支持多个密钥,也不支持 GRUB(Linux 引导加载程序)。
- DeLUKS: LUKS 的可否认版本,适用于 Linux。大部分类似于 Truecrypt,但支持 GRUB 引导加载程序、cryptsetup、多个密钥和不断发展的哈希迭代次数。
隐藏加密的有效载荷
当然,您不会将数据放在名为Hey I'm encrypted.bin
. 但即使使用全盘加密,随机数据的简单存在也可能对您不利。请参阅: 在英国,您不仅会因为加密而入狱,还会因为天文噪音而入狱。
值得注意的是,无论采用何种解决方案,您的计算机上必须至少有 1 个诱饵(假)操作系统才能看起来完全可疑。
解决方案具有不同程度的可信度,没有一个是完美的。那么,你如何解释这些看似随机的数据呢?
- 手动生成的随机数据:
- 磁盘擦除:这是对完全加密驱动器的第一解释。但这是否足够?
- 噪音记录:它可能是一个包含天文噪音的文件。你最好有一个捕获设备。
- 等等。
- 默认的软件行为:
- Truecrypt/Veracrypt 隐藏卷: Truecrypt 总是用随机数据擦除新创建的加密卷有效负载。因此它会导致怀疑 Truecrypt 容器中是否存在隐藏卷,在良好的情况下无法证明这一点。
- 隐写术:这是将文件、消息、图像或视频隐藏在另一个文件、消息、图像或视频中的做法。对于系统加密来说不切实际,因此它更适合用于传输消息而不是存储消息。
- 硬件解决方案:
- 硬件加密驱动器:随机数据的存在可能是由于制造商初始擦除造成的。但是这些驱动器可能没有经过优化以用于可否认的加密方式。
- 低级数据存储:我们可以想象将数据写入到低磁级的驱动器中,接近噪声级,使数据在正常情况下显示为0。我不知道任何概念证明。
- “云”存储的数据:如果它不适合您的 RAM 大小并且需要写入本地磁盘,则不太实用。此外,如果对手可以访问加密数据,它可能会受到分组密码模式攻击。
不可否认的引导加载程序
系统加密是保护您的数据的关键。不要忘记您的 RAM 有时会写入磁盘交换,并且您的系统会保留打开文件的日志和跟踪等。因此建议使用系统加密和支持它的引导加载程序。
目前,所有主要的操作系统引导加载程序都不支持本机明文加密或可拒绝加密标头。因此,可以使用支持可拒绝加密的引导加载程序来对付您。
具有可拒绝加密支持的已知引导加载程序是:
嘿,我是一个加密系统,相信我,没有隐藏卷!
解决方案:
- 诱饵可否认加密的操作系统:您解释了引导加载程序的存在,因为还有另一个诱饵,加密的操作系统并且您只提供了打开这个诱饵操作系统的密钥
- 从 Live OS 加载 initramfs:我不知道它是否可行。这个想法是使用
cryptsetup
Live CD 中的纯模式来解密真实的操作系统然后你从 Live OS(而不是从 GRUB)加载 initramfs 来启动真实的操作系统
- 棒上的引导加载程序:具有可拒绝加密支持的引导加载程序放在 USB 棒上。我不相信这一点,但有些人认为它更安全。它假设您的 U 盘不会与您的计算机一起被扣押。
目前不存在的解决方案:
关于网络活动
Veracrypt 摘录:与隐藏卷有关的安全要求和注意事项:
只有当诱饵操作系统运行时,计算机才可以连接到网络(包括互联网)。当隐藏操作系统运行时,计算机不应连接到任何网络,包括互联网(确保它的最可靠方法之一是拔掉网线,如果有的话)。请注意,如果从远程服务器下载或上传数据,则连接的日期和时间以及其他数据通常会记录在服务器上。操作系统上还会记录各种数据(例如 Windows 自动更新数据、应用程序日志、错误日志等)。因此,如果攻击者访问了存储在服务器上的数据或拦截了您对服务器的请求(如果你向他透露了诱饵操作系统的密码),