В данной статье рассматривается использование так называемых "дисков с самошифрованием" и связанные с этим вопросы идентификации пользователей для предоставления доступа к данным.
В данной статье рассматривается использование так называемых "дисков с самошифрованием" и связанные с этим вопросы идентификации пользователей для предоставления доступа к данным.
Описанные в данной статье решения не являются сертифицированными решениями для защиты конфиденциальных данных, подвержены уязвимостям и могут обладать недокументированными возможностями, позволяющими получать несанкционированный доступ к данным.
Чтобы не вводить читателей в заблуждение, в данной статье по возможности не употребляется термин "шифрование", а если исключить этот термин не представляется возможным, то употребляется исключительно в смысле "защитное преобразование данных".
Данная статья применима к:
- ОС ОН Орёл 2.12
- ОС СН Смоленск 1.6
- ОС СН Смоленс 8.1 (в части ATA Security)
Накопители данных с "самошифрованием"
Аппаратное защитное преобразование данных на накопителях данных ("самошифруемый диск", в английской литературе применяются термины 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.
Установить пакет можно их графического менеджера пакетов или из командной строки
Информация о поддерживаемых параметрах безопасности ATA Security содержится в секции "Security":
...
Security:
Master password revision code = 65534
supported
not enabled
not locked
frozen
not expired: security count
not supported: enhanced erase
156min for SECURITY ERASE UNIT.
....
В приведённом примере указано, что поддерживается защита по парольному доступу ("Master password ... suported"), которая на момент регистрации параметров накопителя отключена ("not enabled").
Установка пароля
При установке пароля следует помнить, что:
- На устройствах, подключенных через USB, снятие пароля может не работать;
- При загрузке компьютера некоторые BIOS-ы и/или операционные системы выдают всем подключенным дискам команды, запрещающие изменение параметров безопасности (до момента перезапуска по питанию).
Поэтому для снятия пароля может понадобиться "горячее" подключение диска к уже загруженному компьютеру;
Установка пользовательского пароля выполняется командой (в примере - установка пароля 12345678 на устройство /dev/sdb) :
Разблокировка
После подключения диска разблокировка диска (действующая до следующего отключения питания) осуществляется командой (для примера используется пароль 12345678):
Отключение блокировки
Полностью отключить блокировку можно командой:
Для пользователей с нестандартными клавиатурами
Рассматриваемое ПО предполагает, что всегда используется стандартная клавиатура us_english. Это может привести к проблемам при использовании друших раскладок клавиатуры.
Для того, чтобы убедиться, что пароль распознаётся правильно, рекомендуется настраивать диск с использованием загрузки временно системы как описано далее.
Подготовка загрузочной системы
Скачать образ загрузочной системы: для BIOS и для 64bit UEFI.
Это можно сделать командами
Для использования UEFI необходимо отключить Secure Boot.
Распаковать скачанные файлы:
После появления приглашения Login ввести "root" без пароля.
Все дальнейшие шаги выполняются во временной системе
Проверка накопителей
Ввести команду
sedutil-cli --scan
Предполагаемый вывод команды:
#sedutil-cli --scan
Scanning for Opal compliant disks
/dev/nvme0 2 Samsung SSD 960 EVO 250GB 2B7QCXE7
/dev/sda 2 Crucial_CT250MX200SSD1 MU04
/dev/sdb 12 Samsung SSD 850 EVO 500GB EMT01B6Q
/dev/sdc 2 ST500LT025-1DH142 0001SDM7
/dev/sdd 12 Samsung SSD 850 EVO 250GB EMT01B6Q
No more disks present ending scan
Наличие цифры 2 во второй колонке указывает на то, что накопитель поддерживает OPAL 2, и что с ним можно выполнять дальнейшие действия.
Применение дальнейших инструкций к накопителям, не поддерживающим OPAL2, может привести к потере хранящихся на них данных.
Проверка предзагрузочной авторизации (PBA)
Используем команду linuxpba с паролем 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 NOT LOCKED
Drive /dev/sdd Samsung SSD 850 EVO 250GB is OPAL NOT LOCKED
Убедитесь, что ваш накопитель представлен в списке и отмечен как "is OPAL".
Далее описаны действия по включению блокировки OPAL.
В случае возникновения проблемы используйте инструкции из раздела "Восстановление информации" для отключения или удаления блокировки.
Далее в примерах предполагается использовани накопителя /dev/sdc и образа UEFI64-1.15.img.gz
Для использования в вашей системе укажите правильное устройство /dev/sd? и правильный образ.
Включение блокировки и предзагрузочной авторизации
Введите следующие команды (для теста используется пароль debug, который будет изменён позднее):
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-n.nn.img
# Укажите правильное имя диска
sedutil-cli --loadpbaimage debug /usr/sedutil/UEFI64-n.nn.img /dev/sdc
#sedutil-cli --initialsetup debug /dev/sdc
- 14:06:39.709 INFO: takeOwnership complete
- 14:06:41.703 INFO: Locking SP Activate Complete
- 14:06:42.317 INFO: LockingRange0 disabled
- 14:06:42.694 INFO: LockingRange0 set to RW
- 14:06:43.171 INFO: MBRDone set on
- 14:06:43.515 INFO: MBRDone set on
- 14:06:43.904 INFO: MBREnable set on
- 14:06:43.904 INFO: Initial setup of TPer complete on /dev/sdc
#sedutil-cli --enablelockingrange 0 debug /dev/sdc
- 14:07:24.914 INFO: LockingRange0 enabled ReadLocking,WriteLocking
#sedutil-cli --setlockingrange 0 lk debug /dev/sdc
- 14:07:46.728 INFO: LockingRange0 set to LK
#sedutil-cli --setmbrdone off debug /dev/sdc
- 14:08:21.999 INFO: MBRDone set off
#gunzip /usr/sedutil/UEFI64-1.15.img.gz
#sedutil-cli --loadpbaimage debug /usr/sedutil/UEFI64-1.15.img /dev/sdc
- 14:10:55.328 INFO: Writing PBA to /dev/sdc 33554432 of 33554432 100% blk=1500 - 14:14:04.499 INFO: PBA image /usr/sedutil/UEFI64.img written to /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, хотя он не обязательно должны совпадать.
Команды для установки паролей:
sedutil-cli --setadmin1pwd 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
Проверьте правильность паролей командой:
#sedutil-cli --setmbrdone on yourrealpassword /dev/sdc
- 14:22:21.590 INFO: MBRDone set on Your drive in now using OPAL locking.
Следующим шагом следует отключить и полностью обесточить систему.
Это заблокирует накопитель и переведёт его в режим загрузки PBA (предзагрузочной авторизации) при включении.
Восстановление информации
В случае возникновения проблем можно отключить блокировку или полностью удалить OPAL для дальнейшего использования накопителя без блокировки.
Отключение блокировки и предзагрузочной авторизации
sedutil-cli –-setMBREnable off <password> <drive>
- 14:07:24.914 INFO: LockingRange0 disabled
#sedutil-cli --setmbrenable off debug /dev/sdc
- 14:08:21.999 INFO: MBREnable set off
Восстановление блокировки и предзагрузочной авторизации
sedutil-cli -–enableLockingRange 0 <password> <drive>
sedutil-cli –-setMBREnable on <password> <drive>
- 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 <password> <drive>
sedutil-cli --reverttper <password> <drive>
Примерный диалог:
- 14:22:47.060 INFO: Revert LockingSP complete
#sedutil-cli --reverttper debug /dev/sdc
- 14:23:13.968 INFO: revertTper completed successfully
#
Уязвимости
Уязвимость "сохранение питания"
Типичный самозащищенный накопитель, будучи однажды разблокированным, остаётся разблокированным пока на него подается электропитание. Таким образом, при условии сохранении питания, накопитель может быть перенесен куда угодно, оставаясь в разблокированном состоянии. Например, было показано, что при некоторых условиях компьютер может быть перезагружен с запуском другой операционной системы, также демонстрировался перенос накопителя на другой компьютер без отключения питания.
Скомпрометированное встроенное ПО
Встроенное программное обеспечение накопителя может иметь недокументированные возможности, позволяющие получать несанкционированный доступ к данным, а применяемые алгоритмы защитного преобразования остаются на усмотрение производителей.
См. например исследование уязвимостей накопителей.