在 SSD 上使用 blkdiscard 时,它的安全性如何?我在运行 Ubuntu 的 SSD 上尝试了 blkdiscard /dev/sda ,执行该命令后,操作系统无法重新启动,并且简单地将磁盘插入其他设备也不允许我安装磁盘,所以我思考SSD上的数据被破坏。
我知道 blkdiscard 依赖于 SSD 控制器,所以我知道它只能像控制器一样发挥作用。
我还研究了安全擦除,但不幸的是我无法使用它,因为我的设备只有一个磁盘并且位于远程位置,因此这不起作用,因为磁盘报告为冻结。我也无法使用磁盘加密,因为在重新启动时没有人可以解锁设备。
我需要一个选项来使用简单的命令/脚本远程“销毁”数据。目标是擦除数据,使具有合理 IT 技能的人员在一段时间内无法访问磁盘上的任何数据。
我可以合理地假设 blkdiscard 实际上使 SSD 上的数据无法恢复吗?
答案1
就像fstrim
,blkdiscard
只需将适当的命令(针对 [S]ATA 的 TRIM、针对 SCSI/SAS 的 UNMAP 以及针对 NVMe 的数据集管理/解除分配)发送到相关 SSD,磁盘将自行决定何时实际执行擦除。
为了保持其写入性能,SSD 希望保持“足够”的预擦除块可供写入,因为旧数据的擦除是 SSD 块生命周期中最耗时的操作。因此,这blkdiscard
只会导致块被附加到“要擦除”队列中,而不是立即真正被擦除。所以首要目的blkdiscard
是当SSD回收新用途时保持良好的磁盘性能;作为副作用,抗恢复可以不可以取得成就。
如果 SATA 磁盘声称支持“TRIM 后确定性读取零”,则表明数据在使用后blkdiscard
或类似情况后立即通过常规操作系统访问将无法恢复。您会在hdparm -I
SSD 的信息中看到这一点。不幸的是,并非所有 SSD 都做出了这一承诺。
此外,如果攻击者手中有 SSD,并且拥有电气工程领域的一些工具、特殊知识和/或技能,他们可能能够使 SSD 进入制造模式,这将阻止 SSD 处理擦除队列并允许访问原始存储,使他们能够读取尚未实际擦除的任何块的内容。
看:https://blog.elcomsoft.com/2019/01/life-after-trim-using-factory-access-mode-for-imaging-ssd-drives/
您仍然可以对专用数据分区使用磁盘加密,并将加密密钥存储在小型未加密分区上。然后,销毁脚本将首先卸载blkdiscard
密钥分区,卸载数据分区并cryptsetup close
在其上执行(或等效操作),然后通过开始用一些重复数据完全覆盖加密数据分区来创建对新擦除块的大量需求。
假设您选择的磁盘加密算法不弱,一旦带有加密密钥的块被覆盖操作擦除并回收,即使加密分区的某些部分尚未完全覆盖,您的数据也应该非常有效地不可恢复。
您可能会在这里找到销毁脚本的一些有用部分:https://security.stackexchange.com/questions/171396/ssd-erasure-verification