在加密之前用随机数据填充磁盘?

信息安全 加密 linux AES 随机的 卢克斯
2021-08-17 11:05:32

在加密之前用随机数据填充磁盘可能会使攻击者更难执行任何密码分析。大多数消息来源似乎表明这是因为攻击者更难确定哪些数据实际上是加密的(哪些只是随机垃圾)。

然而,这是绝对必要的吗?对于大型磁盘,用随机数据填充整个磁盘可能需要非常长的时间。如果数据可以通过任何形式的攻击被攻击和解密,那么这个额外的障碍到底值多少钱?这种预防技术实际上有用的真正关注和攻击场景是什么?

是否有任何加密数据因为所有者未能在加密之前用随机数据填充磁盘而被解密?或者这种做法只是一种过于偏执的额外措施,实际上并没有提供真正的额外安全性?

如果需要提供任何具体答案,则假设系统是 GNU/Linux,带有 LUKS、AES 256 位,在普通硬盘上具有加密数据。两个分区:一个不加密的 /boot 分区,仅用于启动,一个根分区进行加密。

攻击场景:攻击者在关机状态下获取计算机。假设没有冷启动攻击或邪恶女仆攻击是可能的。

2个回答

为什么这是必要的有几个原因。首先,正如您所说,由于无法识别密文和背景噪声之间的边界,因此难以对数据进行密码分析。这可以通过捕获卷的两个快照并识别更改的位置来解决,因此从这个意义上说,这几乎不是一个具体的安全措施。这个问题实际上给我们带来了一个更重要的问题——文件系统不会将它们的数据均匀地分布在磁盘上,并且经常会留下残留数据。

这就是背景随机性很重要的地方。如果攻击者可以识别旧的密文块,例如从数据最近更新的文件中,他现在可以访问两个版本的密文,使用相同的密钥(也可能是相同的 IV)用于两个不同的明文。这可能导致某些攻击场景变得更加可行,例如差分密码分析背景随机性使得识别潜在的密文块变得异常困难。

另一种需要后台随机数据的情况是需要可否认性时,例如 TrueCrypt 的隐藏卷功能。如果攻击者可以看到卷跨度超过 10GB,但卷在挂载时仅显示为 4GB,那么他可以判断出还有一个 6GB 的隐藏卷。通过使整个磁盘的数据完全随机化,密文与该背景数据变得无法区分,即使不是不可能,也很难识别隐藏卷。

这里有几件事值得一提。首先,这只会对全盘加密产生影响。如果文件分配表(或其他索引)未加密,攻击者检测文件边界的位置将是微不足道的。

第二个问题是对高灵敏度驱动器的静态分析。某些信息会泄漏,因为能够告诉 a) 驱动器上有多少数据和 b) 驱动器上的信息分配可能会泄露有关使用级别和/或文件大小的一些信息。

第三是多项式提到的情况,其中文件残留物会留在驱动器上,可能对差异分析有用,或者只是泄漏有关最近发生变化的信息。

实际上,这些信息是否有用,对于前两个,在大多数情况下可能不是,但差异分析是一种更实际的威胁,可能导致数据恢复。实际上,任何减少熵的东西都会使加密变得更弱,因此具有随机背景总体上更安全。