过去,出于安全目的,我曾考虑加密我的台式机和笔记本电脑的硬盘。
然而,我从各种渠道听说,物理媒体中单个块的故障会导致解密无法进行。
这是真的吗?有没有办法缓解这个问题?
答案1
和几乎所有事情一样,这取决于哪个块。如果是块 0,则无论是否加密,您的磁盘都无法读取。如果该块包含实际加密密钥或其中的一部分,则密钥很可能与您的数据一起丢失。
一般来说,对于现代的全盘加密,每个块都是独立加密的,以避免出现此问题。密码实际上并不重要,但密码的使用方式才是导致此行为的原因。请查看此 Wikipedia 页面以获得更详细的解释:http://en.wikipedia.org/wiki/XTS_mode。
答案2
这取决于加密工具/方案。
一个因素是工具如何对磁盘上的数据进行分组。一个极端是,你有一个程序将整个驱动器视为一个项目,并使用一个密钥将其全部加密或解密,这是一个操作;在这种情况下,你可能会失去一切。另一个极端是,你可能有一个工具每次加密一个文件,在这种情况下,你最多会丢失一个文件。
另一个因素是实际使用的加密密码。如果您使用的系统为每个数据块生成一个变化的值,该值用作下一个数据块 [文件的一部分或磁盘块的一部分或磁盘映像的一部分等] 加密的输入之一,您最终可能会丢失正在操作的整个项目(无论是文件还是整个磁盘映像)。如果您使用的系统对每个数据块独立操作,您可能会丢失特定文件的一小部分甚至更少。
通常我建议你先问问自己“出于安全目的”是什么意思。既然你说的是加密,那么你可能并不关心防篡改,而是关心在你不在场时防止好奇的人查看你的数据。
一旦您知道您所担心的威胁类型,您就应该考虑故障模式并权衡风险缓解和便利性之间的权衡。
最后,我认为你应该简单地比较一下你信任的最受欢迎的软件选项——最简单的方法是阅读常见问题解答,其中应该全部讨论故障模式和数据丢失。
GL。
答案3
我到目前为止从未使用过这样的软件,但我认为这取决于密码的操作模式。如果您使用 ECB 模式,您最多会丢失损坏的扇区。但是你不应该使用 ECB 模式如果您的数据大小大于密码的块大小。
如果你使用任何链接模式(如 OFB),则可能会丢失上述块中的某个扇区,此外所有其他块接下来。
Good block Bad sector X Propagated err
|--------------| |-------X------| |xxxxxxxxxxxxxxx| ...
也就是说,错误可能会传播到下一个加密块并污染其余数据。无论是全盘加密还是逐个文件加密,都是如此。
通过使用 CBC 模式,您只会丢失所有后续块中的相应扇区
Good block Bad sector X Propagated err
|--------------| |-------X------| |-------o------| ...
^
due to previous bad block
不过,事情并非全是坏消息。我认为值得信赖的磁盘加密软件有应对此类情况的对策,比如在某处保存 CRC32 校验和。请查看软件的 wiki(或论坛或客户服务,如果你使用非免费软件)以了解他们如何处理此类情况。
更新: 来自TrueCrypt 文档:
某些存储设备(例如硬盘)会在内部重新分配/重新映射坏扇区。每当设备检测到无法写入数据的扇区时,它就会将该扇区标记为坏扇区并将其重新映射到驱动器上隐藏的保留区域中的扇区。任何来自/到坏扇区的后续读/写操作都会重定向到保留区域中的扇区。[...]
这表明你的文件系统已经处理了这些事情。
但让我们假设它不是。克罗嫩山口指出,大多数磁盘加密(至少是流行的)都使用 XTS 模式,这是密文窃取。该模式用 ASCII 表示有点复杂,链接的 Wikipedia 页面对该过程进行了很好的描述。
接下来是总结:错误传播(在没有纠正措施的情况下)取决于软件是否将纯文本视为单个块,还是将它们链接在一起。