Оглавление |
---|
Информация |
---|
В данной статье рассматривается использование так называемых "дисков с самошифрованием" и связанные с этим вопросы идентификации пользователей для предоставления доступа к данным. |
Предупреждение |
---|
В данной статье рассматривается использование так называемых "дисков с самошифрованием" и связанные с этим вопросы идентификации пользователей для предоставления доступа к данным. Описанные в данной статье решения не являются сертифицированными решениями для защиты конфиденциальных данных, подвержены уязвимостям и могут обладать недокументированными возможностями, позволяющими получать несанкционированный доступ к данным. Чтобы не вводить читателей в заблуждение, в данной статье по возможности не употребляется термин "шифрование", а если исключить этот термин не представляется возможным, то употребляется исключительно в смысле "защитное преобразование данных". |
Информация |
---|
Данная статья применима к:
|
Накопители данных с "самошифрованием"
Аппаратное защитное преобразование данных на накопителях данных ("самошифруемый диск", в английской литературе применяются термины FDE, Full-Drive Encription или Self-Encrypting Drive, SED, являющиеся синонимами) предоставляется сейчас многими производителями накопителей данных, и позиционируется как общее решение для защиты данных от несанкционированного доступа, в том числе и данных, хранящихся на твердотельных накопителях. В таких устройствах защитное преобразование данных выполняется специализированными встроенными в контроллер устройства микросхемами "на лету", и все данные на устройстве хранятся преобразованном виде.
Декларируются следующие возможности таких устройств:
- использование устойчивых к взлому алгоритмов преобразования AES 128 бит / AES 256 бит;
- невозможность извлечение ключей шифрования из устройства;
- возможность мгновенного "удаления" всех хранящихся данных простой заменой внутреннего ключа, после чего все данные становтся не подлежащими восстановлению;
Предупреждение |
---|
Наличие всех или некоторых их этих возможностей зависит от производителя и конкретной модели, технические детали обычно не раскрываются, сертификация и проверка недокументированных возможностей не проводится. |
Для разграничения доступа к данным, хранящимся на таких накопителях, требуется использовать механизмы идентификации пользователей. Для этого применяются два основных решения:
- ATA Security - встроенная болкировка/деблокировка накопителя с помощью задаваемого пользователем пароля, передаваемого через команды интерфейса ATA. Поддерживается большинством накопителей, и никак не привязана к наличию или отсутствию в накопителе встроенного преобразования данных;
- TCG OPAL - решение , предусматривающее установку на накопитель предзагрузочного ПО, запускающегося при первом включении устройства для инициализации параметров безопасности, и, далее, при каждом включении устройства, для идентификации пользователя и разблокировки устройства;
Предупреждение |
---|
Данные технологии идентификации несовместимы с режимами пониженного энергопотребления компьютеров, при которых обесточиваются подключенные периферийные устройства (S3 («Suspend to RAM» (STR) в BIOS, «Ждущий режим» («Standby») ). |
АTA Security
Установка ПО и проверка соответствия оборудования
Для проверки параметров накопителя выполняется инструментом командной строки hdparm, входящим в пакет hdparm. Пакет доступен в дистрибутиве/репозитории ОС ОН Орёл 2.12 и в дистрибутивах ОС СН Смоленск 1.6 и ОС СН Ленинград 8.1.
Установить пакет можно их графического менеджера пакетов или из командной строки
Command |
---|
sudo apt install hdparm |
Подробные параметры накопителя выводятся командой (пример для накопителя /dev/sda):
Command |
---|
sudo hdparm -I /dev/sda |
Пример полного вывода команды:
Раскрыть |
---|
|
Информация о поддерживаемых параметрах безопасности ATA Security содержится в секции "Security":
Информация |
---|
.... |
В приведённом примере указано, что поддерживается защита по парольному доступу ("Master password ... suported"), которая на момент регистрации параметров накопителя отключена ("not enabled").
Установка пароля
Предупреждение |
---|
При установке пароля следует помнить, что:
|
Установка пользовательского пароля выполняется командой (в примере - установка пароля 12345678 на устройство /dev/sdb) :
Command |
---|
sudo hdparm --user-master u --security-set-pass 12345678 /dev/sdb |
Разблокировка
После подключения диска разблокировка диска (действующая до следующего отключения питания) осуществляется командой (для примера используется пароль 12345678):
Command |
---|
sudo hdparm --user-master u --security-unlock 12345678 /dev/sdb |
Отключение блокировки
Полностью отключить блокировку можно командой:
Command |
---|
sudo hdparm --user-master u --security-disable 12345678 /dev/sdb |
Предупреждение | ||
---|---|---|
| ||
Рассметриваемое Рассматриваемое ПО предполагает, что всегда используется стандартная клавиатура us_english. Это может привести к проблемам при использовании друших раскладок клавиатуры. |
Подготовка загрузочной системы
Скачать образ загрузочной системы: для BIOS и для 64bit UEFI.
Это можно сделать командами
Command |
---|
wget https://github.com/Drive-Trust-Alliance/exec/blob/master/RESCUE32.img.gz?raw=true |
или
Command |
---|
wget https://github.com/Drive-Trust-Alliance/exec/blob/master/RESCUE64.img.gz?raw=true |
Информация |
---|
Для использования UEFI необходимо отключить Secure Boot. |
Распаковать скачанные файлы:
Command |
---|
gunzip RESCUE32.img.gz |
или
Command |
---|
gunzip RESCUE64.img.gz |
Подключить USB-накопитель и скопировать на него распакованный образ на USB-накопитель, указав название устройства:
Command |
---|
dd if=RESCUE32.img of=/dev/sd? |
или
Command |
---|
dd if=RESCUE64.img of=/dev/sd? |
Перезагрузить компьютер с созданного накопителя.
После появления приглашения Login ввести "root" без пароля.
Информация |
---|
Все дальнейшие шаги выполняются во временной системе |
Проверка накопителей
Ввести команду
Информация |
---|
sedutil-cli --scan |
Предполагаемый вывод команды:
Информация |
---|
|
Наличие цифры 2 во второй колонке указывает на то, что накопитель поддерживает OPAL 2, и с ним можно работать.
Предупреждение |
---|
Применение дальнейших инструкций к накопителям, не поддерживающим OPAL2, может привести к потере хранящихся на них данных. |
Проверка предзагрузочной авторизации (PBA)
Используем команду linuxpba с паролем debug.
Предупреждение |
---|
При использовании иного пароля система перезагрузится. |
Пример вывода команды:
Информация |
---|
#linuxpba
|
Убедитесь, что ваш накопитель представлен в списке и отмечен как "is OPAL".
Информация |
---|
Далее описаны действия по включению блокировки OPAL. В случае возникновения проблемы используйте инструкции из раздела "Восттановление информации" для отключения или удаления блокировки. |
Далее в примерах предполагается использовани накопителя /dev/sdc и образа UEFI64-1.15.img.gz
Для использования в вашей системе укажите правильное устройство /dev/sd? и правильный образ.
Включение блокировки и предзагрузочной авторизации
Введите следующие команды (для теста используется пароль debug, который будет изменён позднее):
Command |
---|
sedutil-cli --initialsetup debug /dev/sdc |
Пример выполнения:
Информация |
---|
#sedutil-cli --initialsetup debug /dev/sdc #sedutil-cli --enablelockingrange 0 debug /dev/sdc #sedutil-cli --setlockingrange 0 lk debug /dev/sdc #sedutil-cli --setmbrdone off debug /dev/sdc #gunzip /usr/sedutil/UEFI64-1.15.img.gz #sedutil-cli --loadpbaimage debug /usr/sedutil/UEFI64-1.15.img /dev/sdc # |
Повторная проверка PBA
Повторная проверка позволяет убедиться, что накопитель действительно разблокирован.
Для проверки используется команда и пароль debug. Предполагаемый результат:
Информация |
---|
#linuxpba DTA LINUX Pre Boot Authorization Please enter pass-phrase to unlock OPAL drives: ***** Scanning.... Drive /dev/nvme0 Samsung SSD 960 EVO 250GB is OPAL NOT LOCKED Drive /dev/sda Crucial_CT250MX200SSD1 is OPAL NOT LOCKED Drive /dev/sdb Samsung SSD 850 EVO 500GB is OPAL NOT LOCKED Drive /dev/sdc ST500LT025-1DH142 is OPAL Unlocked <---Важно!!! Drive /dev/sdd Samsung SSD 850 EVO 250GB is OPAL NOT LOCKED |
Убедитесь, что накопитель действилельно разблокировн (помечен как "is OPAL Unlocked").
Если накопитель не разблокирован, то перейдите к процедуре разблокировки и отключения OPAL.
Установка реальных паролей
В примере используются одинаковые пароли SID и Admin1, хотя он не обязательно должны совпадать.
Команды для установки паролей:
Command |
---|
sedutil-cli --setsidpassword debug yourrealpassword /dev/sdc |
Примерный диалог:
Информация |
---|
#sedutil-cli --setsidpassword debug yourrealpassword /dev/sdc #sedutil-cli --setadmin1pwd debug yourrealpassword /dev/sdc - 14:20:53.352 INFO: Admin1 password changed |
Проверьте правильность паролей командой:
Command |
---|
sedutil-cli --setmbrdone on yourrealpassword /dev/sdc |
Примерный диалог
Информация |
---|
#sedutil-cli --setmbrdone on yourrealpassword /dev/sdc |
Следующим шагом следует отключить и полностью обесточить систему.
Это заблокирует накопитель и переведёт его в режим загрузки PBA (предзагрузочной авторизации) при включении.
Восстановление информации
В случае возникновения проблем можно отключить блокировку или полностью удалить OPAL для дальнейшего использования накопителя без блокировки.
Отключение блокировки и предзагрузочной авторизации:
Command |
---|
sedutil-cli -–disableLockingRange 0 <password> <drive> sedutil-cli –-setMBREnable off <password> <drive> |
Примерный диалог:
Информация |
---|
#sedutil-cli --disablelockingrange 0 debug /dev/sdc - 14:07:24.914 INFO: LockingRange0 disabled #sedutil-cli --setmbrenable off debug /dev/sdc - 14:08:21.999 INFO: MBREnable set off |
Восстановление блокировки и предзагрузочной авторизации
Command |
---|
|
Примерный диалог:
Информация |
---|
#sedutil-cli --enablelockingrange 0 debug /dev/sdc - 14:07:24.914 INFO: LockingRange0 enabled ReadLocking,WriteLocking #sedutil-cli --setmbrenable on debug /dev/sdc - 14:08:21.999 INFO: MBREnable set on |
Полное удаление OPAL
Предупреждение |
---|
Некоторые накопители OPALимеют ошибку во встроенном ПО, ведущую к уничтожению данных при выполненнии следующих команд. Список проверенных накопителей, не подверженных этой ошибке доступен по ссылке. |
Информация |
---|
|
Примерный диалог:
Информация |
---|
#sedutil-cli --revertnoerase debug /dev/sdc - 14:22:47.060 INFO: Revert LockingSP complete #sedutil-cli --reverttper debug /dev/sdc - 14:23:13.968 INFO: revertTper completed successfully # |
Уязвимости
Уязвимость "сохранение питания"
Типичный самозащищенный накопитель, будучи однажды разблокированным, остаётся разблокированным пока на него подается электропитание. Таким образом, при условии сохранении питания, накопитель может быть перенесен куда угодно, оставаясь в разблокированном состоянии. Например, было показано, что при некоторых условиях компьютер может быть перезагружен с запуском другой операционной системы, также демонстрировался перенос накопителя на другой компьютер без отключения питания.
Скомпрометированное встроенное ПО
Встроенное программное обеспечение накопителя может иметь недокументированные возможности, позволяющие получать несанкционированный доступ к данным, а применяемые алгоритмы защитного преобразования остаются на усмотрение производителей.
См. например исследование уязвимостей накопителей.