Восстановление информации с самошифрующегося Seagate SED

Диски на технологии SED (self-encrypting disk или self-encrypting drive) всё чаще попадают в нашу лабораторию на восстановление информации, и каждый производитель, будь то WD или Seagate, придумывает для реализации алгоритмов «прозрачного» шифрования данных пользователя что-то своё.

Из Иордании написал мне в Whatsapp владелец местной Data Recovery компании и попросил удалённо через Team Viewer помочь в восстановлении данных с жёсткого диска Seagate модели ST500LM023, семейства YarraX выполненного по технологии SED, снятого с ноутбука Hewlett Packard, который определялся как HP Secure Hard Disk, при попытке чтения секторов пользовательской области отдавал ошибку ABRT, с заблокированным технологическим портом.

Boot 0x40M
SpinUpTime = 000008C4
TTR1 = 000009AD
(P) SATA Reset

RAW OFF

Intel 6G->3G
Send Status: COMRESET seen PASS
TotalSuperBlks 0006E50B TotalValidSuperBlks 0006E460
DSC
(DOS) Debug enabled
 APM disabled by SPort (UART IRQ)
&>
(1Ah)-TCG Serial Port Disabled
&>

Для успешного восстановления данных с такого жёсткого диска критически важно наличие оригинальной платы электроники с не только родным для диска ПЗУ, но и оригинальным микропроцессором (CPU), в котором находятся первичные ключи шифрования.

Попытки разблокировать доступ к технологическому режиму путём модификации кода ПЗУ с применением «Force Setup» несут риски повреждения вторичных ключей шифрования в служебной области диска, поэтому надо либо аппаратно блокировать диску запись при чтении служебной области, либо применять альтернативную методику разблокировки.

В момент когда диск начал смотреть я, технологический режим был уже разблокирован, чтение пользовательской области так же приводило к ошибке, а чтение данных через технологический режим выдавало содержимое 0-го сектора как типичный для наличия шифрования «белый шум».

Запрос технологического отчёта о диске выдавал:

Package Version: YX0593.HPM7.DA0089.0001YXM7
Serial #: W62AXTEV
Changelist: 00946540
Model #: ST500LM023-1RR152                      

YarraX.SATA.Mule.LM94V2.Srv256.RAP22.31Zone.7k2.QNR.SP.HP.Disc
Product FamilyId: 86, MemberId: 01
HDA SN: W62AXTEV, RPM: 7223, Wedges: 100, Heads: 2, OrigHeads: 0, Lbas: 0000074AF5BD, PreampType: D0 07
Bits/Symbol: C, Symbols/UserSector: BE7, Symbols/SystemSector: 195
PCBA SN: 0000K627AADM, Controller: LUXORM94_2_0(FFFF)(FF-FF-FF-FF), Channel: MARVELL_9411 W1+, PowerAsic: MCKINLEY MOBILE PLUS Rev 8C, BufferBytes: 4000000
Package Version: YX0593.HPM7.DA0089.0001YXM7, Package P/N: ---------, Package Global ID: 00080603,
Package Build Date: 10/09/2015, Package Build Time: 18:56:35, Package CFW Version: YX05.HPM7.00946540.00080603,
Package SFW1 Version: 3952, Package SFW2 Version: ----, Package SFW3 Version: ----, Package SFW4 Version: ----
Controller FW Rev: 00890001, CustomerRel: 0001, Changelist: 00946540, ProdType: YX05.HPM7, Date: 10/09/2015, Time: 185635, UserId: 00080603
Servo FW Rev: 3956
TCG IV Version: 2.01
Package BPN: 10
RAP FW Implementation Key: 16, Format Rev: 7502, Contents Rev: 90 05 04 05
QNR Container: 1
Features:
- Quadradic Equation AFH enabled
- VBAR with adjustable zone boundaries enabled
- Volume Based Sparing enabled
- IOEDC enabled
- IOECC enabled
- DERP Read Retries enabled v. 4.0.00.0000000000000000
- LTTC-UDR2 disabled 
- SuperParity 2.5 enabled
   TotalSuperBlks     TotalValidSuperBlks
   0006E50B           0006E460
- PRIZM/ZEST disabled
- Zone Remap disabled
- Rv Control disabled/unavailable
 Internal SavePersistentInfo Triggered
(ConfigChange) SATA Reset

Для решения проблемы пришлось считать все копии ключей шифрования из модулей служебной области и руками собрать корректный id40h из кусков копий резервных модулей.

После восстановления целостности ключей шифрования и рестарта по питанию пользовательская область с данными стала читаться без ошибок, с расшифровкой «на лету» при чтении, самим диском.