Як надійно видалити файли, що зберігаються на SSD?


27

З (дуже довгої, але, безумовно, варто прочитати) статті про SSD :

Коли ви видаляєте файл в своїй ОС, немає жодної реакції ні з жорсткого диска, ні з SSD. Лише до того, як ви перезапишете сектор (на жорсткому диску) або сторінку (на SSD), ви фактично втратите дані. Програми відновлення файлів використовують цю властивість на свою користь, і саме тому вони допомагають вам відновити видалені файли.

Ключове відмінність між жорсткими та жорсткими дисками - це те, що відбувається при перезаписі файлу. Хоча HDD може просто записати нові дані в той самий сектор, SSD виділить нову (або раніше використану) сторінку для перезаписаних даних. Сторінка, що містить тепер недійсні дані, буде просто позначена як недійсна і в якийсь момент буде стерта.

Отже, що було б найкращим способом надійно стерти файли, що зберігаються на SSD? Перезапис з випадковими даними, як ми звикли з жорстких дисків (наприклад, за допомогою утиліти "клаптик"), не буде працювати, якщо ви не перезаписали диск WHOLE ...

Відповіді:


22

Як щодо шифрування самого гучності? Видалені дані все ще будуть там, але повинні бути недоступними для будь-кого без відповідного ключа.


Смішно, я не замислювався над цим - так як я завжди використовую шифрування LUKS на своїх жорстких дисках;)
c089

Як зазначено тут, це матиме серйозні наслідки для роботи. За допомогою накопичувачів на основі SandForce використання захищеного стирання ATA видалить ключ шифрування AES, що вирішить проблему безпечного видалення, коли не використовується програмне шифрування.
c089

12

Якщо SSD-накопичувач підтримує набір функцій режиму безпеки ATA, він має вбудований функціональний захист стирання, до якого ви повинні мати доступ, використовуючи щось на зразок Secure Erase, задокументоване тут і тут .


2
+1 для набору функцій режиму безпеки ATA. Про це є хороше відео на SecurityTube.net
RJFalconer

2
Але ця особливість є лише для повних накопичувачів, чи не так?
c089

@ Chris089: Це правильно: безпечне стирання видалить увесь диск. Перезаписування всього накопичувача випадковими даними не гарантується, щоб стерти весь накопичувач через недостатність. (Але це може зробити деякі необроблені дані недоступними для звичайних користувачів, принаймні.) Див. Anandtech.com/storage/showdoc.aspx?i=3531&p=9 для отримання додаткової інформації.
bk1e

Будьте уважні, що (старші) накопичувачі не використовували цю функцію як слід. Він також повинен працювати на жорстких дисках, але для SSD він має перевагу в тому, що він може закінчитися за лічені секунди замість години.
Maarten Bodewes

Проблема із захищеним стиранням полягає в тому, що багато дисків вимагають від вас фізичного включення живлення (від'єднайте штекер живлення та підключіть його назад), щоб вивести їх із стану "замороженої безпеки". Лише тоді працює Secure Erase. Не завжди легко або бажано відкривати свій ПК, особливо якщо це ноутбук або гірше вбудована система.
misha256

10

Навіть якщо ви перезаписуєте весь накопичувач, ви не можете бути абсолютно впевнені, оскільки і HD-диски, і SSD-диски містять запасні сектори, які замінюються, коли виникають збої , або у випадку SSD- дисків, щоб сприяти вирівнюванню зносу .

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


Поки не можна оскаржити, але відповідь захищеного стирання визнає цей аргумент недійсним. Звичайно, якщо ви не хочете покладатися на безпечне стирання виробника, фізичне знищення спалаху - це варіант. Але переконайтеся, що ви спалюєте його або зламаєте всі фішки, спалах дуже стійкий.
Maarten Bodewes

Зауважте, що це стара відповідь; на даний момент SECURE ERASE має підтримуватися більшістю, якщо не всіма дисками, включаючи більшість накопичувачів жорсткого диска.
Maarten Bodewes

1
Безпечне стирання стерти всі SSD. Але не окремий набір файлів чи розділ.
Михайло Москальов

9

Через природу флеш-пам’яті NAND, SSD не можуть безпосередньо перезаписати дані. Повторне перезаписування файлу перед його видаленням не призведе до надійного видалення його на SSD - дані просто будуть записані в іншому місці NAND.

Щоб зрозуміти, чому це так, необхідно пояснити, як працюють внутрішні диски SSD.

  • Спалах NAND розділений на блоки , кожен з яких складається з набору сторінок розміром зазвичай 4 КБ (плюс коди для виправлення помилок). Більшість сучасних SSD-дисків використовують NAND з блоками на 128 сторінок розміром блоку 512 Кб, хоча деякі накопичувачі, особливо старіші, можуть використовувати 256 КБ або менші блоки. Наступна діаграма передбачає блоки 256 КБ, але концепція однакова незалежно від розміру блоку.

Діаграма сторінок у блоці NAND
Джерело - Courtesy Music Sorter у Wikipedia, CC BY-SA 3.0

  • Кожну сторінку можна писати окремо, але сторінки не можна переписувати до стирання, а стирання можна робити лише цілими блоками. Це означає, що щоразу, коли дані будуть перезаписані, SSD повинен позначати дані на постраждалих сторінках недійсними та переписувати їх в іншому місці, можливо, в іншому блоці. У більш підходящий час, в ідеалі, коли накопичувач не працює, а всі сторінки в блоці позначені недійсними, SSD може видалити блоки, які вже не використовуються. Цей процес очищення називається збиранням сміття .

  • Для того, щоб SSD знав, які блоки можна стерти, операційна система повинна вказати, які блоки більше не містять дійсних даних. Це робиться з допомогою ATA TRIM команди . Після цього SSD може сміливо збирати непотрібні блоки.

SSD намагаються рівномірно розповсюджувати записи по NAND, щоб уникнути передчасного виходу з ладу, процесу, який спирається на вільний простір, доступний для накопичувача.

  • Кожен блок NAND може підтримувати лише обмежену кількість циклів запису / стирання. Багато сучасних жорстких накопичувачів споживчих стандартів використовують 19-21 нм NAND, де кожен блок хороший приблизно 3000 циклів, перш ніж стати непридатним для використання, хоча корпоративні SSD та декілька високоякісних споживчих SSD, які використовують більш довговічні типи NAND, є комерційно доступними.

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

  • В екстремальних умовах, коли SSD запитується записувати дані швидше, ніж це може стерти старі блоки (звичайне для робочих навантажень у центрі обробки даних), може бути змушене переписати дані з одного блоку в інший блок, а потім стерти старий блок негайно щоб створити місце для нових даних, перш ніж він мав можливість здійснити вивезення сміття.

  • Примусове переписування блоку є менш ніж ідеальним, оскільки воно погіршує продуктивність і сприяє посиленню запису , коли в базовий NAND записується більше даних, ніж фактична кількість, яку записується накопичувач. Додане перевищення резервів допомагає пом’якшити посилення запису, надаючи більше вільного простору для перезапису даних та стирання старих блоків. Ось чому високоякісні корпоративні жорсткі диски типу Samsung SSD 845DC PRO мають розміри 200 ГБ і 400 ГБ, хоча накопичувач фактично містить близько 256 або 512 ГБ NAND всередині. Дивіться також: Чому SSD мають дивні розміри?

  • Серія білої книги SSD від Samsung забезпечує ретельне пояснення внутрішньої роботи SSD-дисків. Написання та стирання сторінок та блоків NAND та збирання сміття пояснюється у білому папері 04 .

Єдиний спосіб по-справжньому стерти дані на SSD - це використовувати команди ATA Secure Erase.

  • Secure Erase вказує накопичувачу стерти всі збережені дані, включаючи дані, які можуть залишатися у надмірно захищених регіонах NAND. Коли це робиться, всі блоки стираються, що призводить до незайманого накопичувача.

  • На накопичувачах з можливістю самокодування шифрування Secure Erase можна просто реалізувати, витираючи ключ шифрування. Оскільки дані про NAND зашифрованого диска не читаються без ключа, немає необхідності стирати всі блоки, як це було б потрібно на незашифрованому диску.


Слідкуйте за тим, щоб не всі диски правильно виконали команди безпечного стирання. Якщо ви все ще хочете використовувати накопичувач, це може бути найкращим чином, якщо ви не мали передбачення шифрувати з самого початку. Якщо ви хочете утилізувати накопичувач, вам слід фізично його знищити - особливо флеш-чіпи.
Боб

Якщо потрібне фізичне знищення, я б відкрив накопичувач і знищив базову плату.
bwDraco

@Bob У вас є посилання на джерело, яке обговорює неправильну реалізацію? secure_eraseКоманда є частиною стандарту ATA. На деяких дешевших накопичувачах він може бути відсутнім, але якщо він є, він повинен працювати належним чином. Причина, по якій вона працює краще, ніж інші варіанти, полягає в тому, що вона відновлює привід до його початкової заводської конфігурації. Навіть на жорстких дисках він швидший і ефективніший, ніж такі інструменти, як DBAN.
Пол

@Paul security.stackexchange.com/questions/41676/… , usenix.org/legacy/events/fast11/tech/full_papers/Wei.pdf , security.stackexchange.com/questions/62253/… Існує абсолютно нульова гарантія довільної Прошивка диска правильно реалізує будь-яку задану команду (помилки можуть трапитися де завгодно) - і тестування довело, що принаймні деякі диски точно не роблять. Зрештою, найбільша проблема полягає в тому, що ви дійсно не можете перевірити правильність стирання.
Боб

1
Оскільки ми не можемо зробити бланкетну заяву / гарантію успіху, ми повинні припустити, що принаймні деякі диски не реалізують це правильно. Якщо ми припускаємо, що деякі диски не реалізують його належним чином, то безпечне, що потрібно зробити, це припустити, що жоден диск не реалізує його правильно, доки не доведеться інше. І довести це непросто - стирання може здатися вам правильним, зберігаючи інформацію про флеш-чіпи для всіх, що ви знаєте - а це означає, що ви завжди повинні фізично знищувати будь-що, що насправді чутливе.
Боб

6

Як зазначає @teabot, використання повного програмного забезпечення для шифрування диска дозволить обійти проблему безпечного видалення, оскільки вам більше не потрібно. Однак, як зазначено у пов'язаному питанні , це матиме величезні наслідки для продуктивності, оскільки це запобігає безлічі функцій контролера, таких як стиснення та TRIM, і, як повідомляється, знижує продуктивність до рівня, коли звичайний жорсткий диск швидше, ніж дорогий SSD. Для пристроїв на основі SandForce є краще рішення: ці пристрої шифрують AES за замовчуванням, і ключ буде стертий, коли ви використовуєте функцію безпечного видалення ATA, роблячи всі дані недоступними, якщо зловмисник не зможе зламати AES (128 біт на поточний, 256 біт для нових дисків, випущених у березні 2011 року).


1
Однак, схоже, не існує рішення для безпечного видалення лише декількох файлів. Вам доведеться стерти весь диск.
c089

3

Як ви думали, протирання всього вільного простору, щоб гарантувати, що будь-які блоки, які раніше містили дані, стираються - єдиний спосіб бути впевненим. Ну, крім виведення нукінг сайту з орбіти ...

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

Інший спосіб захистити видалені дані - це зберігати їх зашифрованими в першу чергу за допомогою зашифрованої файлової системи, використовуючи щось на зразок truecrypt.

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