是否应该在非 SSD 驱动器上执行安全 ATA 擦除?

信息安全 删除 破坏 数据剩余
2021-09-03 21:55:28

运行命令时hdparm -I /dev/sda会生成以下输出。

ATA device, with non-removable media
        Model Number:       WDC WD10JPVX-75JC3T0                    
        Serial Number:      WX51A9324970
        Firmware Revision:  01.01A01
        Transport:          Serial, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6, SATA Rev 3.0
Standards:
        Supported: 9 8 7 6 5 
        Likely used: 9
Configuration:
        Logical         max     current
        cylinders       16383   16383
        heads           16      16
        sectors/track   63      63
        --
        CHS current addressable sectors:    16514064
        LBA    user addressable sectors:   268435455
        LBA48  user addressable sectors:  1953525168
        Logical  Sector size:                   512 bytes
        Physical Sector size:                  4096 bytes
        Logical Sector-0 offset:                  0 bytes
        device size with M = 1024*1024:      953869 MBytes
        device size with M = 1000*1000:     1000204 MBytes (1000 GB)
        cache/buffer size  = 8192 KBytes
        **Nominal Media Rotation Rate: 5400**

有趣的是描述和价值Nominal Media Rotation Rate: 5400这表明硬盘是机械的而不是闪存。

正如输出所建议的那样,支持 ATA 安全擦除,尽管我没有预料到安全擦除需要长达 198 分钟。

Security: 
        Master password revision code = 65534
                supported
        not     enabled
        not     locked
        not     frozen
        not     expired: security count
                supported: enhanced erase
        198min for SECURITY ERASE UNIT. 198min for ENHANCED SECURITY ERASE UNIT.

鉴于该设备不是固态驱动器,是否仍应执行安全 ATA 擦除?

如果不是,为什么?如果是,为什么?

shred --verbose --random-source=/dev/urandom -n1 /dev/sda是否支持相同或类似的结果,即不可恢复的数据,包括有缺陷或取消分配的扇区

1个回答

鉴于该设备不是固态驱动器,是否仍应执行安全 ATA 擦除?

如果要擦除数据,可以使用 ATA Secure Erase。它不仅适用于固态驱动器,而且适用于旋转生锈。这比在 SSD 上花费的时间要长得多,因为硬盘驱动器不太可能支持 SED,它允许通过破坏加密密钥来即时擦除。

是否使用固件的安全擦除或擦除块设备取决于您。这两种选择都有优点和缺点。例如,ATA Secure Erase 旨在擦除驱动器中可能无法通过写入块设备而触及的区域,例如损坏的扇区和 HPA(主机保护区)。另一方面,固件中实现的任何擦除都可能被破坏或实现不正确,因为您无法轻松判断它是如何执行擦除的。如果您有时间,您可以同时执行这两种方法以充分利用两者。

shred --verbose --random-source=/dev/urandom -n1 /dev/sda是否支持相同或类似的结果,即不可恢复的数据,包括有缺陷或取消分配的扇区

不,这不会擦除损坏的扇区,也不会像 HPA 那样擦除磁盘区域。请注意,您给出的命令在功能上等同于cat /dev/urandom > /dev/sda. 但是,您可以使用 smartmontools 来确定您的驱动器报告了多少损坏的扇区。如果该值为零,则只需写入块设备即可擦除每个可访问的扇区。

如果你想覆盖块设备,你可以这样做dd

dd if=/dev/urandom of=/dev/sda bs=256k conv=fsync

这会将随机数据写入块设备,并在完成后立即同步更改。在较旧的 Linux 内核上,随机驱动程序非常慢,在这种情况下,您应该使用其他随机源,例如创建一个加密设备cryptsetup并向其写入零。


将来,您应该使用一种技术来确保您不会再次陷入这个位置。您应该使用 LUKS 之类的全盘加密,它将随机生成的主密码保存在驱动器上,并使用您指定的用户密码进行加密。只需覆盖加密的主密码就足以使驱动器上的所有其他数据完全无法恢复。这适用于没有磨损均衡的硬盘驱动器。在固态驱动器上,这不起作用。