Оглавление |
---|
Предупреждение |
---|
В данной статье рассматривается использование встроенной аппаратной защиты |
накопителей информации ("дисков с самошифрованием"), и связанные с этим вопросы |
аутентификации пользователей для предоставления доступа к данным. Описанные в данной статье решения для защиты данных не являются сертифицированными решениями |
, подвержены уязвимостям, и могут обладать недокументированными возможностями, позволяющими получать несанкционированный доступ к защищаемым данным. Чтобы не вводить читателей в заблуждение, в данной статье по возможности не употребляется термин "шифрование", а если исключить этот термин не представляется возможным, то термин употребляется исключительно в смысле "защитное преобразование данных". |
Оглавление |
---|
Информация | ||
---|---|---|
|
- ОС ОН Орёл 2.12
- ОС СН Смоленск 1.6
- ОС СН Ленинград 8.1 (в части ATA Security)
|
Предупреждение |
---|
Так как накопители с защитой данных автоматически |
Предупреждение |
Так как носители автоматически блокируются при отключении электропитания, рассматриваемые в данной статье технологии защиты данных несовместимы с режимами пониженного энергопотребления компьютеров, при которых сохраняется содержимое (электропитаниеэлектропитание (и, соответственно, содержимое) оперативной (энергозависимой) памяти, но обесточиваются а подключенные накопители устройства обесточиваются (режимы S1, S2, S3 («Suspend to RAM» (STR) в BIOS, «Ждущий режим» («Standby») ), так как при выходе системы из режима пониженного энергопотребления данные на в накопителях окажутся заблокированными, что для сохраненной в оперативной памяти операционной системы будет выглядеть как потеря доступа к данным. При использовании рассматриваемых технологий защиты эти режимы данных эти пониженного энергопотребления следует отключить, однако можно использовать режим S4 («Suspend to disk» (STD)), так как в этом режиме содержимое оперативной памяти сохраняется на будет сохранено в накопителе, и может быть восстановлено с него после включения и разблокировки. |
Накопители данных с "самошифрованием"
Аппаратное защитное преобразование данных на накопителях данных ("самошифруемый диск", в английской литературе применяются термины Full-Drive Encription (FDE) или Self-Encrypting Drive (SED), являющиеся синонимами) предоставляется сейчас многими производителями накопителей данных, и позиционируется как общее решение для защиты данных от несанкционированного доступа, в том числе и данных, хранящихся на твердотельных накопителяхносителях. В таких устройствах защитное преобразование данных выполняется специализированными встроенными в контроллер устройства микросхемами "на лету", и все данные на устройстве хранятся преобразованном виде.
Декларируются следующие возможности таких устройств:
- использование алгоритмов преобразования AES 128 бит / AES 256 бит;
- невозможность извлечение ключей защитного преобразования из устройства;
- возможность мгновенного "удаления" всех хранящихся данных простой заменой внутреннего ключа защитного преобразования, после чего все данные становятся не подлежащими восстановлению;
Предупреждение |
---|
Наличие всех или некоторых их этих возможностей зависит от производителя и конкретной модели, технические детали обычно не раскрываются, сертификация и проверка наличия недокументированных возможностей не проводится. |
Основные методы защиты данных
Для разграничения доступа к данным, хранящимся накопителяхв носителях, требуется использовать механизмы идентификации пользователей. Для этого применяются два основных решения:
- ATA Security - встроенная блокировка/деблокировка накопителя разблокировка носителя с помощью задаваемого пользователем пароля, передаваемого через команды интерфейса ATA.
Этот метод широко распространён, поддерживается большинством накопителейносителей, и никак не привязан к наличию или отсутствию в накопителе носителе встроенного преобразования данных; - TCG OPAL - решение, предусматривающее установку на накопитель носитель специального ПО, обеспечивающего инициализацию и настройку параметров безопасности, и, далее, при каждом включении устройства, обеспечивающего идентификацию пользователя и разблокировку устройства. При этом доступ защищается паролем, а накопитель носитель после включения и до ввода пароля предоставляет в качестве своего содержимого не реально хранимые данные, а специальный "теневой" (shadow) загрузочный раздел, обеспечивающий загрузку ПО авторизации и перезапуск системы уже с разблокированным реальным содержимым накопителяносителя. При этом спецификации OPAL включают в себя и требования к защитному преобразованию данных, хранящихся в накопителеносителе.
Предупреждение |
---|
Описанные ниже способы защиты данных ATA Security и TCG OPAL включаются блокируют носитель при его обесточивании накопителя. Следует помнить, что, данные, находящиеся на включенном накопителе носителе после разблокировки ничем не защищены пока накопитель носитель включён, а физическая реализация разъёмов SATA (отдельный кабель питания электропитания и отдельный кабель данных) при наличии физического доступа к оборудованию предоставляет удобную возможность переподключить накопитель носитель к другой шине данных не отключая его электропитание, и, таким образом, получить полный доступ к данным. Для предотвращения возможности такого рода атак следует обеспечить принудительное полное обесточивание накопителей носителей при вскрытии корпуса. |
АTA Security
Предупреждение |
---|
Режим защиты данных ATA Security не является сертифицированным решением защиты данных. |
Установка ПО и проверка соответствия оборудования
Для проверки параметров накопителя носителя выполняется инструментом командной строки hdparm, входящим в пакет hdparm. Пакет доступен в дистрибутиведистрибутивах/репозитории ОС ОН Орёл 2.12 и в дистрибутивах ОС СН Смоленск 1.6 и ОС СН Ленинград 8.1.репозиториях ОС Astra Linux.
Установить пакет можно их из графического менеджера пакетов (см. Графический менеджер пакетов synaptic) или из командной строки
Command |
---|
sudo apt install hdparm |
Подробные параметры накопителя носителя выводятся командой (пример для накопителя носителя /dev/sda):
Command |
---|
sudo hdparm -I /dev/sda |
Пример полного вывода команды:
Раскрыть |
---|
|
Информация о поддерживаемых параметрах безопасности ATA Security содержится в секции "Security":
Информация |
---|
.... |
В приведённом примере указано, что поддерживается защита по парольному доступу ("Master password ... suportedsupported"), которая на момент регистрации параметров накопителя носителя отключена ("not enabled").
Кроме того в вышеприведённых данных о состоянии накопителя носителя указано, что изменение параметров безопасности заблокировано (строка "frozen"). Эта блокировка автоматически выполняется при загрузке системы большинством современных BIOS-ов и/или операционных систем для того, чтобы в процессе работы ОС вредоносное ПО не смогло несанкционированно установить свои пароли на накопительноситель, заблокировав доступ ко всем находящимся на нём данные.
Установка пароля
Предупреждение |
---|
При установке пароля следует помнить, что:
|
Установка пользовательского пароля выполняется командой (в примере - установка пароля 12345678 на устройство /dev/sdb) :
Command |
---|
sudo hdparm --user-master u --security-set-pass 12345678 /dev/sdb |
Блокировка
Блокировка данных включается отключением электропитания диска.
При написании этой статьи было обнаружено, что блокировку можно включить программным удалением диска, однако гарантировать, что это будет так же работать на всех компьютерах не представляется возможным (приведена команда для диска sdb):
Command |
---|
sudo -i |
Разблокировка
Горячее подключение
Горячее подключение накопителей носителей SATA корректно поддерживается большинством современных накопителей носителей и контроллеров. Однако, после подключения накопителя носителя для его обнаружения операционной системой необходимо выполнить сканирование дисков.
Это можно сделать из сессии суперпользователя:
Command |
---|
sudo -i |
При этом вместо hostX подставить цифру - номер использованного контроллера (при написании этой статьи использовался /sys/class/scsi_host/host3/scan), можно просто последовательно просканировать все контроллеры.
После подключения и обнаружения накопителя носителя и до его разблокировки данные, находящиеся на этом накопителе,й2 носителе будут недоступны.
Разблокировка данных (действующая до следующего отключения питания) осуществляется командой (для примера используется пароль 12345678):
Command |
---|
sudo hdparm --user-master u --security-unlock 12345678 /dev/sdb |
После выполнения разблокировки следует повторно просканировать таблицу дисковых разделов :
Command |
---|
sudo hdparm -z /dev/sdb |
Отключение блокировки
Полностью отключить блокировку можно командой:
Command |
---|
sudo hdparm --user-master u --security-disable 12345678 /dev/sdb |
Если накопитель носитель был заблокирован, то после выполнения отключения блокировки следует повторно просканировать таблицу дисковых разделов :
Command |
---|
sudo hdparm -z /dev/sdb |
Предупреждение | ||
---|---|---|
| ||
Рассматриваемое ПО предполагает, что всегда используется стандартная клавиатура us_english. Это может привести к проблемам при использовании других раскладок клавиатуры. |
Информация | ||||
---|---|---|---|---|
Описанная ниже процедура с использованием загрузки с временного диска позволяет установить защиту на загрузочный диск, в том числе на загрузочный диск, на котором уже установлена ОС. Защиту незагрузочных дисков можно включать/выключать непосредственно из ОС предварительно разрешив использование команд ATA TPM Для разрешения команд ATA TPM:
|
Подготовка загрузочной системы
Скачать образ загрузочной системы: для BIOS и для 64bit UEFI.
Это можно сделать командами
Command |
---|
wget -O RESCUE32.img.gz https://github.com/Drive-Trust-Alliance/exec/blob/master/RESCUE32.img.gz?raw=true |
или
Command |
---|
wget -O RESCUE64.img.gz 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-накопитель носитель и скопировать на него распакованный образ, указав название устройства:
Предупреждение |
---|
Следующая операция полностью уничтожит данные на накопителеносителе. |
Command |
---|
dd if=RESCUE32.img of=/dev/sd? |
или
Command |
---|
dd if=RESCUE64.img of=/dev/sd? |
Перезагрузить компьютер с созданного накопителяносителя.
После появления приглашения Login ввести "root" без пароля.
Информация |
---|
Все дальнейшие шаги выполняются во временной системе |
Проверка
накопителейносителей
Ввести команду
Информация |
---|
sedutil-cli --scan |
Предполагаемый вывод команды:
Информация |
---|
#sedutil-cli --scan |
Наличие цифры 2 во второй колонке указывает на то, что накопитель носитель поддерживает OPAL 2, и что с ним можно выполнять дальнейшие действия.
Предупреждение |
---|
Применение дальнейших инструкций к накопителямносителям, не поддерживающим OPAL2, может привести к потере хранящихся на них данных. |
Проверка предзагрузочной авторизации (PBA)
Используем команду linuxpba с паролем debug.
Предупреждение |
---|
При использовании иного пароля система перезагрузится. |
Пример вывода команды:
Информация |
---|
#linuxpba |
Убедитесь, что ваш накопитель носитель представлен в списке и отмечен как "is OPAL".
Информация |
---|
Далее описаны действия по включению блокировки OPAL. В случае возникновения проблем используйте инструкции из раздела "Восстановление информации" для отключения или удаления блокировки. |
Далее в примерах предполагается использование накопителя носителя /dev/sdc и архива загрузочного образа /usr/sedutil/UEFI64-1.15.img.gz (архивы образов находятся на загрузочном диске с временной системой).
Для использования в вашей системе укажите правильное устройство /dev/sd? и правильный образ.
Включение блокировки и предзагрузочной авторизации
В установленном загрузочном образе для временной загрузки находится запакованный образ загрузочного сектора.
При первом использовании его следует распаковать:
Command |
---|
# Укажите правильное имя образа gunzip /usr/sedutil/UEFI64-n.nn.img.gz |
Далее ввести следующие подготовительные команды (для теста используется пароль debug, который будет изменён позднее):
Commandsedutil-cli --initialsetup debug /dev/sdc
# Следующие команды нужны только для загрузочных дисков и необязательны для незагрузочных
sedutil-cli --loadPBAimage debug /usr/sedutil/UEFI64-n.nn.img /dev/sdc
sedutil-cli --setMBREnable on debug /dev/sdc
И включить блокировку следующей командой:
Commandsedutil-cli --enableLockingRange 0 password drive
Повторная проверка 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, хотя они не обязательно должны совпадать.
Команды для установки паролей:
Commandsedutil-cli --setsidpassword debug yourrealpassword /dev/sdc
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
Проверьте правильность паролей командой:
Commandsedutil-cli --setmbrdone on yourrealpassword /dev/sdc
Примерный диалог
Информация#sedutil-cli --setmbrdone on yourrealpassword /dev/sdc
- 14:22:21.590 INFO: MBRDone set on Your drive in now using OPAL locking.
Следующим шагом следует отключить и полностью обесточить систему.
После отключения питания накопитель носитель будет заблокирован и переведён в режим загрузки предзагрузочной авторизации с запросом пароля (PBA) при следующих включениях.
ИнформацияНа некоторых компьютерах понадобится в явном виде указать в BIOS в настройках загрузки сектор PBE для загрузки.
Восстановление информации
В случае возникновения проблем с помощью загрузочного накопителя носителя можно отключить блокировку или полностью удалить OPAL для дальнейшего использования накопителя носителя без блокировки.
Отключение блокировки и предзагрузочной авторизации
Commandsedutil-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
Восстановление блокировки и предзагрузочной авторизации
Commandsedutil-cli -–enableLockingRange 0 <password> <drive>
sedutil-cli –-setMBREnable on <password> <drive>
Примерный диалог:
Информация#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имеют носители OPAL имеют ошибку во встроенном ПО, ведущую к уничтожению данных при выполненнии следующих выполнении указанных далее команд.
Список проверенных накопителейносителей, не подверженных этой ошибке доступен по ссылке.
Commandsedutil-cli --revertnoerase <password> <drive>
sedutil-cli --reverttper <password> <drive>
Примерный диалог:
Информация#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
#
Уязвимости
Уязвимость "сохранение питания"
Типичный самозащищенный накопительноситель, будучи однажды разблокированным, остаётся разблокированным пока на него подается электропитание. Таким образом, при условии сохранении питания, накопитель носитель может быть перенесен куда угодно, оставаясь в разблокированном состоянии. Например, было показано, что при некоторых условиях компьютер может быть перезагружен с запуском другой операционной системы, также демонстрировался перенос накопителя носителя на другой компьютер без отключения питания.
Скомпрометированное встроенное ПО
Встроенное программное обеспечение накопителя накопя может иметь недокументированные возможности, позволяющие получать несанкционированный доступ к данным, а применяемые алгоритмы защитного преобразования остаются на усмотрение производителей.
См. например исследование уязвимостей накопителей.