Як надійно стерти диск SSD?


36

Я досить новачок у технології SSD, тому не знаю, як вона порівнюється з жорсткими дисками, коли справа стосується надійного стирання накопичувача. Чи достатньо запустити Disk Utility та стерти диск з опцією "перезаписати нулями", чи це призначено для жорстких дисків? Чи є інші дії, які слід вжити?

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


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

Відповіді:


45

Це залежить від вашого рівня параної. Через те, як SSD обробляє запис даних, робити нуль один раз на SSD не так добре, як це робити на жорсткому диску.

Коли ви пишете певну сторінку даних на HD, нові дані просто записуються над старими даними, замінюючи їх. Напишіть нулі на весь диск, і всі старі дані вже не будуть. SSD-диски, з іншого боку, не можуть просто перезаписати окремі сторінки. Щоб замінити дані на сторінці, спочатку слід стерти старі дані, а SSD не можуть стерти окремі сторінки; вони повинні стерти цілі блоки, що складаються з багатьох сторінок.

Тож, що трапляється, коли ви просите SSD перезаписати, скажімо, сторінку №5, це те, що SSD залишає дані на сторінці №5 у спокої, але позначає їх як недійсні, виділяє ще одну порожню сторінку (скажімо, № 2305), пише нових даних на сторінці № 2305, і зазначає, що наступного разу, коли ОС запитує сторінку №5, замість цього вона повинна отримати № 2305. Оригінальні дані сторінки №5 засідають там до деякого пізнього часу, коли накопичувачу потрібно більше місця, не відсуває залишки дійсних сторінок від блоку та видаляє їх. SSD мають більшу фізичну пам’ять, ніж вони піддають комп’ютеру, тому вони можуть деякий час перемикати такі блоки, перш ніж насправді щось стерти (а коли вони справді щось стирають, немає хорошого способу передбачити, які блоки залишків даних будуть вибирати для стирання). Дивіться цей огляд AnandTech для отримання детальної інформації (попередження: вона досить довга, а відповідні речі розкинуті навколо).

Чистий результат: якщо ви записуєте нулі на "цілий" диск, ви фактично не перезаписали всі старі дані. Ви були оновлені таблиці переведення контролера так , щоб він ніколи не буде повертати старі дані в ОС (ці сторінки все недійсні). Але якщо когось досить жорсткого, щоб обійти контролер, він міг би повернути частину ваших даних.

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

Зауважте, що останні версії графічної утиліти OS X відключають захищені параметри стирання на SSD (з причин, обговорених вище), але версія командного рядка все ж дозволяє їх. До речі, я також бачив кілька рекомендацій щодо безпечного стирання SSD, перетворивши їх у зашифрований формат, але це (якщо щось таке) трохи менш безпечно, ніж перезапис випадковими даними.

Найкращим способом безпечного видалення SSD є використання вбудованої функції захищеного стирання контролера. Це повинно (якщо дизайнери контролерів виконали свою роботу) справді видалити всі блоки, а також мати побічний ефект від скидання логічної карти сторінки, по суті, дефрагментації її та відновлення її початкової продуктивності. На жаль, більшість утиліт, які я бачив для цього (наприклад , HDDErase CMRR ), працює під DOS, яка не завантажується на Mac. Я знайшов публікацію на макромоторах із (досить складними) інструкціями щодо безпечного стирання завантажувального компакт-диска GParted. Можливо, також можливо використовувати Parted Magic з завантажувальної флешки , але я цього не пробував.

Дослідники лабораторії енергонезалежних систем UCSD перевірили різні способи дезінфекції SSD, "стервши" накопичувач, потім розібравши його, щоб обійти контролер, і перевірили на залишки даних ( резюме , повний папір ). Їх результати здебільшого узгоджуються з тим, що я говорив вище (а також показують, що вбудована команда захищеного стирання не завжди виконується належним чином):

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


1
Дякую за обширну відповідь. Для мене не проблема запускати команду Terminal, як ви пропонуєте. Але для подальшої довідки: що можуть робити постійні користувачі, які не так комфортні з терміналом? Просто скористайтеся 7-пропускною програмою Disk Utility?
Rinzwind

4
Я не знаю, чи можу я справді "рекомендувати" будь-який із варіантів на даний момент - всі вони начебто смокчуть. Будь-який із параметрів перезапису дозволить збільшити ліміт часу запису диска і, як правило, збільшить фрагментацію та знизить продуктивність. Найкраще було б, щоб Apple додала ATA-secure-erase (тобто на основі контролера) як опцію в Disk Utility, але хто знає, коли / якщо це станеться.
Гордон Девіссон

2
@Gordon - Це була чудова та інформативна відповідь! +1
Dolan Antenucci

Привіт @GordonDavisson Цікаво, чи щось змінилося з часу написання цієї відповіді (з тих пір було кілька оновлень ОС).
samthebrand

@SamtheBrand: Не так багато змінилося. Я додав зауваження, що Disk Utility (версія GUI) тепер відключає безпечне стирання на SSD-дисках (оскільки він насправді не працює), виправив посилання на HDDErase і додав примітку, що Parted Magic може працювати (хоча я ще не пробував цього ).
Гордон Девіссон

8

Відкрийте термінал і введіть таку команду:

df -k

Зверніть увагу на перший стовпець, що відповідає розділу SSD, який ви хочете безповоротно стерти. Скажімо, так і є /dev/disk1s2.

Введіть таку команду:

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

де /dev/rdisk1s2знаходиться необроблений пристрій, пов’язаний з вашим розділом на SSD. Ця команда повністю запише цей розділ з першого блоку, доступного до останнього. Ця команда триватиме довго (~ 1/2 год для 100 Гбайт), не маючи приємної смуги прокрутки прогресу.

Після того, як ця команда поверне вам підказку вашої оболонки, диск був повністю і безповоротно стертий. Запустіть Disk Utilityі перевірте цей розділ. Він скаже тобі, що це загрожує поза будь-якими формами ремонту. І це правильно.

Просто відформатуйте цей розділ так, як вам подобається.

Ось що відбувається на рівні фізичних блоків:фільм DD і DU стирає SSD


1
Це еквівалентно опції Disk Utility для перезапису нулів, і вона не буде повністю захищеною на SSD з тієї ж причини. Дивіться мою відповідь для детального пояснення.
Гордон Девіссон

→ Гордон: Я прочитав вашу відповідь, і, думаю, я зрозумів її, і я підтримав її якість. Моя відповідь полягає в використанні необробленого дискового пристрою, а не блокового (як Disk Utility). Це потрібно перевірити на SSD (за допомогою надійних інструментів), але, наскільки я знаю, на старих стандартних HD з використанням кешів, інтерфейс сировинного диска був простим способом уникнути цього кешу. Пристрій SSD - це просто HD-диск, на якому кеш-пам'ять є повною ємністю, а фізичний диск видаляється.
дан

Використання необробленого пристрою (/ dev / rdisk *) обходить кеші ОС, але не обходить шар флеш-трансляції (що є джерелом описаної мною проблеми). Насправді, немає можливості обійти його з ОС - контролер пристрою просто ніколи не виставляє справжній необроблений накопичувач флеш-пам’яті на шину (SATA чи будь-що інше), а оскільки ОС може взаємодіяти лише з накопичувачем по шині, немає спосіб отримати доступ у сирому режимі для безпечного перезапису.
Гордон Девіссон

Перший пасаж ddтут полягає не лише в тому, щоб обійти якийсь рівень кешу (у нас немає жодного способу дізнатися їх потужність), але частково вичерпати їх (це цифра 3). Другий прохід дійсно повинен буде знайти нові блоки та надійно стерти їх.
дан

Цього ще недостатньо з двох причин: по-перше, коли Disk Utility форматує диск, він лише перезаписує його (таблицю розділів, заголовки гучності тощо), і немає гарантій, що цього достатньо, щоб вичерпати додаткову ємність. По-друге, взагалі немає жодної гарантії, що додаткові записи DU будуть стикатися з іншими фізичними блоками, ніж те, що DD стерто раніше - залежно від стратегії розподілу контролера, цілком можливо, ви просто стираєте ті самі фізичні блоки знову і знову. Ось чому я сказав, що навіть перезапису всього простору двічі може бути недостатньо.
Гордон Девіссон

7

Кнопка "Параметри безпеки ..." у програмі Disk Utility наразі недоступна для SSD. Згідно з http://support.apple.com/kb/HT3680 , стирання SSD зазвичай може бути достатньо безпечним:

Примітка. За допомогою OS X Lion та накопичувача SSD безпечне стирання та стирання вільного простору недоступні у Disk Utility. Ці параметри не потрібні для накопичувача SSD, оскільки стандартне стирання ускладнює відновлення даних з SSD. Для більшої безпеки розгляньте ввімкнення шифрування FileVault 2, коли ви починаєте використовувати накопичувач SSD.

Ще можна запустити щось подібне diskutil secureErase freespace 4 disk0s2з Terminal на розділі відновлення.

Просте ввімкнення FileVault 2 перед видаленням накопичувача, мабуть, кращий варіант. Відповідно до цієї відповіді , виконуючи віддалене стирання, також просто стирається ключ шифрування, якщо FileVault 2 увімкнено:

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

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

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


5
Увімкнення шифрування (тобто FileVault) перед збереженням конфіденційних даних є відмінним варіантом, але мені здається, що процес, який використовується для "стирання" ключа шифрування, може бути не повністю захищеним з тієї ж причини, що і стандартне безпечне видалення - - старий ключ шифрування все ще зберігатиметься у спалах, просто на сторінці, яка відображена на карті. Тож хтось, хто може обійти контролер, все-таки зможе потрапити за "стертою" клавішею ...
Гордон Девіссон

@GordonDavisson, але якщо потім ви знову ввімкнете шифрування при форматуванні диска, старий ключ шифрування повинен бути перезаписаний, отже старі дані надійно недоступні?
суперрозмір

@supersize Старий ключ шифрування може бути перезаписаний, але це залежить від того, які саме фізичні сторінки будуть видалені під час переформатування, і це щось, що управляє прошивкою диска, а не операційною системою.
Гордон Девіссон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.