Как надежно вытереть файлы с твердотельного диска?

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

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

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

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

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

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

14
задан 4 July 2016 в 03:07

2 ответа

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

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

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

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

Приложение:

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

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

  • нет подходящего устройства чтения ячейки флэш-памяти и
  • , не могут уговорить встроенное микропрограммное обеспечение диска на раскрытие содержания неназначенных блоков (который потребовал бы значимой модификации встроенного микропрограммного обеспечения в большинстве случаев и пользовательских команд ATA, так как нет никакого стандартизованного способа).
9
ответ дан 23 November 2019 в 03:05

Предупреждение: В случае, если это не уже ясно, надежно стирание диска устранит все данные по диску и должно лишить возможности восстанавливаться. Необходимо скопировать всю критическую информацию.

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

Источники:

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

https://superuser.com/questions/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

3
ответ дан 23 November 2019 в 03:05

Другие вопросы по тегам:

Похожие вопросы: