Як надійно стерти файли з SSD-накопичувача?


14

При спробі надійно стерти SSD, ми маємо кілька проблем:

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

Тепер які варіанти у нас є зсередини Ubuntu, щоб безпечно стерти SSD?

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

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

Звичайно, стандартні інструменти на кшталт описаних вище пунктів подобаються shredабо wipeне використовуються. Вони просто перезаписують файл aa (перезаписуючи його кластери файлової системи, які пов'язані з LBA, які не постійно вказують на одні і ті ж флеш-комірки через контролер вирівнювання зносу).


Тут може бути цікава інформація wiki.archlinux.org/index.php/SSD_memory_cell_clearing
командир байтів

Я знаю про академічну роботу над цим, що ввійшло
noleti

Відповіді:


9

В даний час немає можливості безпечно стерти файли на SSD, не стерши вміст цілого диска або отримати доступ до прошивки SSD.

  • Неможливо знати, де SSD може зберігати попередні копії логічного блоку.

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

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

Додаток:

Я провів кілька досліджень і з'ясував, що ви можете сортувати стерті всі раніше видалені файли, якщо вам вдасться вивчити всі незайняті сектори файлової системи, що, як правило, можливо і пропонується деякими інструментами файлової системи (наприклад, для сім'ї ext * ), а потім відкиньте їх (наприклад, blkdiscard(8)як зазначено у цій відповіді на пов’язане запитання ), що повертає блоки для збору сміття, поки вони знову не будуть використані та перезаписані в процесі.

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

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

Будь ласка, включіть у свою відповідь ключові моменти та короткий виклад інструкцій із цього посилання?
Байт командир

Я пов'язаний з рівнозначним питанням АС. Я сподіваюся, що це краще.
Девід Фоерстер

Чи надійно стирання вільного місця під час завантаження буде життєздатним варіантом?
user4493605

1
@ user4493605: Що означає "життєздатний"? Це, безумовно, можливо. Чи можете ви, будь ласка, відкрити нове запитання, якщо у вас є нове або подальше запитання? Розділ коментарів не підходить і не призначений для нових питань або розширеного обговорення. Ви можете надіслати мені коментар із повідомленням, щоб звернути на мене мою увагу. Спасибі.
Девід Фоерстер

3

Попередження: Якщо це ще не зрозуміло, надійне стирання диска призведе до усунення всіх даних на накопичувачі, а також неможливе відновлення. Вам слід створити резервну копію всієї важливої ​​інформації.

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

Джерела:

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

/superuser/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

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