Dyski SSD są coraz szybsze, coraz pojemniejsze i coraz tańsze – w efekcie stają się coraz popularniejsze. Problemem jest to, że wraz ze wzrostem pojemności i szybkości działania dysków wzrasta także gęstość upakowania, a co za tym idzie ryzyko utraty danych. Dlatego też namawialiśmy do archiwizacji danych łącznie z systemem operacyjnym. Ale ewentualna awaria dysku i związane z tym trudności w odzyskaniu danych to niejedyna bolączka użytkowników SSD. Równie problematyczne okazuje się bezpieczne wyczyszczenie danych z dysków i pamięci NAND flash, np. przed planowaną odsprzedażą sprzętu.
Nowa technologia jest niebezpieczna
Całkowite usunięcie danych z klasycznego dysku możliwe jest na kilka sposobów. Możemy chociażby poddać dysk profesjonalnemu czyszczeniu w polu magnetycznym czy wielokrotnie nadpisać dane chaotycznymi informacjami. Innymi słowy, wcale nie trzeba niszczyć dysku, by mieć pewność, że ślady po cennych danych nie dostaną się w niepowołane ręce. Inaczej jest w przypadku pamięci flash. Ich skasowanie, nawet kilkukrotne, nie jest jednoznaczne z całkowitym ich usunięciem. By zrozumieć, dlaczego tak się dzieje, należy poznać mechanizmy kasowania danych na dyskach twardych i SSD. Dane na dyskach kasowane są poprzez usunięcie całego bloku danych. Zatem chcąc zmienić tylko jedną literę w nazwie plików, równocześnie musimy nagrać cały blok danych, gdzie zapisana jest o niej informacja. W przypadku tradycyjnego dysku dane są nadpisywane. Ta właściwość pozwala m.in. specjalistycznym programom na odtworzenie danych, których teoretycznie nie ma już na nośniku. Właśnie dlatego, by skutecznie wymazać pozostałe na dysku “magnetyczne” ślady, przeprowadza się operację kilkukrotnego nadpisania nic nieznaczących danych, co niestety jest czasochłonne, ale za to skuteczne.
Inaczej jest z pamięciami NAND flash. Nowe dane mogą być zapisane przez kontroler bezpośrednio tylko do czystych komórek pamięci (takich, jakie są na nowym, nigdy nie używanym dysku). Kontroler zarządza pamięcią flash i jest interfejsem pomiędzy SSD a systemem operacyjnym. Jego zadaniem polega na powiązaniu logicznej struktury danych z ich fizycznym zapisem (LBA, Logical Block Addressing).
Kiedy mają zostać zapisane nowe czy też zmodyfikowane dane na SSD, kontroler zapisuje je w zupełnie nowym miejscu i aktualizuje tylko informację o ich fizycznej lokalizacji. Stara lokalizacja oznaczana jest jako już niezawierająca ważnych danych, ale przed następną operacją zapisu wymagać będzie kasowania. W efekcie dane pozostają na dysku do momentu, kiedy kontroler nie będzie musiał wykasować zajmowanego przez nie obszaru pamięci.
Ten efekt uboczny działania pamięci flash nazywany jest Write Amplification i objawia się także tym, że zapisywane dane mogą być kilkukrotnie przepisywane (przesuwane) pomiędzy blokami pamięci. Zwiększa to liczbę operacji zapisu, która skraca czas pracy SSD. Nie jest to, najprościej mówiąc, zdrowe dla dysku. Ale też nie należy wpadać w panikę. Przykładowo Kingston ocenia czas życia popularnych dysków SSD z serii V/V+ na trzy lata, przy założeniu, że będzie on zapisywał 20 GB każdego dnia roboczego. Jeśli wydaje nam się, że to mało, to firma przedstawiła badania, z których wynika, że tzw. domowy power user statystycznie zapisuje jednorazowo nie więcej niż 10 GB, a i to nie każdego dnia. To jednak nie wszystko. Każda pamięć flash ma większą pojemność niż ta deklarowana przez producenta. Oznacza to, że teoretycznie pusty dysk SSD wciąż może zawierać dane, tyle że nie są one widoczne z poziomu systemu operacyjnego. Fachowiec, korzystając z testowego kontrolera pamięci, będzie mógł je odczytać.
Wykasować bez śladu: To nie takie proste
Jak zatem skutecznie wykasować dane? Z pewnością żadnego bezpieczeństwa nie zapewni przesunięcie danych do Kosza i jego opróżnienie. Ale to nic nowego, bo opisana procedura nie sprawdza się także w przypadku HDD. Tyle że tutaj, korzystając z takich narzędzi jak CCleaner czy Eraser, można systemowi nakazać wyczyszczenie ewentualnych pozostałości po kasowanym pliku poprzez wielokrotne nadpisanie chaotycznych danych w miejscu, gdzie był on fizycznie zapisany na dysku. Można też, jak w CCleanarze, ustawić okresowe czyszczenie wolnej przestrzeni na dysku.
Niestety, wymienione metody, znane z dysków magnetycznych – jak się okazuje – nie są do końca skuteczne w przypadku SSD. Właściwie tylko wykasowanie danych na całym dysku może przynieść oczekiwany rezultat, ale też nie zyskamy w tej kwestii stuprocentowej pewności. W raporcie Reliably Erasing Data From Flash-Based Solid State Drives, zaprezentowanym w 2011 roku na konferencji USENIX Conference on File and Storage Technologies (FAST), możemy przeczytać, że w większości wypadków dwukrotne pełne nadpisanie danych na SSD wystarczy, by całkowicie uniemożliwić odzyskanie pierwotnej zawartości. Ale znalazły się dyski, na których pomimo tego pozostały jakieś dane. Poza tym proces jest bardzo powolny i gdyby był przeprowadzany często, z pewnością skróciłby życie SSD. Usunięcie pojedynczych plików z pamięci flash narzędziami, które świetnie sprawdzają się w przypadku dysków magnetycznych, jest wysoce niepewne.
Z raportu wynika, że najbardziej godną zaufania metodą, jest wykorzystanie komendy Secure Erase zaimplementowanej w interfejsie ATA. Jej działanie polega na wysłaniu odpowiedniej wysokości impulsu napięcia do wszystkich komórek NAND i tym samym wykasowaniu całej pamięci, łącznie z nadmiarowym jej obszarem niewidocznym dla systemu operacyjnego. Z ATA Secure Erase można skorzystać np. w programie Parted Magic czy HDDerase. Wykonanie tej komendy teoretycznie powinno przywrócić dysk do stanu, w jakim był po wyjściu z fabryki. Ta operacja, podobnie jak inne metody całkowitego czyszczenia dysku, przydaje się nie tylko do bezpiecznego wymazania danych, ale też do przywrócenia SSD jego pierwotnej szybkość działania.
Problem w tym, że w przypadku SSD działanie Secure nie zapewnia stuprocentowej skuteczności. Znów w większości przypadków osiągnięto pożądany efekt (8 z 12 SSD), ale w 4 dyskach tak nie było. Co ciekawe, jeden dysk zakomunikował prawidłowe wykonanie komendy, a dane wciąż na nim były. Tam, gdzie komenda ATA nie działała prawidłowo, winna była jej zła implementacja w kontrolerze SSD, a taki błąd w skrajnym przypadku możne skończyć się nawet uszkodzeniem dysku.
Sam musisz zadbać o bezpieczeństwo
Departament Obrony USA uznaje, że dane na tradycyjnych dyskach są już wystarczające dobrze wymazane po siedmiokrotnym ich nadpisaniu przypadkowymi danymi. Inaczej jest z pamięciami flash. Zaakceptowaną przez amerykańską National Security Agency skuteczną metodą usuwania danych z SSD (czy każdej pamięci NAND flash) jest zniszczenie dysku poprzez jego zmielenie. Przy czym największe kawałki, jakie powstaną po zmieleniu, nie mogą być większe niż 2-milimetrowe.
Jednak sprzedając komputer z wbudowanym w płytę główną dyskiem flash, nikt nie będzie go mielił. Dlatego jedynym skutecznym sposobem na zabezpieczenie bieżących danych, jak i skuteczne ich wykasowanie przed sprzedażą dysku czy notebooka jest szyfrowanie całego dysku takimi programami, jak Bitlocker, Truecrytp czy FileValute. Teoretycznie już samo wykasowanie danych zapewnia bezpieczeństwo, bo potencjalny haker nie będzie znał klucza, który pozwoli je odszyfrować. By mieć pewność, przed pozbyciem się dysku warto jeszcze przeprowadzić bezpieczne czyszczenie z wykorzystaniem komendy ATA.
Uwaga!
Okazuje się, że szyfrowanie danych może się użytkownikom także odbić czkawką. Dyski z kontrolerem SandForce firmy LSI wyposażone są w znacznie poprawiającą prędkość pracy technologię DuraWrite, która polega na kompresowaniu w locie danych zapisywanych w pamięci flash. Niestety, jeśli korzystamy z szyfrowania dysku, wszystkie korzyści, jakie mamy odnieś dzięki wspomnianej technologii, znikają. Co prawda wciąż jest szybciej niż w przypadku HDD, ale o demonie prędkości nie może być mowy. Dlatego jeśli chcemy szyfrować dysk, warto poguglać i sprawdzić, jaki nasz SSD ma kontroler.