Възстановяването на данни от съвременен SSD вече няма почти нищо общо с възстановяването на данни от по-старите поколения флаш устройства.
Днес между потребителските данни и самата NAND памет съществуват множество сложни технологични слоеве – контролер, FTL, ECC/LDPC, scrambling, wear leveling, garbage collection, вътрешна организация на NAND паметта и при много съвременни SSD – хардуерно криптиране.
Това е една от основните причини професионалното SSD възстановяване да изисква специализирани знания, апаратура и опит.
Данните в NAND паметта вече не са това, което компютърът вижда
Когато записваме файл на SSD, операционната система работи с логически адреси – LBA.
Но този логически адрес не съответства директно на физическо място в NAND паметта.
SSD контролерът използва специален слой – Flash Translation Layer (FTL) – който управлява преобразуването между логическите адреси и физическото разположение на данните.
В същото време контролерът извършва:
- wear leveling;
- bad block management;
- garbage collection;
- ECC/LDPC корекция;
- NAND interleaving;
- scrambling;
- управление на свободното пространство;
- управление на metadata;
- logical-to-physical mapping.
В резултат на това един файл, който за операционната система изглежда като последователна поредица от блокове, физически може да бъде разпределен на множество различни места в NAND паметта.
И тогава идва криптирането
При много съвременни SSD контролерът извършва хардуерно криптиране на данните преди те да бъдат записани в NAND.
Схематично процесът изглежда така:
Компютър → SSD контролер → криптографски engine → FTL/ECC → NAND
При четене:
NAND → ECC/FTL → криптографски engine → SSD контролер → компютър
Това означава, че в NAND паметта може да се намира не оригиналната информация, а криптираната версия на тази информация.
При Self-Encrypting Drive (SED) криптирането се извършва вътре в устройството и е прозрачно за операционната система.
Къде се намира криптиращият ключ?
Това е критичният момент при възстановяването.
При определени съвременни SSD архитектури ключът за криптиране е свързан с оригиналния контролер или със защитена хардуерна среда в него.
Това означава, че NAND чиповете сами по себе си не съдържат всичко необходимо за декриптиране на информацията.
При повреден контролер може да се окаже, че физически разполагаме с напълно здрави NAND чипове, но нямаме необходимия криптографски контекст, с който да превърнем съдържанието им обратно в оригиналните данни.
Именно затова при хардуерно криптирани SSD възстановяването често започва с възстановяване на оригиналния контролер, а не със сваляне на NAND чиповете.
Защо chip-off вече не е универсално решение?
Chip-off recovery представлява физическо сваляне на NAND паметта от платката и директното ѝ прочитане със специализирана апаратура.
При подходящи по-стари или некриптирани устройства този метод може да бъде много полезен.
Но ако съвременният SSD криптира данните преди запис в NAND, при chip-off се получава:
NAND → криптирани данни
а не:
NAND → оригинални файлове
Самото прочитане на чиповете не премахва криптирането.
При хардуерно криптиран SSD raw NAND dump може да съдържа само криптирана информация, която без необходимия ключ е практически безполезна за възстановяване на файловете.
Затова при такива устройства chip-off не решава проблема с повредения контролер.
Но дори без криптиране chip-off не е лесна задача
Това е другото важно уточнение.
Дори при SSD, който не използва хардуерно криптиране, суровият NAND dump не е готов образ на диска.
NAND паметта има собствена сложна организация:
Package → Die → Plane → Block → Page
а контролерът допълнително управлява физическото разпределение на страниците и блоковете. Необходимо е да се възстановят и интерпретират структури като:
- FTL;
- logical-to-physical mapping;
- ECC;
- LDPC;
- scrambling;
- page structure;
- spare/OOB области;
- interleaving;
- bad block information;
- metadata.
Затова суровият dump може да изглежда като огромно количество информация, но от него не следва автоматично възможността да се получи един работещ файл.
FTL – картата на физическата памет
Една от най-важните части на SSD контролера е Flash Translation Layer. Той поддържа връзката между:
LBA → физическо NAND местоположение
Без правилното възстановяване на тази транслация е възможно да имаме всички NAND чипове, но да не знаем кои физически страници съответстват на конкретните логически блокове.
Това е особено сложно заради wear leveling.
Един логически блок може първоначално да бъде записан на едно място, а впоследствие контролерът да го премести на друго.
Старото физическо място може да остане временно в NAND, докато новото стане актуалната версия.
Следователно възстановяването трябва да разбере коя физическа информация е актуална и как тя се свързва с логическите адреси.
ECC и LDPC – защо суровите NAND данни не са готови за четене
NAND паметта има физически ограничения и подлежи на грешки.
Затова SSD контролерите използват сложни механизми за error correction.
При съвременните NAND технологии широко се използват LDPC-базирани механизми. Контролерът използва тази информация, за да възстанови правилните данни при четене.
При директно четене на NAND без оригиналния контролер трябва да се разбере как конкретният контролер е организирал ECC информацията, spare областите, scrambling и останалите служебни данни.
Това е една от причините два SSD модела с NAND памет от сходен тип да могат да изискват напълно различен подход при chip-off възстановяване.
Scrambling – още един слой
SSD контролерите използват и scrambling на данните. Това не трябва да се бърка с криптиране.
Scrambling е предназначен основно за правилното поведение на NAND паметта и контролера и променя начина, по който битовете се разпределят физически.
При възстановяване от raw NAND трябва да бъде известен конкретният scrambling алгоритъм и начинът, по който той е приложен.
Това добавя още един слой между:
физическите NAND клетки
и
файла, който потребителят иска да получи.
Криптирането променя напълно ситуацията
При scrambling и ECC има възможност специалистът да реконструира съответните алгоритми и структури, ако те са известни или могат да бъдат анализирани.
При силно хардуерно криптиране ситуацията е принципно различна.
Тогава вече имаме криптографска защита, която не може просто да бъде „изчислена обратно“ чрез анализ на NAND dump.
Ако необходимият ключ е недостъпен, наличието на физическите NAND чипове не е достатъчно.
Точно поради тази причина при някои съвременни SSD първостепенната задача е да бъде възстановена работоспособността на оригиналния контролер и неговата криптографска среда.
Защо донорен контролер също не решава проблема?
На пръв поглед изглежда логично:
„Ще намерим същия SSD, ще свалим неговия контролер и ще го поставим на повредения.“
Но при съвременните хардуерно криптирани SSD това често не работи.
Контролерът-донор може да е абсолютно същият модел, но да бъде друг физически чип с различен хардуерен криптографски контекст.
Следователно замяната на контролера не означава автоматично възстановяване на ключа на оригиналния SSD.
Затова при такива случаи се търси начин да бъде възстановен оригиналният контролер, а не просто да бъде заменен с друг.
Най-голямата грешка – „ще пробваме chip-off“
При важни данни това може да бъде много лош подход.
Ако SSD използва хардуерно криптиране, chip-off може да не доведе до никакъв полезен резултат.
Освен това свалянето на NAND чиповете е физическа намеса в устройството и може да усложни последващата работа.
При някои SSD най-ценната част от носителя не е само NAND паметта, а оригиналният контролер, неговият firmware, вътрешните структури и криптографската среда.
Съвременното SSD recovery е реконструкция, а не просто „четене на памет“
При един съвременен SSD можем условно да представим процеса така:
Файл
↓
Файлова система
↓
LBA
↓
FTL / Logical-to-Physical Mapping
↓
ECC / LDPC / Scrambling
↓
Encryption
↓
NAND
При възстановяване трябва да се премине обратно през тези слоеве.
А ако някой от тях е недостъпен, физическото наличие на NAND чиповете само по себе си не решава проблема.
Затова са необходими знания и специализирана апаратура
Професионалното възстановяване на данни от съвременен SSD изисква познания по:
- NAND архитектура;
- SSD контролери;
- firmware;
- FTL;
- logical-to-physical translation;
- ECC/LDPC;
- scrambling;
- garbage collection;
- wear leveling;
- хардуерно криптиране;
- управление на криптографски ключове;
- конкретните архитектури на различните производители.
Необходима е и специализирана апаратура за диагностика и работа на ниво платка, контролер и NAND.
И най-важното – необходимо е правилно да се определи подходът преди да бъде извършена физическа намеса.
Chip-off не е мъртъв – но вече не е универсален
Важно е да се направи едно уточнение.
Не е правилно да се твърди, че chip-off recovery е абсолютно невъзможно при всички съвременни SSD.
Има устройства и контролери, при които криптирането не е активно или конкретната архитектура позволява извличане и реконструкция на NAND данните.
Но при SSD с активна хардуерна криптография chip-off не може да замести оригиналния контролер, защото прочетената NAND информация остава криптирана.
Затова правилното твърдение е:
Chip-off възстановяването вече не е универсален метод за съвременните SSD и при хардуерно криптирани устройства може да бъде практически безполезно без оригиналния контролер и неговата криптографска среда.
Възстановяването на данни вече означава да разбереш как SSD-то разбира собствената си памет
Днес не е достатъчно да достигнем физически до NAND чиповете.
Трябва да можем да възстановим логиката, която превръща физическите NAND клетки в информацията, която потребителят вижда като файлове.
А когато към FTL, ECC, scrambling и сложната вътрешна организация се добави и хардуерно криптиране, задачата става още по-сложна.
Затова при повреден съвременен SSD най-ценният ресурс често не е самата NAND памет, а възможността да бъде възстановен оригиналният контролер и целият механизъм, чрез който той превръща физическата памет обратно в достъпни данни.





