SSD a bezpieczeństwo

Dyski SSD sa super i kazdy, kto sie z nimi zetknal przyznaje to bez wahania. Wprawdzie posiadacze "gramofonów" z silnikiem obracajacym talerzami, nad którymi lata glowica dywaguja nad wyzszoscia SLC nad MLC i odwrotnie, jednak osobiscie uwazam, ze lepszy dowolny SSD w garsci, niz "gramofon" w komputerze i wspaniala wiedza teoretyczna o tym, który SSD ma jakie ograniczenia.

Jedna z cech SSD jest skonczona ilosc zapisów (a tak naprawde wymazan), która zniesie pojedyncza komórka pamieci. W zaleznosci od technologii jest to liczba od kilku tysiecy do wielu milionów. Na pierwszy rzut oka to bardzo malo! Wystarczy wyobrazic sobie jakis fragment danych wewnatrz pagefile. Dane sa odczytywane i zapisywane caly czas. Czyli po stosunkowo niedlugim czasie, w tym miejscu powinna pojawic sie wadliwa komórka (taki nowoczesny odpowiednik bad blocka).

Zeby tak sie nie stalo (czyli zeby dysk padl pare dni po koncu gwarancji a nie pare dni przed), producenci dysków stosuja tak zwany wear leveling. Mechanizm ten w praktyce polega na tym, ze pojemnosc dysku 128GB, tak naprawde wynosi na przyklad 140GB. Okolo 10% komórek pamieci jest nieuzywane i nie sa one wprost dostepne dla uzytkownika. Dzieki takiemu nadmiarowi, operacja typu odczytaj-zmien-zapisz (tak jak to sie moze dziac na przyklad w pagefile albo w dowolnym dokumencie) od srodka wyglada w taki sposób, ze odczyt faktycznie jest, zmiana faktycznie jest, ale zapis dokonywany jest w zupelnie innym miejscu. Co wazne, system dostaje informacje, ze to jest nadal ten sam sektor dysku, tylko sam dysk SSD zapisuje go wewnatrz na innym kawalku krzemu. Dzieki temu, w zupelnie niewidzialny i nieodczuwalny dla uzytkownika sposób, dysk SSD rozrzuca po swojej powierzchni zapisy, przez co ograniczenie ich ilosci jest w praktyce duzo mniej dotkliwe. Co wiecej, dysk SSD potrafi równiez podmieniac dane miedzy blokami, dzieki czemu stosunkowo rzadko zmieniane informacje (na przyklad tony DLLek z system32 czy zawartosc Program Files zamieni sie po jakims czasie miejscem z katalogiem TEMP. W efekcie caly dysk dluzej sluzy i wszyscy sa szczesliwi.

Ciekawiej zaczyna sie robic w sytuacji, gdy ktos ma na dysku troche poufnych danych i zechce dysk zaszyfrowac. Dla ustalenia uwagi, powiedzmy ze przy pomocy mechanizmu BitLocker. Zgodnie z opisem powyzej dzieje sie to tak, ze dane sa odczytywane, szyfrowane w pamieci i zapisywane w zupelnie innym bloku pamieci. I tak sektor po sektorze, po calej logicznej powierzchni dysku.

W przypadku dysków "gramofonowych" sprawa byla prosta. Zapis zaszyfrowanych danych nastepuje dokladnie w tym miejscu, skad zostaly one odczytane. Czyli oryginalne (tajne) dane zostaja nadpisane i odczytanie ich nie jest w praktyce mozliwe. A w przypadku SSD oryginalne dane pozostaja w jawnej postaci. Wprawdzie przemapowane, w prosty sposób niedostepne, ale sa. Moze przy kolejnych operacjach cos je zamaze, a moze nie...?

Nie wydaje mi sie, zeby w praktyce bylo to bardzo powazne zagrozenie ale:

  • Warto sie przez chwile nad tym zastanowic, bo to slabo naglasniany aspekt tak BitLockera jak i SSD
  • Myslac o szyfrowaniu danych, lepiej najpierw szyfrowac dysk a pózniej wgrywac dane niz odwrotnie.

Ot tak na wszelki wypadek...

Autor: Grzegorz Tworek [MVP]