Дерево страниц

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 8 Следующий »

В данной статье рассматривается использование так называемых "дисков с самошифрованием" и связанные с этим вопросы идентификации пользователей для предоставления доступа к данным.

В данной статье рассматривается использование так называемых "дисков с самошифрованием" и связанные с этим вопросы идентификации пользователей для предоставления доступа к данным.

Описанные в данной статье решения не являются сертифицированными решениями для защиты конфиденциальных данных, подвержены уязвимостям и могут обладать недокументированными возможностями, позволяющими получать несанкционированный доступ к данным.

Чтобы не вводить читателей в заблуждение, в данной статье по возможности не употребляется термин "шифрование", а если исключить этот термин не представляется возможным, то употребляется исключительно в смысле "защитное преобразование данных".


Данная статья применима к:

  • ОС ОН Орёл 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.
Установить пакет можно их графического менеджера пакетов или из командной строки

sudo apt install hdparm
Подробные параметры накопителя выводятся командой (пример для накопителя /dev/sda):
sudo hdparm -I /dev/sda
Пример полного вывода команды:

$ sudo hdparm -I /dev/sda

/dev/sda:

ATA device, with non-removable media
        Model Number: TOSHIBA HDWD110
        Serial Number: X7HW1XWFS
        Firmware Revision: MS2OA8J0
        Transport: Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6, SATA Rev 3.0; Revision: ATA8-AST T13 Project D1697 Revision 0b
Standards:
        Used: unknown (minor revision code 0x0029)
        Supported: 8 7 6 5
        Likely used: 8
Configuration:
        Logical max current
        cylinders 16383 16383
        heads 16 16
        sectors/track 63 63
        --
        CHS current addressable sectors: 16514064
        LBA user addressable sectors: 268435455
        LBA48 user addressable sectors: 1953525168
        Logical Sector size: 512 bytes
        Physical Sector size: 4096 bytes
        Logical Sector-0 offset: 0 bytes
        device size with M = 1024*1024: 953869 MBytes
        device size with M = 1000*1000: 1000204 MBytes (1000 GB)
        cache/buffer size = unknown
        Form Factor: 3.5 inch
        Nominal Media Rotation Rate: 7200
Capabilities:
        LBA, IORDY(can be disabled)
        Queue depth: 32
        Standby timer values: spec'd by Standard, no device specific minimum
        R/W multiple sector transfer: Max = 16 Current = 16
        Advanced power management level: disabled
        DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6
        Cycle time: min=120ns recommended=120ns
        PIO: pio0 pio1 pio2 pio3 pio4
        Cycle time: no flow control=120ns IORDY flow control=120ns
Commands/features:
        Enabled Supported:
                * SMART feature set
                  Security Mode feature set
                * Power Management feature set
                * Write cache
                * Look-ahead
                * Host Protected Area feature set
                * WRITE_BUFFER command
                * READ_BUFFER command
                * NOP cmd
                * DOWNLOAD_MICROCODE
                  Advanced Power Management feature set
                  Power-Up In Standby feature set
                * SET_FEATURES required to spinup after power up
                  SET_MAX security extension
                * 48-bit Address feature set
                * Device Configuration Overlay feature set
                * Mandatory FLUSH_CACHE
                * FLUSH_CACHE_EXT
                * SMART error logging
                * SMART self-test
                  Media Card Pass-Through
                * General Purpose Logging feature set
                * WRITE_{DMA|MULTIPLE}_FUA_EXT
                * 64-bit World wide name
                * URG for READ_STREAM[_DMA]_EXT
                * URG for WRITE_STREAM[_DMA]_EXT
                * WRITE_UNCORRECTABLE_EXT command
                * {READ,WRITE}_DMA_EXT_GPL commands
                * Segmented DOWNLOAD_MICROCODE
                  unknown 119[7]
                * Gen1 signaling speed (1.5Gb/s)
                * Gen2 signaling speed (3.0Gb/s)
                * Gen3 signaling speed (6.0Gb/s)
                * Native Command Queueing (NCQ)
                * Host-initiated interface power management
                * Phy event counters
                * NCQ priority information
                  Non-Zero buffer offsets in DMA Setup FIS
                * DMA Setup Auto-Activate optimization
                  Device-initiated interface power management
                 In-order data delivery
                * Software settings preservation
                * SMART Command Transport (SCT) feature set
                * SCT Write Same (AC2)
                * SCT Error Recovery Control (AC3)
                * SCT Features Control (AC4)
                * SCT Data Tables (AC5)
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.
Logical Unit WWN Device Identifier: 5000039fd3cc4d45
        NAA : 5
        IEEE OUI : 000039
        Unique ID : fd3cc4d45
Checksum: correct

Информация о поддерживаемых параметрах безопасности 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) :

sudo hdparm --user-master u --security-set-pass 12345678 /dev/sdb

Разблокировка

После подключения диска разблокировка диска (действующая до следующего отключения питания) осуществляется командой (для примера используется пароль 12345678):

sudo hdparm --user-master u --security-unlock 12345678 /dev/sdb

Отключение блокировки

Полностью отключить блокировку можно командой:

sudo hdparm --user-master u --security-disable 12345678 /dev/sdb

TCG OPAL

Программное обеспечение для реализации режима защиты данных FDE не является сертифицированным решением, и не входит в репозитории и дистрибутивы ОС Astra Linux.

Для работы, поддерживающего этот режим,  требуется разрешить использование специальных служебных команд  ATA (TPM) в параметрах ядра (точнее, в параметрах входящей в ядро библиотеки libata).
По умолчанию использование этих команд запрещено, и, как указано в документации к библиотеке libata, разрешение этих команд

"... обеспечивает по сути неконтролируемый зашифрованный "черный ход" между приложениями и диском. Устанавливайте libata.allow_tpm = 1, только если вы имеете для этого реальную причину...".

Использование ПО требует привилегий суперпользователя.

Данная статья является переводом инструкций производителя.


Накопители, про которые найдены упоминания, что они поддерживают встроенное защитное преобразование данных:

  • Crucial MX100
  • Crucial MX200
  • Crucial MX300
  • Intel 320
  • Intel 520
  • Samsung 840 EVO
  • Samsung 850 EVO
  • Samsung xxx PRO
  • Samsung T3
  • Samsung T5

Для пользователей с нестандартными клавиатурами

Рассматриваемое ПО предполагает, что всегда используется стандартная клавиатура us_english. Это может привести к проблемам при использовании друших раскладок клавиатуры.
Для того, чтобы убедиться, что пароль распознаётся правильно, рекомендуется настраивать диск с использованием загрузки временно системы как описано далее.

Подготовка загрузочной системы

Скачать образ загрузочной системы: для  BIOS и для 64bit UEFI.

Это можно сделать командами

wget https://github.com/Drive-Trust-Alliance/exec/blob/master/RESCUE32.img.gz?raw=true
или
wget 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 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 --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


Проверьте правильность паролей командой:

sedutil-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 (предзагрузочной авторизации) при включении.

Восстановление информации

В случае возникновения проблем можно отключить блокировку или полностью удалить 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 –-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имеют ошибку во встроенном ПО, ведущую к уничтожению данных при выполненнии следующих команд.

Список проверенных накопителей, не подверженных этой ошибке доступен по ссылке.


sedutil-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
#

Уязвимости

Уязвимость "сохранение питания"

Типичный самозащищенный накопитель, будучи однажды разблокированным, остаётся разблокированным пока на него подается электропитание. Таким образом, при условии сохранении питания,  накопитель может быть перенесен куда угодно, оставаясь в разблокированном состоянии. Например, было показано, что при некоторых условиях компьютер может быть перезагружен с запуском другой операционной системы, также демонстрировался перенос накопителя на другой компьютер без отключения питания.

Скомпрометированное встроенное ПО

Встроенное программное обеспечение накопителя может иметь недокументированные возможности, позволяющие получать несанкционированный доступ к данным, а применяемые алгоритмы защитного преобразования остаются на усмотрение производителей.
См. например исследование уязвимостей накопителей.

  • Нет меток