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

36

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

Я не ищу безопасность уровня NSA, просто вид стирки, который вы бы сделали, если вы возвращаете или продаете Mac.

Rinzwind
источник
Вам нужно стереть данные или убедить других людей в том, что данные были стерты? Если вам нужно только убедиться, что данные исчезли, попробуйте команду ATA Secure Erase. Если вам нужно убедить других людей, вам, возможно, придется воспользоваться службой уничтожения дисков.
DanBeale

Ответы:

45

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

Когда вы записываете определенную страницу данных на HD, новые данные просто записываются поверх старых данных, заменяя их. Запишите нули по всему диску, и все старые данные исчезнут. SSD, с другой стороны, не могут просто перезаписать отдельные страницы. Чтобы заменить данные на странице, старые данные сначала должны быть удалены, а твердотельные накопители не могут удалить отдельные страницы; они должны стирать целые блоки, состоящие из множества страниц.

Итак, что происходит, когда вы просите SSD перезаписать, скажем, страницу № 5, так это то, что SSD оставляет данные только на странице № 5, но помечает их как недействительные, выделяет другую в настоящее время пустую страницу (скажем, # 2305), пишет новые данные на странице # 2305 и отмечают, что в следующий раз, когда ОС запросит страницу # 5, вместо этого она должна получить # 2305. Исходные данные страницы № 5 хранятся там до некоторого более позднего времени, когда накопителю требуется больше места, удаляются все оставшиеся действительные страницы от блока и стираются. Твердотельные накопители имеют больше физической памяти, чем они выставляют компьютеру, поэтому они могут некоторое время жонглировать такими блоками, прежде чем действительно что-то стирать (а когда они действительно что-то стирают, нет хорошего способа предсказать, какие блоки оставшихся данных будут быть выбранным для стирания). Посмотреть этот обзор AnandTech для более подробной информации (предупреждение: это довольно долго, и соответствующие вещи распространяются вокруг).

Чистый результат: если вы записываете нули на «весь» диск, вы фактически не перезаписываете все старые данные. Вы были обновлены таблицы перевода контроллера так , чтобы он никогда не будет возвращать старые данные в ОС (эти страницы все недействительны). Но если кто-то достаточно хардкорный, чтобы обойти контроллер, он может вернуть часть ваших данных.

Перезапись дважды, вероятно, будет работать, но это зависит от стратегии распределения контроллера. Перезапись дважды случайными данными ( diskutil randomDisk 2 /dev/diskN) немного более вероятна, но все еще не гарантирована. У обоих из них также есть некоторые плохие побочные эффекты: они используют часть срока службы диска, а также увеличивают логическую фрагментацию на SSD, снижая его производительность записи.

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

Лучший способ безопасного стирания SSD - активировать встроенную в контроллер функцию безопасного стирания. Это должно (если разработчики контроллера выполнили свою работу) действительно стереть все блоки, а также иметь побочный эффект сброса логической карты страниц, по существу, ее дефрагментации и восстановления ее первоначальной производительности. К сожалению, большинство утилит, которые я видел для этого (например , HDDErase CMRR ), работают под DOS, которая не загружается на Mac. Я нашел сообщение на макруморах с (довольно сложными) инструкциями по безопасному удалению с загрузочного диска GParted. Также возможно использовать Parted Magic с загрузочной флешки , но я этого не пробовал.

Исследователи из Лаборатории энергонезависимых систем в UCSD протестировали различные способы дезинфекции твердотельных накопителей путем «стирания» накопителя, его разборки с целью обхода контроллера и проверки остаточных данных ( сводка , полная статья ). Их результаты в основном согласуются с тем, что я сказал выше (а также показывают, что встроенная команда безопасного удаления не всегда реализована должным образом):

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

Гордон Дэвиссон
источник
1
Спасибо за исчерпывающий ответ. Для меня не проблема запустить команду терминала, как вы предлагаете. Но для дальнейшего использования: что могут делать обычные пользователи, которым не очень удобно работать с терминалом? Просто используйте 7-проходную опцию Дисковой утилиты?
Rinzwind
4
Я не знаю, смогу ли я действительно «порекомендовать» какой-либо из вариантов на данный момент - они все вроде как отстойные. Любой из вариантов перезаписи будет использовать ограничение на время жизни накопителя и будет увеличивать фрагментацию и снижать производительность. Лучше всего было бы, чтобы Apple добавила ATA-secure-erase (то есть опцию на основе контроллера) в качестве опции в Дисковой утилите, но кто знает, когда и если это произойдет.
Гордон Дэвиссон
2
@ Гордон - Это был отличный и информативный ответ! +1
Долан Антенуччи
Привет, @GordonDavisson. Любопытно, если что-то изменилось с тех пор, как вы написали этот ответ (с тех пор было несколько обновлений ОС).
Samthebrand
@SamtheBrand: Не так много изменилось. Я добавил примечание, что Disk Utility (версия с графическим интерфейсом пользователя) теперь запрещает безопасное стирание на SSD (потому что оно на самом деле не работает), исправил ссылку на HDDErase и добавил примечание, что Parted Magic может работать (хотя я его не пробовал) ).
Гордон Дэвиссон
8

Откройте терминал и введите следующую команду:

df -k

Обратите внимание на первый столбец, соответствующий разделу SSD, который вы хотите безвозвратно стереть. Скажем так /dev/disk1s2.

Введите следующую команду:

dd if=/dev/zero of=/dev/rdisk1s2 bs=100k

где /dev/rdisk1s2необработанное устройство, связанное с вашим разделом на SSD. Эта команда полностью запишет этот раздел из 1-го блока, доступного последнему. Эта команда будет длиться долго (~ 1/2 часа для 100 Гбайт) без хорошей полосы прокрутки прогресса.

Как только эта команда вернет вам приглашение вашей оболочки, диск был полностью и безвозвратно стерт. Запустите Disk Utilityи проверьте этот раздел. Он скажет вам, что он поврежден за любую форму ремонта. И это правильно.

Просто отформатируйте этот раздел, как вам нравится.

Вот что происходит на уровне физических блоков:фильм dd & du стирающий SSD

Дан
источник
1
Это эквивалентно опции Disk Utility перезаписывать нулями и не будет полностью защищено на SSD по той же причине. Смотрите мой ответ для подробного объяснения.
Гордон Дэвиссон
→ Гордон: я прочитал ваш ответ, и я думаю, что понял его, и я проголосовал за его качество. Мой ответ - использовать устройство с необработанным диском, а не блочное (как Дисковая утилита). Это должно быть проверено на SSD (с надежными инструментами), но, насколько я знаю, на старом стандартном HD с использованием кешей, простой интерфейс диска был простым способом избежать этого кеша. Устройство SSD - это просто жесткий диск, на котором кэш-память заполнена, а физический диск удален.
дан
Использование необработанного устройства (/ dev / rdisk *) позволяет обойти кэши ОС, но не обходит уровень флеш-трансляции (что является источником описанной проблемы). Фактически, нет никакого способа обойти это от ОС - контроллер устройства просто никогда не выставляет истинное сырое флэш-хранилище на шину (SATA или что-то еще), и, поскольку ОС может взаимодействовать только с дисководом по шине, нет способ получить достаточно сырой доступ для безопасного перезаписи.
Гордон Дэвиссон
Первый шаг ddздесь заключается не только в том, чтобы обойти некоторый уровень кэша (у нас нет никакого способа узнать их емкость), но и частично их исчерпать (это состояние на рисунке 3). Второй проход действительно должен найти новые блоки и надежно стереть их.
Ден
Этого по-прежнему недостаточно по двум причинам: во-первых, когда Дисковая утилита форматирует диск, она перезаписывает только небольшую его часть (таблицу разделов, заголовки томов и т. Д.), И нет гарантии, что этого достаточно для исчерпания дополнительной емкости. Во-вторых, нет никакой гарантии, что дополнительный записывающий DU ударит по физическим блокам, отличным от того, что стер dd ранее - в зависимости от стратегии выделения контроллера, вполне возможно, что вы просто стираете одни и те же физические блоки снова и снова. Вот почему я сказал, что даже перезаписи всего пространства дважды может быть недостаточно.
Гордон Дэвиссон
7

Кнопка «Параметры безопасности ...» в Дисковой утилите в настоящее время недоступна для твердотельных накопителей. Согласно http://support.apple.com/kb/HT3680 , удаление SSD обычно может быть достаточно безопасным:

Примечание. При использовании OS X Lion и SSD-накопителя безопасное стирание и стирание свободного пространства недоступны в Дисковой утилите. Эти параметры не нужны для SSD-накопителя, поскольку стандартное стирание затрудняет восстановление данных с SSD-накопителя. Для большей безопасности рассмотрите включение шифрования FileVault 2, когда вы начинаете использовать SSD-накопитель.

Все еще можно запустить что-то вроде diskutil secureErase freespace 4 disk0s2терминала из раздела восстановления.

Хотя лучше включить FileVault 2 перед стиранием диска, но это, пожалуй, лучший вариант. Согласно этому ответу , выполнение удаленной очистки также просто стирает ключ шифрования, если включен FileVault 2:

Да, когда вы удаленно стираете компьютер, он выполняет безопасную очистку. Apple даже предупреждает вас, что это может занять целый день. Однако, если ваш диск был зашифрован с помощью FileVault 2, нет необходимости стирать диск. Достаточно надежно стереть ключ (ы) шифрования, хранящиеся на диске, поэтому они так и делают. Это очень быстро и так же безопасно, как базовая система шифрования, которая на данный момент очень безопасна.

http://training.apple.com/pdf/wp_osx_security.pdf :

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

LRI
источник
5
Включение шифрования (т. Е. FileVault) перед сохранением конфиденциальных данных является отличным вариантом, но мне кажется, что процесс, используемый для «стирания» ключа шифрования, может быть не полностью безопасным по той же причине, что и стандартное безопасное удаление - - старый ключ шифрования все еще будет храниться во флэш-памяти, просто на отображенной странице. Так что кто-то, кто может обойти контроллер, все еще может достать «стертый» ключ ...
Гордон Дэвиссон
@GordonDavisson, но если вы снова включите шифрование при форматировании диска, старый ключ шифрования должен быть перезаписан, следовательно, старые данные надежно недоступны?
суперразмер
@supersize Старый ключ шифрования может быть перезаписан, но он зависит от того, какие именно физические страницы будут стерты во время переформатирования, и это то, что контролирует прошивка привода, а не операционная система.
Гордон Дэвиссон