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



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

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

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

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

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 (в девичестве — msed).

Заходим на 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).



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

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

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



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



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

Прежде всего, в разделе «Remove OPAL» говорится о том, как восстановить обычное поведение диска, чтобы он опять работал без подмены разделов при включении и без запроса пароля.

В разделе «PSID Revert» приводятся крайние меры, когда вы забыли/не знаете пароль, но хотите оживить диск ценой потери данных. При этом потребуется узнать уникальный номер диска (PSID), обычно написанный где-то у него на корпусе.

Успехов.
Поделиться публикацией
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама
Комментарии 14
  • 0
    Чем плохо использовать только BitLocker?
    • 0
      Лично для меня это означало бы необходимость апгрейда с Windows 7 Professional до Ultimate. Поэтому я его не рассматривал, и особо ничего рассказать про него не могу. Может, кто другой напишет.
      • 0
        Можно и его. Я пользовался некоторое время.
        При шифровании диска с ОС — нам будут доступны варианты или использовать ТРМ или пароль. Дли всех остальных дисков можно использовать также и сертификат.
        Минусом будет то что, битлокеру придется зашифровать все данные уже имеющееся на диске.
        Кстати в Win8.1 Pro BitLocker уже был доступен.
      • +3
        Samsung EVO или PRO всегда хранит данные в зашифрованном (AES) виде
        Уже это утверждение в случае проприетарной реализации шифрования может (и должно) быть подвергнуто сомнению. Лично у меня к проприетарному шифрованию отношение простое: исходим из того, что его нет, и там обычный XOR, как в той истории.
        • +2
          Хотели сделать так: 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
          Таки да, всё плохо, см линк выше :)
          • 0
            ранше было так — физический доступ = ПОЛНЫЙ доступ, сейчас не всё так однозначно…
            • +2
              В целом на винде и яблоке шифрования нет, ни в каком виде, так чтобы ему можно было хоть чуточку доверять.

              Если опустить либребут и «небезопастность х86», чем вас не устраивает шифрование на макинтошах?
              Можно примеры примеры исследований которые могут обосновать ваше заявление?
            • 0
              Если так беспокоиться о шифровании, можно использовать, например, VeraCrypt (форк TrueCrypt). Утилита умеет шифровать системный диск и также спрашивать пароль при загрузке… Причем мало того, можно даже создать скрытую ОС, о наличии которой ничего явно не свидетельствует, на случай, если человек будет паяльником выпытывать пароль у владельца диска :)

              Процесс шифрования, при наличии поддержки AES процессором — почти не влияет на скорость общения с диском.
              • 0
                Вы правы. Но статья не о том, как правильно зашифровать данные, а скорее из разряда: «Вот прикупил себе SSD. Чего это у него там такое? Встроенное шифрование? А как его включить? В инструкции нет ничего. Это что же, я за это заплатил, а оно лежит мёртвым грузом и не работает? Непорядок!».
                По крайней мере, у меня это так было.
                • 0
                  От встроенного шифрования мне, например, достаточно хотя бы возможности (почти) мгновенного форматирования SSD диска — достаточно удалить из памяти ключ и все, по сути, данные бесполезны.

                  Во всяком случае, мне хочется на это надеяться. А вот проверить это никак не получится. Используемый ключ узнать, как я понимаю, возможным не представляется все равно. В таком случае и шифрование можно использовать разве что для таких вот простых и совершенно прикладных задач.
              • 0
                Спасибо за статью! Как завадался вопросом для ноута-параноика.
                • 0
                  Рад, если смог помочь.
                  Не могу отделаться от ощущения, что вы уже начали шифровать («как завадался...»).
                • 0
                  На линуксах все намного проще. Есть софтовое luks шифрование (доступно из коробки без красноглазия на дебианоподобных дистрибутивах). Отъедает процентов 20 производительности, но работает как часы.
                  • –2
                    1. Проприетарному шированию нет доверия по определению — его невозможно проверить.
                    2. Прежде чем выбирать метод и инструмент сокрытия данных, стоит описать модель угроз.
                    3. Касательно надёжного шифрования:
                    — в GNU/Linux имеет штатный cryptsetup с вариантами dm-crypt, loop AES и (мейнстримовым) LUKS;
                    — в Windows есть несколько опенсурсных вариантов, Википедия в помощь.
                    В обоих ОС при этом возможно шифрование загрузочного раздела.

                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.