Если я "уничтожу" (это утилита / команда Linux) SSD, можно ли восстановить данные?
Ответ - «возможно», но лучше предположить «да».
Когда вы перезаписываете существующий файл на твердотельном накопителе, специальные драйверы, которые обрабатывают выравнивание износа, обычно часто фактически не перезаписывают точное место, где были старые данные. Это связано с тем, что твердотельный накопитель может быть записан в одно и то же место только ограниченное количество раз, прежде чем изнашиваются ячейки, содержащие это место. Таким образом, вместо того, чтобы перезаписывать старое местоположение, драйвер выравнивания износа будет смотреть, какие места на диске имеют меньший износ, и сопоставит это с местом, которое вы перезаписываете. Старые, перезаписанные данные сами переносятся туда, где они не используются.
Это немного чрезмерное упрощение. Это переназначение происходит не всегда, и разные SSD-устройства решают эту проблему по-разному, в зависимости от того, знает ли операционная система, что это твердотельный накопитель. Но вы никогда не можете предположить, что перезапись любого отдельного файла приведет к уничтожению данных этого файла на любом SSD, включая карты MicroSD, USB-накопители и другие портативные твердотельные устройства.
Лучший способ стереть самые старые «удаленные» данные - заполнить все неиспользуемое пространство диска случайными данными. Если вы заполните все неиспользуемое пространство на диске, то у вас больше шансов перезаписать все, что было ранее удалено. Однако здесь есть два предостережения. Во-первых, вы сильно изнашиваете свой привод. Вы уменьшаете на единицу количество раз, в которую может быть записана каждая ячейка на этом диске. Еще одно предостережение: вам не обязательно удалять ВСЕ старые данные таким образом. Это связано с тем, что на многих твердотельных накопителях, включая большинство лучших, есть немного дополнительного места, которое не отображается пользователю. Это дополнительное пространство зарезервировано для переназначения в места, где ячейки почти изношены. Затем, когда это переназначено, старая ячейка отображается постоянно, но в ней все еще есть то, что было в ней раньше. Получить эти данные сложно, но часто возможно. Многие производители используют собственные методы, позволяющие увидеть, что и где переназначено, и можно получить доступ к этим старым данным. Теперь вероятность того, что ячейка будет выведена из эксплуатации сразу после того, как в ней появятся конфиденциальные данные, может быть низкой. Все зависит от того, сколько конфиденциальных данных находится на вашем диске. Но это не нулевой шанс.
Есть два основных метода перезаписи старых удаленных данных на диске. Вы можете сделать это неразрушающим образом (с файловой системой и текущими файлами на диске), просто создав файл, который увеличивается до заполнения всего пустого пространства в файловой системе. Вы можете сделать это разрушительно, заполнив блочное устройство этого диска от кормы до кормы случайными данными.
Неразрушающий: В Linux вы можете использовать неразрушающий метод следующим образом:
$ dd if=/dev/urandom of=random.bin
Вам может потребоваться сделать это как root, чтобы также перезаписать зарезервированные части файловой системы. Это приводит к исчерпанию всего свободного места в файловой системе, поэтому, когда вы делаете это в корневой файловой системе, могут возникнуть разветвления, когда такие вещи, как syslog, больше не могут писать журналы. Однако, как правило, это не катастрофично, и если вы быстро удалите файл random.bin после перезагрузки, как правило, все в порядке. Более осторожный подход - сначала загрузиться с live CD / DVD / USB, затем смонтировать файловые системы SSD и проделать с ними описанные выше действия. Если у вас есть более одной файловой системы на SSD, вам нужно сделать это со всеми файловыми системами, прежде чем удалять random.bin на любой из них.
Разрушительный: Это проще и имеет то преимущество, что является наиболее полным методом, который вы можете использовать, избегая физического разрушения вашего диска. Загрузитесь с live CD / DVD / USB, а затем, как только вы определите, какое физическое устройство для вашего SSD, вы используете:
$ dd if=/dev/urandom of=/dev/sda bs=1M
Где / dev / sda заменяется устройством вашего SSD. Однако после этого вам придется переделать все свои разделы. Иногда возникают разветвления, когда вы создаете разделы на SSD, чтобы убедиться, что они правильно выровнены по ячейке внутренней памяти устройства и размеру блока, поэтому посмотрите на это.
Шифрование диска на месте с последующим уничтожением ключа было предложено в качестве альтернативы стиранию диска. В лучшем случае это не лучше, чем описанный выше метод деструкции, а в худшем - он может позволить восстановить почти все содержимое вашего диска. Возможные проблемы заключаются в том, что некоторые продукты шифрования по умолчанию не перезаписывают свободное пространство случайными данными или не имеют способа отключить это, что они не обязательно перезаписывают свободное пространство между существующими разделами или в конце водить машину.
Короче говоря, не существует 100% надежного способа перезаписать конфиденциальные данные на любом SSD. Единственный способ предотвратить извлечение конфиденциальных данных с твердотельного накопителя - это физически уничтожить их. И под этим я подразумеваю, что настоящая кремниевая пластина в середине каждого чипа памяти сломана. Существуют приводные измельчители, предназначенные именно для этого. Также эффективно сжигание при высокой температуре.
Следует отметить, что почти всю эту боль можно обойти (или хотя бы смягчить) с помощью профилактики. Использование системы шифрования всего диска с самого начала, чтобы на диск никогда не записывались незашифрованные данные, - безусловно, лучший способ обеспечить максимальную безопасность ваших данных. Но даже в этом случае, при EoL привода, я все равно рекомендую либо физическое разрушение привода, либо метод разрушения, описанный выше.
Все новые SSD-диски содержат низкоуровневую «обрезку» функциональности. По сути, блоки, указанные в команде низкого уровня, заставляют SSD «собирать мусор» эти блоки, делая удаленный контент недоступным и не восстанавливаемым.
Установленный SSD-диск будет выполнять функцию обрезки удаленного файлового пространства в системах Windows (возможно, версии 7 и выше). Я считаю, что это можно отключить с помощью ключа реестра.
В Linux, в отличие от Windows, вы должны использовать специальный параметр монтирования, называемый discard
для использования функции «обрезки» на SSD-дисках. Однако это можно периодически делать через fstrim
команда в сочетании с cron
.
Если вопрос заключается в том, как сделать удаленное пространство невосстановимым, то использование функции «обрезки» на твердотельных накопителях кажется началом.