Как безопасно стереть файлы с SSD диска?

14

При попытке безопасно стереть SSD, у нас есть несколько проблем:

  • SSD изнашиваются после ограниченного количества циклов стирания
  • SSD имеют контроллер, который динамически отображает LBA (адреса логических блоков, используемые системой для доступа к диску) в ячейки NVRAM (фактические ячейки флэш-памяти), чтобы сбалансировать износ, что означает указание диску перезаписывать блоки, которые ранее сохраняли определенную файл может привести к перезаписи любых других запасных блоков.
  • Твердотельные накопители имеют значительный процент резервной емкости, которая используется для компенсации умирающих ячеек хранения и уменьшения износа. Они не видны системе и могут содержать старые фрагменты данных.

Теперь, какие у нас есть возможности изнутри Ubuntu для безопасного стирания SSD?

Я слышал, что некоторые новые твердотельные накопители должны быть в состоянии безопасно стереть себя, но как мне узнать, способен ли мой SSD к этому и как я могу его запустить?
Также должна быть команда безопасного стирания ATA, как мне узнать, поддерживается ли она, и как мне вызвать это?

Существуют ли способы безопасного удаления только определенного файла или только неиспользуемого пространства?
Я предполагаю, что создание резервной копии всех разделов, безопасное удаление всего диска с последующим восстановлением резервной копии было бы возможно, но звучит слишком сложно и займет слишком много времени, чтобы быть практичным. Есть ли другие альтернативы? Если нет, какие инструменты я могу использовать для резервного копирования разделов без резервного копирования уже удаленных файлов?

Конечно, стандартные инструменты, подобные shredили wipeне пригодные для использования здесь для пунктов, описанных выше. Они просто перезаписывают файл (перезаписывая его кластеры файловой системы, которые связаны с LBA, которые не постоянно указывают на одни и те же флэш-ячейки из-за контроллера выравнивания износа).

Byte Commander
источник
Здесь может быть некоторая интересная информация wiki.archlinux.org/index.php/SSD_memory_cell_clearing
Byte Commander
Я знаю об академической работе над этим, которая превратила его в ядро, см. Lwn.net/Articles/480269
noleti

Ответы:

9

В настоящее время нет способа безопасно удалить файлы на SSD без стирания содержимого всего диска или доступа к встроенному ПО SSD.

  • Невозможно узнать, где SSD может хранить предыдущие копии логического блока.

  • Что еще хуже, из-за механизмов журналирования и копирования при записи файловой системы может оказаться невозможным узнать, какие логические блоки могут содержать предыдущую копию конкретного файла.

Единственный способ предотвратить утечку удаленных файлов кому-либо, имеющему прямой доступ к диску, - это, во-первых, зашифровать их и защитить ключ шифрования от посторонних глаз.

Приложение:

Я провел некоторое исследование и обнаружил, что вы можете отсортировать все ранее удаленные файлы, если вам удастся изучить все незанятые сектора файловой системы, что обычно возможно и предлагается некоторыми инструментами файловой системы (например, для семейства ext *). ), а затем отбрасывает их (например, с помощью, blkdiscard(8)как указано в этом ответе на связанный вопрос ), который возвращает блоки для сборки мусора, пока они не будут использованы снова и перезаписаны в процессе.

Это безопасно для всех, кто не может получить доступ к флеш-ячейкам напрямую, поэтому каждый, кто

  • не имеет подходящего устройства чтения флэш-ячейки и
  • не может убедить встроенное ПО привода в раскрытии содержимого неназначенных блоков (что в большинстве случаев потребовало бы значительного изменения встроенного ПО и пользовательских команд ATA, поскольку не существует стандартизированного способа).
Дэвид Фёрстер
источник
Не могли бы вы включить в свой ответ ключевые моменты и краткое изложение инструкций по этой ссылке?
Byte Commander
Я связался с эквивалентным вопросом AU. Я надеюсь, что это лучше.
Дэвид Фёрстер
Будет ли безопасным стирание свободного места при загрузке?
user4493605
1
@ user4493605: Что значит «жизнеспособный»? Это конечно возможно. Не могли бы вы открыть новый вопрос, если у вас есть новый или дополнительный вопрос? Раздел комментариев не подходит или предназначен для новых вопросов или расширенного обсуждения. Вы можете отправить мне комментарий с уведомлением, чтобы привлечь мое внимание к нему. Благодарю.
Дэвид Фёрстер
3

Предупреждение. Если это еще не ясно, безопасное удаление диска удалит все данные на диске и сделает невозможным его восстановление. Вы должны сделать резервную копию всей важной информации.

Самый простой способ определить, поддерживает ли ваш диск безопасное стирание, это задать его: я использовал / dev / sdX в примерах ниже. Вам необходимо тщательно изменить его, чтобы он соответствовал устройству, с которым вы работаете:

Источники:

https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase

/superuser/1161531/how-to-un-freeze-drive-in-linux

$ sudo hdparm -I /dev/sdX | grep -i erase

На моем SSD это приводит к:

supported: enhanced erase
2min for SECURITY ERASE UNIT. 2min for ENHANCED SECURITY ERASE UNIT.

Если ваше устройство поддерживает безопасное стирание, запуск выполняется в 2 или 3 этапа.

  1. Если устройство сообщает, что оно заморожено, как указано в выводе, sudo hdparm -I /dev/sdXаналогичном следующему:
not   enabled
not   locked
      frozen
not   expired: security count
supported: enhanced erase

Разморозьте его, приостановив и возобновив работу вашей системы. Я сделал это с помощью команды sudo systemctl suspend перемещения указателя, пока система не возобновила работу.

  1. Вы должны установить пароль, чтобы использовать безопасное стирание. В этом случае я использую foobar в качестве пароля, вы можете использовать любой непустой пароль, который вам нравится, поскольку он временный.

    sudo hdparm --user-master u --security-set-pass foobar /dev/sdX

  2. С установленным паролем вы можете теперь использовать его для безопасного стирания диска:

sudo hdparm --user-master u --security-erase foobar /dev/sdX

Если ваш накопитель поддерживает его и вы этого хотите, вы можете использовать вместо него усиленное стирание с помощью:

sudo hdparm --user-master u --security-erase-enhanced foobar /dev/sdX

Старейшина Гик
источник