SSD a bezpieczeństwo

SSD a bezpieczeństwo

  • Comments 3
  • Likes

Dyski SSD są super i każdy, kto się z nimi zetknął przyznaje to bez wahania. Wprawdzie posiadacze "gramofonów" z silnikiem obracającym talerzami, nad którymi lata głowica dywagują nad wyższością SLC nad MLC i odwrotnie, jednak osobiście uważam, że lepszy dowolny SSD w garści, niż "gramofon" w komputerze i wspaniała wiedza teoretyczna o tym, który SSD ma jakie ograniczenia.

Jedną z cech SSD jest skończona ilość zapisów (a tak naprawdę wymazań), którą zniesie pojedyncza komórka pamięci. W zależności od technologii jest to liczba od kilku tysięcy do wielu milionów. Na pierwszy rzut oka to bardzo mało! Wystarczy wyobrazić sobie jakiś fragment danych wewnątrz pagefile. Dane są odczytywane i zapisywane cały czas. Czyli po stosunkowo niedługim czasie, w tym miejscu powinna pojawić się wadliwa komórka (taki nowoczesny odpowiednik bad blocka).

Żeby tak się nie stało (czyli żeby dysk padł parę dni po końcu gwarancji a nie parę dni przed), producenci dysków stosują tak zwany wear leveling. Mechanizm ten w praktyce polega na tym, że pojemność dysku 128GB, tak naprawdę wynosi na przykład 140GB. Około 10% komórek pamięci jest nieużywane i nie są one wprost dostępne dla użytkownika. Dzięki takiemu nadmiarowi, operacja typu odczytaj-zmień-zapisz (tak jak to się może dziać na przykład w pagefile albo w dowolnym dokumencie) od środka wygląda w taki sposób, że odczyt faktycznie jest, zmiana faktycznie jest, ale zapis dokonywany jest w zupełnie innym miejscu. Co ważne, system dostaje informację, że to jest nadal ten sam sektor dysku, tylko sam dysk SSD zapisuje go wewnątrz na innym kawałku krzemu. Dzięki temu, w zupełnie niewidzialny i nieodczuwalny dla użytkownika sposób, dysk SSD rozrzuca po swojej powierzchni zapisy, przez co ograniczenie ich ilości jest w praktyce dużo mniej dotkliwe. Co więcej, dysk SSD potrafi również podmieniać dane między blokami, dzięki czemu stosunkowo rzadko zmieniane informacje (na przykład tony DLLek z system32 czy zawartość Program Files zamieni się po jakimś czasie miejscem z katalogiem TEMP. W efekcie cały dysk dłużej służy i wszyscy są szczęśliwi.

Ciekawiej zaczyna się robić w sytuacji, gdy ktoś ma na dysku trochę poufnych danych i zechce dysk zaszyfrować. Dla ustalenia uwagi, powiedzmy że przy pomocy mechanizmu BitLocker. Zgodnie z opisem powyżej dzieje się to tak, że dane są odczytywane, szyfrowane w pamięci i zapisywane w zupełnie innym bloku pamięci. I tak sektor po sektorze, po całej logicznej powierzchni dysku.

W przypadku dysków "gramofonowych" sprawa była prosta. Zapis zaszyfrowanych danych następuje dokładnie w tym miejscu, skąd zostały one odczytane. Czyli oryginalne (tajne) dane zostają nadpisane i odczytanie ich nie jest w praktyce możliwe. A w przypadku SSD oryginalne dane pozostają w jawnej postaci. Wprawdzie przemapowane, w prosty sposób niedostępne, ale są. Może przy kolejnych operacjach coś je zamaże, a może nie...?

Nie wydaje mi się, żeby w praktyce było to bardzo poważne zagrożenie ale:

  • Warto się przez chwilę nad tym zastanowić, bo to słabo nagłaśniany aspekt tak BitLockera jak i SSD
  • Myśląc o szyfrowaniu danych, lepiej najpierw szyfrować dysk a później wgrywać dane niż odwrotnie.

Ot tak na wszelki wypadek...

Autor: Grzegorz Tworek [MVP]

Comments
  • (: Takie rodzynki zdarzają się dość często,  spora część programów szyfrujących działa podobnie.

    Na szczęście MS napisał o tym  w technecie :

    Encrypt drives prior to writing data to them when possible.

    Some wear-leveling algorithms used by flash-based memory drives could expose data stored in plaintext. Encrypting the drive prior to writing data to it ensures data is never stored in plaintext.

    Szkoda, że zwykli użytkownicy (bardzo często) nie mają o tym poj��cia:)

  • Dzieki za ten artykul, bardzo ciekawe informacje o SSD, o ktorych nie mialem pojecia.

  • bardzo fajny art.

    wczesniej nie interesowałem się dyskami SSD ale teraz chyba trochę poczytam o tej technologi wear-leveling

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment