Jak bezpiecznie wyczyścić pliki z dysku SSD?

14

Podczas próby bezpiecznego czyszczenia dysków SSD mamy kilka problemów:

  • Dyski SSD zużywają się po ograniczonej liczbie cykli kasowania
  • Dyski SSD mają kontroler, który dynamicznie odwzorowuje LBA (logiczne adresy bloków używane przez system do uzyskania dostępu do dysku) na komórki NVRAM (rzeczywiste komórki pamięci flash) w celu zrównoważenia zużycia, co oznacza nakazanie dyskowi zastąpienia bloków, które wcześniej zawierały określony plik może spowodować zastąpienie innych wolnych bloków.
  • Dyski SSD mają znaczny procent pojemności rezerwowej, która jest wykorzystywana do kompensacji umierających komórek pamięci i zmniejszenia zużycia. Nie są widoczne dla systemu i mogą zawierać stare fragmenty danych.

Jakie mamy teraz opcje z Ubuntu, aby bezpiecznie wyczyścić dyski SSD?

Słyszałem, że niektóre nowsze dyski SSD powinny być w stanie bezpiecznie się wyczyścić, ale jak mogę się dowiedzieć, czy mój dysk SSD jest w stanie to zrobić i jak mam go uruchomić?
Powinna również istnieć komenda ATA bezpiecznego wymazywania. Jak mogę się dowiedzieć, czy ta funkcja jest obsługiwana i jak ją uruchomić?

Czy istnieją również sposoby bezpiecznego czyszczenia tylko danego pliku lub tylko nieużywanego miejsca?
Wydaje mi się, że wykonanie kopii zapasowej wszystkich partycji, bezpieczne wyczyszczenie całego dysku, a następnie przywrócenie kopii zapasowej byłoby możliwe, ale wydaje się zbyt skomplikowane i zajęłoby zbyt dużo czasu, aby było praktyczne. Czy są inne alternatywy? Jeśli nie, jakich narzędzi mogę użyć do tworzenia kopii zapasowych partycji bez tworzenia kopii zapasowych już usuniętych plików?

Oczywiście standardowe narzędzia, takie jak shredlub wipenie nadają się do wykorzystania w punktach opisanych powyżej. Po prostu nadpisują plik (nadpisując klastry systemu plików, które są powiązane z LBA, które nie stale wskazują na te same komórki flash z powodu kontrolera wyrównywania zużycia).

Bajt Dowódca
źródło
Może być tu kilka interesujących informacji wiki.archlinux.org/index.php/SSD_memory_cell_clearing
Byte Commander
Wiem o akademickich pracach nad tym, które dostały
noleti

Odpowiedzi:

9

Obecnie nie ma możliwości bezpiecznego usuwania plików na dysku SSD bez usuwania zawartości całego dysku lub dostępu do oprogramowania układowego dysku SSD.

  • Nie można wiedzieć, gdzie dysk SSD może przechowywać poprzednie kopie bloku logicznego.

  • Co gorsza, ze względu na mechanizmy rejestrowania i kopiowania przy zapisie w systemie plików może nie być możliwe ustalenie, które bloki logiczne mogą przechowywać poprzednią kopię określonego pliku.

Jedynym sposobem, aby zapobiec wyciekom usuniętych plików do osoby mającej bezpośredni dostęp do dysku, jest ich zaszyfrowanie i zabezpieczyć klucz szyfrujący przed wścibskimi oczami.

Uzupełnienie:

Zrobiłem trochę badań i odkryłem, że możesz posortować wymazać wszystkie wcześniej usunięte pliki, jeśli uda Ci się nauczyć wszystkich niezajętych sektorów systemu plików, co jest ogólnie możliwe i oferowane przez niektóre narzędzia systemu plików (np. Dla rodziny ext * ), a następnie odrzuć je (np. blkdiscard(8)zgodnie z opisem w tej odpowiedzi na połączone pytanie ), co zwróci bloki do wyrzucania elementów bezużytecznych, dopóki nie zostaną ponownie użyte i nadpisane w procesie.

Jest to zabezpieczone przed wszystkimi, którzy nie mają bezpośredniego dostępu do komórek flash, więc wszyscy, którzy

  • nie ma odpowiedniego urządzenia do odczytu komórek flash i
  • nie może nakłonić oprogramowania układowego napędu do ujawnienia zawartości nieprzypisanych bloków (co w większości przypadków wymagałoby znaczącej modyfikacji oprogramowania układowego i niestandardowych poleceń ATA, ponieważ nie ma znormalizowanego sposobu).
David Foerster
źródło
Czy umieściłbyś w swojej odpowiedzi kluczowe punkty i streszczenie instrukcji z tego linku?
Bajt Dowódca
Podłączyłem do równoważnego pytania AU. Mam nadzieję, że tak będzie lepiej.
David Foerster,
Czy bezpieczne usunięcie wolnego miejsca przy rozruchu byłoby realną opcją?
user4493605
1
@ user4493605: Co masz na myśli mówiąc „wykonalny”? Z pewnością jest to możliwe. Czy możesz otworzyć nowe pytanie, jeśli masz nowe pytanie lub pytanie uzupełniające? Sekcja komentarzy nie jest odpowiednia ani przeznaczona do nowych pytań lub rozszerzonej dyskusji. Możesz wysłać mi komentarz z powiadomieniem, aby zwrócić na to uwagę. Dzięki.
David Foerster,
3

Ostrzeżenie: W przypadku, gdy nie jest jeszcze jasne, bezpieczne usunięcie dysku spowoduje usunięcie wszystkich danych na dysku i uniemożliwi jego odzyskanie. Należy wykonać kopię zapasową wszystkich krytycznych informacji.

Najłatwiejszym sposobem ustalenia, czy twój dysk obsługuje bezpieczne wymazywanie, jest zapytanie: Użyłem / dev / sdX w poniższych przykładach. Musisz go ostrożnie zmienić, aby pasował do urządzenia, z którym pracujesz:

Źródła:

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

Na moim dysku SSD powoduje to:

supported: enhanced erase
2min for SECURITY ERASE UNIT. 2min for ENHANCED SECURITY ERASE UNIT.

Jeśli urządzenie obsługuje bezpieczne usuwanie, uruchomienie go jest procesem dwu- lub trzyetapowym.

  1. Jeśli urządzenie zgłasza, że ​​jest zamrożone, na co wskazuje wynik sudo hdparm -I /dev/sdXpodobny do następującego:
not   enabled
not   locked
      frozen
not   expired: security count
supported: enhanced erase

Odblokuj go, zawieszając i wznawiając system. Zrobiłem to za pomocą polecenia sudo systemctl suspend przesuwającego wskaźnik, aż system zostanie wznowiony.

  1. Musisz ustawić hasło, aby użyć bezpiecznego wymazywania. W tym przypadku używam foobar jako hasła, możesz użyć dowolnego niepustego hasła, które ci się podoba, ponieważ jest tymczasowe.

    sudo hdparm --user-master u --security-set-pass foobar /dev/sdX

  2. Po ustawieniu hasła możesz teraz używać go do bezpiecznego kasowania dysku:

sudo hdparm --user-master u --security-erase foobar /dev/sdX

Jeśli Twój dysk obsługuje tę funkcję i jeśli chcesz, możesz skorzystać z ulepszonego usuwania zabezpieczeń zamiast:

sudo hdparm --user-master u --security-erase-enhanced foobar /dev/sdX

Starszy Geek
źródło