Внешние диски WD серии My Passport и My Book рекламируются как надёжный сейф для данных, потому, что делают сквозное шифрование по методу AES. Исследователи из Рурского университета в Бохуме (Германия) изучили их модель безопасности и сочли её несостоятельной. Утечки памяти, не сильный RNG и другие фундаментальные неточности реализации криптозащиты стали причиной тому, что файлы с этих накопителей смогут быть расшифрованы посторонним и независимо от сложности пароля. Сам же внешний диск возможно перевоплощён в орудие преступника, скрыто трудящееся против собственного обладателя.
Аппаратное шифрование довольно часто преподносится как самый совершенный способ криптографической защиты данных. Специальный чип снабжает более действенное шифрование на лету за счёт архитектурных отличий от процессора неспециализированного назначения. Каждая программа отнимает машинные ресурсы, а криптографический чип самодостаточен. В большинстве случаев он кроме этого имеет личный генератор (псевдо)случайных чисел и меньше зависит от уязвимостей внешних компонентов. Но сатана довольно часто кроется в подробностях. Как уже много раз было продемонстрировано, с целью достижения большого уровня безопасности мало забрать лучший метод шифрования и воплотить его в железе. Непродуманность неспециализированной криптографической схемы может свести на нет всю защиту, перевоплотив зашифрованный диск в сейф без задней стены.
Компания 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, входящей в пакет sg3.
root@linux: ? /WD# sg_raw ?r 1k /dev/sdb [VSC as hex]
В последних моделях внешних дисков 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».
До тех пор пока пароль не задан, на диске употребляется предустановленное и не всегда корректно обрабатываемое значение KEK. При анализе фабричных настроек авторы узнали, что во многих моделях накопителей эти значения хеш-функций были сгенерированы всего лишь на базе даты производства, а «соль» представляет собой не псевдослучайный комплект данных, а очевидную сокращение «WDC». Более того, из-за программной неточности кое-какие диски используют изначальное значение KEK вместо того, дабы сгенерировать новое на базе пароля. Замена KEK у них происходит лишь при второй смене пароля – достаточно редкая обстановка в настоящем сценарии.
При подключении любого накопителя WD с помощью AES его контроллер пробует смонтировать дисковый раздел. Для этого он пробует расшифровать его посредством на данный момент. Сперва ему требуется расшифровать сам ключ, для чего он применяет заданный по умолчанию KEK. В случае если пароль не был задан, то криптографический чип приобретает расшифрованный DEK без вмешательства пользователя и дешифрует содержимое диска на лету.
Схема шифрования данных в дисках WD с применением двух ключей (изображение: Gunnar Alendal et al.).
В случае если же расшифровать диск не удаётся, то контроллер вычисляет сам DEK зашифрованным посредством пользовательского пароля, по окончании чего запускает интерактивную процедуру генерирования KEK. Для этого вместо тома с данными он монтирует из флеш-памяти либо служебной области виртуальный диск. На нём записаны программы с графическим интерфейсом для ввода пароля, и это ещё один потенциальный вектор атаки. Содержимое виртуального диска хранится в виде образа ISO без цифровой подписи. Он легко возможно подменён произвольным кодом, что будет скормлен на автозапуск по сценарию атаки badUSB. В случае если на Mac он выполняется с правами простого пользователя, то в среде Windows запускается с правами администратора.
В отдельных моделях были распознаны дополнительные уязвимости на уровне контроллера, генератора случайных обработки и чисел мостом служебных команд. Механизм их реализации разрешает собрать часть материала для генерирования ключей и на порядки сократить время взлома. Самым не сильный с позиций криптографии был контроллер INIC-3608. Он не активизирует вычисления AES и делает примитивную авторизацию только сравнивая ключи. Наряду с этим копия KEK хранится в открытом виде.
За время опытов авторам удалось расшифровать DEK и эти на всех моделях внешних накопителей различными способами. Подробный отчёт количеством 36 страниц размещён ими в свободном доступе.