AES-съвместими WD дискове могат да бъдат декриптирани без въвеждане на парола, компютър

Хардуерното криптиране често се рекламира като най-модерния метод за криптографска защита на данните. Специализираният чип осигурява по-ефективно криптиране в движение поради архитектурни разлики от процесора с общо предназначение. Всяка програма отнема ресурсите на машината, а криптографският чип е самодостатъчен. Обикновено има и собствен генератор на (псевдо)случайни числа и е по-малко зависим от уязвимости във външни компоненти. Дяволът обаче често е в детайлите. Както многократно е показано, за да се постигне високо ниво на сигурност, не е достатъчно да се вземе най-добрият алгоритъм за криптиране и да се внедри в хардуера. Лошо замислената обща криптографска схема може да анулира цялата защита, превръщайки криптиран диск в сейф без задна стена.

дискове

Western Digital произвежда много външни устройства, които се свързват чрез USB 2.0 / 3.0, FireWire или Thunderbolt. Всички те са базирани на HDD със SATA интерфейс, а връзката с различни портове се осъществява чрез използването на мост - отделна платка с контролер, който извършва преобразуване на данните и при необходимост ги дешифрира в движение.

Дори устройствата от една и съща серия могат да бъдат оборудвани с мостове с различни чипове, но общият принцип на работа е еднакъв за всички. Това увеличава съвместимостта, опростява тяхното производство, ремонт и ... хакване. Германският изследователски екип избра шест различни WD устройства с чипове JMicron (JMS538S и JMS569), Symwave (SW6316), PLX Technology (OXUF943SE) и Initio (INIC-1607E и INIC-3608) за експеримента.

Три от тях бяха базирани на архитектурата Intel 8051. Останалите използваха архитектурите Motorola M68k, ARC 600 и ARM v7. Външният интерфейс няма ефект върхуниво на защита, следователно за удобство бяха разгледани модели с USB връзка. Обикновено мостовият чип SATA към USB използва специфични за производителя SCSI команди (VSC) и директно изпълнява процедурата за удостоверяване. Можете да работите с VSC, например, като използвате помощната програма sg_raw на Linux, която е включена в пакета sg3.

root@linux: ̃ /WD# sg_raw −r 1k /dev/sdb [VSC като шестнадесетичен]

В най-новите модели външни устройства на WD мостът е опростен. Сега той просто пренасочва всички данни към SATA контролера, като използва общата команда SECURITY UNLOCK (F2h) за отключване на достъпа. Гледайки напред, отбелязвам, че за всяка опция беше открит собствен набор от уязвимости, допълващи общия сценарий на атака на външни WD дискове.

Както потребителските, така и сервизните данни на WD AES-активирани външни дискове винаги се съхраняват криптирани. В зависимост от модела, криптирането се извършва с ключ с дължина 128 или 256 бита. Той се задава първоначално и се нарича DEK (Data Encryption Key). Този ключ също не се съхранява в чист вид, а е криптиран с помощта на друг - KEK (Key Encryption Key). Това е SHA256 хеш, който се изчислява въз основа на въведената от потребителя парола и допълнителен набор от данни (сол) след хиляда повторения.

Теоретично е необходима рандомизирана сол за защита срещу хеш атаки с помощта на дъгови таблици и хиляда итерации въвеждат достатъчно забавяне в изчисленията, за да направят изчерпателното търсене неефективно. Проблемът с WD устройствата е, че има заобиколни решения за получаване на DEK. Следователно нито сложната парола, нито солта, нито многото повторения при изчисляването на KEK осигуряват правилната му защита.

бъдат
Данните на самото устройство винаги са криптирани с DEK ключа (Изображение: Gunnar Alendal et al.).

Физически криптиран DEK, съхраняван в EEPROM(обикновено това е U8 или U14 чип на отделна платка за WD устройства). В новите модели той се записва в скрит сектор или сервизна зона на диска. Във всеки случай ниската ентропия го издава и винаги започва с определена нотация. Появата му зависи от контролера - например за JMS538S криптираният ключ изглежда като „WDv1xxx…x“. Дешифрираният DEK винаги започва с "DEK1".

Когато включите което и да е устройство с активиран WD AES, неговият контролер се опитва да монтира дисковия дял. За да направи това, той се опитва да го дешифрира с помощта на DEK. Първо трябва да дешифрира самия ключ, за което използва KEK по подразбиране. Ако не е зададена парола, тогава криптографският чип получава дешифрирания DEK без намеса на потребителя и дешифрира съдържанието на диска в движение.

бъдат
Схема за криптиране на данни в WD дискове с помощта на два ключа (Изображение: Gunnar Alendal et al.).

Ако дискът не може да бъде дешифриран, тогава контролерът счита самия DEK за криптиран с потребителска парола, след което стартира интерактивна процедура за генериране на KEK. За да направите това, вместо том с данни, той монтира виртуален диск от флаш памет или сервизна зона. Съдържа програми с графичен интерфейс за въвеждане на парола и това е друг потенциален вектор за атака. Съдържанието на виртуалния диск се съхранява като неподписано ISO изображение. Той може лесно да бъде заменен с произволен код, който ще бъде подаден към автоматичното стартиране според сценария на badUSB атака. Ако на Mac работи като нормален потребител, тогава на Windows работи с администраторски права.