Как начать использовать аппаратное шифрование SSD-диска на примере Samsung EVO 850 и программы sedutil

от автора

Это просто короткая подсказка, которую, я надеюсь, можно использовать и для других дисков со встроенным шифрованием (SED, self encrypting drives). Здесь нет глубокого разъяснения принципов и терминов.

Samsung EVO или PRO всегда хранит данные в зашифрованном (AES) виде, даже если вы ничего для этого не предпринимали. Просто, пока вы не включили защиту, он всегда эти данные возвращает расшифрованными. А когда включите защиту, потребует пароль для расшифровки. Это означает, что установка пароля не приведёт к тому, что скорость работы диска упадёт, всё шифровалось и без него. А также означает, что не придётся диск шифровать от начала до конца – он уже зашифрован.

Однако, нет никаких сведений о том, какой ключ шифрования используется. Возможно, он один и тот же для всех дисков модели, или, например, для тех, что поставляются к нам. И при серьёзных усилиях (например, перепаять кусок от диска-донора, в котором пароль не установлен) можно будет данные прочитать.

Но если вам просто, как и мне, неприятно, что кто-то может бесстыдно покопаться в данных украденного у вас или потерянного ноутбука, то предлагаемого метода вполне достаточно.
Закрыть данные на дисках Samsung EVO можно 3 способами:

1. установить пароль диска ATA в BIOS

Это самый простой способ, но, практически бесполезный. Кроме user-пароля, BIOS, как правило, прописывает ещё и master-пароль, который известен сервисной службе компании-производителя компьютера, и потом добрые люди могут помочь расшифровать данные любому обратившемуся за помощью. См., например, конференции iXBT, “Снять пароль с биоса (BIOS)”.
В сети описаны примеры некрасивой работы BIOS при установке пароля ATA, кеширования пароля в BIOS и чтения его оттуда, использования hdparm вместо BIOS для установки пароля, чтения диска с установленным паролем на компьютере той же модели и т.д. При желании можете сами почитать и оценить, но меня этот способ разочаровал.

2. включить функционал eDrive и использовать BitLocker

Неплохо, но годится только для дорогих версий Windows, и не годится для linux, если что.

3. использовать функции TCG OPAL через утилиту sedutil

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

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

Минусами являются:

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

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

Ну, данные потерять можно запросто, если неправильно задать пароль при закрытии диска, или тут же его забыть, например. Поэтому ОБЯЗАТЕЛЬНО выполнить резервное копирование перед всеми последующими действиями.

В случае же, когда диск не поддаётся расшифровке, его обычно можно сбросить в исходное (фабричное) состояние, правда, ценой полной потери данных.

Вернёмся к дискам Samsung.

Готовой утилиты на служебном разделе у дисков Samsung нет. Есть коммерческие программы, которые могут туда себя прописывать, но мы воспользуемся бесплатной утилитой с открытым исходным кодом – sedutil.

Заходим на https://github.com/Drive-Trust-Alliance/sedutil/wiki

Качаем файлы из раздела executable distributions:

sedutil_WIN.zip – то, чем мы будем оживлять шифрование на диске, если мы работаем под Windows. Далее идёт описание работы именно под Windows. Работа c linux-версией практически не отличается. Разве что названия дисков разные, например, вместо \\.\PhysicalDrive0 будет /dev/sda

LINUXPBARelease.img.gz или UEFI64_Release.img.gz – то, что будет загружаться с маленького раздела диска, когда он станет заблокирован после выключения питания. Разные варианты для машин с BIOS и UEFI.

Rescue.img.gz – утилита восстановления – если что-то пойдёт не так и захочется всё вернуть назад, а компьютер не грузится.

Записываем на флешку утилиту восстановления на всякий случай (предложенной программой Win32DiskImager) и проверяем, что можем с неё загрузиться. Заодно увидим, что работает она из командной строки linux, и убедимся, что мы его не боимся.

Также на сайте рекомендуется записать на другую флешку LINUXPBARelease.img и проверить, что при загрузке и вводе любого пароля мы увидим список дисков. Но это не так, на сайте устаревшее описание, которое забыли поменять (по состоянию на 01.01.2017). Если диск ещё не зашифрован, мы получим только сообщения об ошибках и уйдём в перезагрузку. Не расстраивайтесь, это нормально (описано в Issues на github).

Итак, из командной строки посмотрим, кто из дисков у нас способен к самошифрованию:

V:\ sedutil >sedutil-cli --scan
Scanning for Opal compliant disks
\\.\PhysicalDrive0 12 Samsung SSD 850 EVO 1TB EMT01B6Q
\\.\PhysicalDrive1 12 Samsung SSD 850 EVO mSATA 500GB EMT41B6Q
No more disks present ending scan

Закроем оба диска, но пароль для них будет один. Поскольку мы будем вводить его в командной строке, не нужно, чтобы в нём было символов, которые в командной строке имеют специальное значение, вроде всяких пробелов-слешей-кавычек-меньше-больше. Кроме того, символы, которые вы будете использовать, должны быть доступны при вводе с клавиатуры при загрузке компьютера (читай, символы QWERTY-клавиатуры). Наконец, забейте пароль в текстовый файл, сохраните его на флешку, и вставляйте его при помощи Copy-Paste в последующие команды.

Допустим, загрузочный диск у нас — PhysicalDrive1.

Пусть пароль у нас будет MyPassword.

V:\sedutil>sedutil-cli --initialsetup MyPassword \\.\PhysicalDrive1
- 13:21:04.000 INFO: takeOwnership complete
- 13:21:04.436 INFO: Locking SP Activate Complete
- 13:21:05.982 INFO: LockingRange0 disabled
- 13:21:05.513 INFO: LockingRange0 set to RW
- 13:21:06.028 INFO: MBRDone set on
- 13:21:06.558 INFO: MBRDone set on
- 13:21:07.057 INFO: MBREnable set on
- 13:21:07.057 INFO: Initial setup of TPer complete on \\.\PhysicalDrive1

Загружаем в служебный раздел образ загрузчика (здесь вы должны определить, какой вариант загрузчика вам нужен: BIOS или UEFI )

V: \sedutil >sedutil-cli --loadPBAimage MyPassword <образ> \\.\PhysicalDrive1
- 13:01:34.000 INFO: Writing PBA to \\.\PhysicalDrive1
| [*********************] 1049600 bytes written
- 13:03:38.317 INFO: PBA image <образ > written to \\.\PhysicalDrive1
V:\sedutil >sedutil-cli --setMBREnable on MyPassword \\.\PhysicalDrive1
- 13:05:02.000 INFO: MBRDone set on
- 13:05:03.562 INFO: MBREnable set on
V:\sedutil >sedutil-cli --enableLockingRange 0 MyPassword \\.\PhysicalDrive1

Зашифруем заодно и второй диск (не загрузочный). Всё то же самое, только загрузчик можно на него не записывать.

V:\sedutil>sedutil-cli --initialsetup MyPassword \\.\PhysicalDrive0
V:\sedutil >sedutil-cli --enableLockingRange 0 MyPassword \\.\PhysicalDrive0

После выключения питания и включения вновь увидим запрос пароля. Если ввели его неправильно – перезагрузка и повторный запрос. Если правильно – перезагрузка и запуск операционной системы с открывшегося раздела диска.

В случае успеха можете наблюдать, как в Windows изменились значки диcков – у них появились открытые жёлтые замочки:

В случае неудачи… Хм… Выходные длинные нынче. Начните с более подробного изучения утилиты sedutil, руководствуясь приведённой выше ссылкой.

Успехов.
ссылка на оригинал статьи https://habrahabr.ru/post/319054/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *