我的理解是,基于闪存的设备(例如 SSD)被过度配置,并且不会宣传操作系统可用的额外存储块。过度配置的存储块是为了通过磨损均衡来支持数据的有效分布。
假设我的理解是正确的,如果操作系统没有公布或访问额外的存储块,全盘加密如何满足过度配置的存储?
如果数据的分发仅限于驱动器的控制器,是否存在数据从加密块流向未加密块的风险,例如过度配置的存储?
我的理解是,基于闪存的设备(例如 SSD)被过度配置,并且不会宣传操作系统可用的额外存储块。过度配置的存储块是为了通过磨损均衡来支持数据的有效分布。
假设我的理解是正确的,如果操作系统没有公布或访问额外的存储块,全盘加密如何满足过度配置的存储?
如果数据的分发仅限于驱动器的控制器,是否存在数据从加密块流向未加密块的风险,例如过度配置的存储?
如果您从一开始就加密磁盘,当您第一次开始使用它时,这不是问题。您写入的所有数据都已加密,重新映射的扇区只会导致加密数据保留在过度配置区域上。由于数据是加密的,因此即使您使用反汇编 SSD 上的直接闪存读取来恢复它,您也无法对其进行任何操作。
此外,识别加密流中数据的来源特别困难,而且由于大多数 FDE 块密码模式(例如 XTS)包括扇区号(或其他一些位置值)作为初始化向量的一部分,因此恢复变得非常困难即使您拥有 FDE 主密钥,也可以从这些剩余扇区中获取明文。
最重要的是,大多数 SSD 都实现了 ATA 安全擦除功能。此功能允许您发送单个命令来安全擦除磁盘,而无需覆盖每个扇区。由于闪存单元的写入周期有限,重写扇区的成本很高。此功能通过使用存储在磁盘控制器的非易失性存储器中的随机生成的密钥透明地加密所有扇区来工作。当您运行 ATA Secure Erase 命令时,磁盘控制器会丢弃旧密钥并生成一个新密钥。这会立即使磁盘上的所有数据不可读。作为副作用,所有过度配置的区域也以这种方式加密,这意味着即使没有在 SSD 上使用您自己的 FDE,即使您从控制器的非易失性存储器中提取安全擦除主密钥,过度配置的区域仍然被加密并且难以恢复。如果您稍后执行安全擦除命令,过度配置的区域也会变得不可读。
FDE 不需要了解有关过度配置的任何信息。如果分区是加密的,那么任何地方都不会写入纯文本。为磨损均衡保留的块将具有未初始化的随机数据或加密块。
如果您使用控制器提供的加密,则加密/解密发生在控制器内部,因此不会在块上写入纯文本数据。如果由操作系统完成加密,则控制器已经接收到加密数据。