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

82971dfbf814444ebcc133e28ee1b440.jpg

Это просто короткая подсказка, которую, я надеюсь, можно использовать и для других дисков со встроенным шифрованием (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 (не забудьте раскрыть архивы .gz!!!):

Архив 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).

2dcb4828ab8a458f9d10b1f3855a8fd2.JPG

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

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 <образ.img> \\.\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

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

354de28b0d2649e8992c98203bdcdd22.JPG

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

f1319e8b30374f268258bbf83d25807e.png

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

Успехов.

Комментарии (5)

  • 7 января 2017 в 01:48

    0

    Чем плохо использовать только BitLocker?
    • 7 января 2017 в 01:50

      0

      Лично для меня это означало бы необходимость апгрейда с Windows 7 Professional до Ultimate. Поэтому я его не рассматривал, и особо ничего рассказать про него не могу. Может, кто другой напишет.
    • 7 января 2017 в 02:51

      0

      Можно и его. Я пользовался некоторое время.
      При шифровании диска с ОС — нам будут доступны варианты или использовать ТРМ или пароль. Дли всех остальных дисков можно использовать также и сертификат.
      Минусом будет то что, битлокеру придется зашифровать все данные уже имеющееся на диске.
      Кстати в Win8.1 Pro BitLocker уже был доступен.
  • 7 января 2017 в 02:50 (комментарий был изменён)

    +2

    Samsung EVO или PRO всегда хранит данные в зашифрованном (AES) виде
    Уже это утверждение в случае проприетарной реализации шифрования может (и должно) быть подвергнуто сомнению. Лично у меня к проприетарному шифрованию отношение простое: исходим из того, что его нет, и там обычный XOR, как в той истории.
  • 7 января 2017 в 06:21

    0

    Хотели сделать так: http://www.securitylab.ru/news/367140.php
    Получилось как всегда: http://www.computerra.ru/134296/wd-hdd-have-bad-aes-implementation/

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

    В целом на винде и яблоке шифрования нет, ни в каком виде, так чтобы ему можно было хоть чуточку доверять.
    По хорошему современным х86 тоже доверия нет, ибо:
    https://libreboot.org/faq/#intel
    (и далее про амд)

    2 dartraiden
    Таки да, всё плохо, см линк выше:)

© Habrahabr.ru