首先,如果我把这个问题发到错误的社区,请原谅我。如果我错了,可以自由地将这个帖子迁移到正确的社区。
我对整个磁盘加密(但不是加密)非常陌生,尤其是使用dm-crypt。我目前正在运行Arch,并且已经阅读了专门用于那个GNU/Linux发行版的文档。如果我在以下总结中所做的假设是错误的,请纠正我:我想从坚实的基础上开始我的知识。;-)
那里、wiki编写者/维护人员建议我们首先准备磁盘。即:删除/删除所有以前的内容。之所以需要这样做,有两个原因:
我理解了第二点:因为加密只加密我们编写的新数据块,我们需要安全地删除以前的数据,以避免向可能的攻击者显示加密容器的限制。如果我们用零来代替,攻击者就会意识到并思考"hé,瞧!我们在这里看到了垃圾,在那里,到处都是零,我知道该把我的注意力放在哪里去破解这些数据“。
同样的Arch文档也解释了CBC (密码块链接)加密模式。根据我所理解的,这种方法使用物理扇区,并将它们除以算法使用的块大小大小。例如,如果我们以使用128位加密大小块的AES为例,并且我们有一个大小为512八进制的物理扇区(不包括高级格式),那么确定块数目的计算将是512 *8位= 4096 / 128 =32个块。该扇区的一个块用于IV (初始化向量)。如果CBC与dmcrypt一起使用,这意味着相同的未加密内容将在磁盘上的两个不同位置出现不同的加密。这样,当我们准备磁盘进行加密时,我们可以首先创建一个加密的容器并将其填充为零,从而删除磁盘内容。如果使用CBC,则零将以不同的方式出现在每个位置的磁盘上。如果不使用CBC,那么我们确实需要使用urandom。
在IRC上的一些问题之后,似乎这是在dm-crypt默认情况下使用的XTS。根据我的理解,XTS只是CBC的一个变体,允许物理扇区大小除以所使用算法的块大小,而不管其大小如何(例如:如果512扇区块不能被AES算法的128位整除,XTS将允许这样做)。
编辑: xts实际上不是默认的,这取决于dmcrypt是如何在GNu/Linux发行版中编译的。要查看正在使用的算法和键大小,只需键入
$ cryptsetup --help
[...]
Default compiled-in device cipher parameters:
loop-AES: aes, Key 256 bits
plain: aes-cbc-essiv:sha256, Key: 256 bits, Password hashing: ripemd160
LUKS1: aes-xts-plain64, Key: 256 bits, LUKS header hashing: sha256, RNG: /dev/urandom因此,在修正Arch之前,我想确定dm-crypt后面实际使用的是什么: CBC还是其他加密方法?因为这里建议不要在dm-crypt中使用零,但是这个原因是错误的,因为在两个不同的磁盘位置上,非加密的数据看起来是不同的。如果没有使用CBC或变体,我需要纠正wiki页面上描述的“安全擦除磁盘”的假设。
此外,官方dmcrypt FAQ维护人员在第2.19点中描述阿诺瓦格纳( Arno Wagner )表示,直接在磁盘上使用零可能需要很长时间,而且“使用带有随机密钥的密码设置和普通dm-crypt设备,速度要快得多,并为您提供了相同级别的安全性。”
然后,他添加了以下命令来输入:cryptsetup open --type plain -d /dev/urandom /dev/<block-device> to_be_wiped,但他仍然使用的是urandom,而不是零。我不明白他为什么不使用零,为什么在容器中使用urandom比直接在磁盘上使用容器外的要快得多。
编辑:好的,Argo在他的FAQ中增加了一个精度。-d /dev/urandom只是用作加密的随机密码。
另外,由于我需要使用3种设备在3台不同的机器上安装加密:全新的SSD、已经使用的SSD和标准的HDD。由于SSD使用闪存,我不知道如何准备磁盘。这个问题仍然存在于新的SSD中,我是否需要先用随机值来擦除它?那么TRIM呢,Linux是否足够聪明,能够发现他不需要使用TRIM,因为这削弱了加密功能?
我们非常感谢你的帮助。
发布于 2015-09-14 06:29:25
如果加密algoritm足够强,使用新的原始SSD不应引起任何安全问题,因为您在容器中删除的任何文件仍将在磁盘上加密,因此即使部分文件在未使用或不可用的闪存单元中徘徊,这些部分仍然是加密的。然而,一个危险是,如果您决定更改解密密钥或密码。这可能会导致磁盘上的某些或所有数据仍然可以用旧的、可能已泄露的密钥/密码解密。
当然,任何密钥/密码更改都应该安全地备份数据,然后在驱动器(而不是容器)上保护擦除。然后使用新密码在驱动器上创建一个新容器,将备份的数据移回。然后对用于备份的媒体进行安全擦除。完成后,密码更改将完成。
当谈到使用的驱动器,无论它的SSD或HDD,主要问题是:做,或做,他们包含任何敏感的信息,从以前的使用。如果答案为“否”,则只需编写一次传递的零以“清空”磁盘,然后安装容器即可。请注意,大多数容器软件仍将对容器中的空闲空间进行加密,因此从外部视图来看,即使在容器中未使用的部分中,容器仍然会显示随机数据。
然而,如果驱动器之前确实包含敏感信息,您需要“准备”它们。SSD是如此构造,以至于你不能真正地从外部擦除它们。为此目的,许多较新的SSD都有一个名为“安全擦除”的内部ATA命令,该命令通常通过擦除用于内置硬件加密的加密密钥来执行擦除。这将使任何旧内容都无法访问。如果驱动器报告“安全擦除”命令不可用或不受支持,则唯一安全处理数据的方法是将驱动器发送到数据处理设施,或自行销毁驱动器。
但是,HDD可以安全地擦除。我推荐软件DBAN中的"DoD Short“方法(Dariks Boot和Nuke),它将编写2次伪随机数据传递,并向磁盘传递1次零(为进一步使用准备磁盘)。它还将验证一切都是零,以确保磁盘不存在太致命的错误。在这种情况下,DBAN会引发一个错误,在这种错误情况下,唯一的方法是将物理HDD发送到一个处理工具,或者自己对驱动器进行破坏。
DoD简称为“个人私密数据”。可以使用高度专业化的磁显微镜在实验室中恢复驱动器,它可以读取所述磁性单元的磁“磨损”的细微差别,从而找出“1”(1)和“0”(0)被写入该单元的次数,然后结合已知的文件格式和数据格式,使用公式、计算和性能来恢复部分或全部数据。请注意,部分数据也可能会分散注意力,想象一下恢复128位密钥的100位。最后28位很容易被破解。
但是:这样的复苏工作花费了十多万美元。这就是为什么DoD对个人隐私数据和“非机密数据”有好处的原因。因为没有人会花十大把钱去用几块钱或者十块钱来进入你的银行账户。风险太高,赢的太少。
然而,如果数据非常敏感,让我们说你为军队工作。然后,一些政府可能会想花十块钱来收回你的信息。然后,您应该使用更长的擦除方案,如DoD标准(7 pass),这将擦除更接近不可检索的数据。
https://security.stackexchange.com/questions/97603
复制相似问题