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