Шифрование разделов в Windows и Linux

Шифрование разделов в Windows и Linux

buttonxxxxx

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

Шифрование в Windows возможно только двумя путями: либо вы используете BitLocker, разработанный корпорацией Microsoft и встроенный в современные операционные системы линейки Windows (7, 8, 8.1, 10), либо TrueCrypt и его производные. Рассмотрим шифрование с помощью BitLocker, про TrueCrypt выходила отдельная статья.

В Linux возможностей зашифровать (безвозвратно потерять) данные больше: это и шифрования на уровне файловой системы «eCryptfs» и «EncFS», и блочные способы шифрования на уровне устройства вроде Loop-AES, TrueCrypt, dm-crypt+LUKS (Linux Unified Key Setup-on-disk-format). В этой статье рассмотрим основные возможности dm-crypt+LUKS.

Рассматривая Bitlocker, нужно отметить, что с операционной системой версии не «Pro», а, например, «Home» («Домашняя»), воспользоваться данным вариантом не получится, так как Bitlocker’а просто не будет в системе. Счастливым обладателям версии «Pro» и выше достаточно пары десятков кликов для успешного решения этой задачи.

Чтобы попасть в окошко настройки шифрования BitLocker, переходим в «Панель управления -> Система и безопасность -> Шифрование диска BitLocker».

Если же лень так много клацать мышкой и искать «Панель управления», то открываем Пуск, набираем «BitLocker» и попадаем в то же самое меню.

Нажимаем на строку «Включить BitLocker» на нужном диске (в данном примере это «Диск С»), и… можем увидеть такое окошко:

Оно говорит, что у нас нет специальной платы – доверенного платформенного модуля (TPM), на котором обычно хранятся ключи шифрования BitLocker. Купить такой модуль можно много где, цена на него невысокая. Например, для большинства материнских плат ASRock такой модуль стоит в около 400-500 российских рублей.


Но если некогда искать и покупать такой модуль, а зашифровать данные надо, заходим в «Редактор локальной групповой политики».

Находим в «Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Шифрование диска BitLocker -> Диски операционной системы» пункт «Этот параметр политики позволяет настроить требования дополнительной проверки подлинности при запуске», ставим галочки «Включить» и «Разрешить использование BitLocker без совместимого TPM».


После этого возвращаемся в «Панель управления -> Система и безопасность -> Шифрование диска BitLocker» и следуем указаниям мастера, внимательно читая инструкции.

Преимущества BitLocker: можно зашифровать сразу целый том, который может состоять из нескольких жёстких дисков, и нет необходимости задумываться о том, что каждый новый файл, который в дальнейшем будет «закинут» на этот том, надо вручную шифровать – служба BitLocker сделает всё автоматически, если шифрование включено.

У BitLocker есть пара недостатков: поддержка только протокола шифрования AES-128/AES-256 (что, на самом деле, не слишком большой недостаток) и закрытые исходные коды. Помня о том, что Bitlocker — разработка корпорации Microsoft, не факт, что у ФБР и подобных организаций нет различных бэкдоров или иных секретных способов дешифровки. В случае с архивом коллекционной порнушки можно не переживать на этот счёт, но вот если вы любитель хранить дома секреты государства, стоит серьёзно задуматься над выбором этого способа шифрования.

Многие, заслышав грозное «Linux», могут сразу засомневаться в своей способности справиться с этой простой задачей. Зачем же рассматривать шифрование данных в Linux, когда в Windows всё так просто? Ответ очень прост: истинные ценители информационной безопасности однозначно скажут, что только в Linux или Unix можно добиться поистине высокого уровня защищённости.

Итак, dm-crypt+LUKS.

Dm-crypt – это модуль ядра Linux, который появился в его составе, начиная с версии 2.6. С его помощью становится возможным создать в каталоге /dev/mapper новое виртуальное блочное устройство с прозрачным шифрованием. Это значит, что все данные на этом устройстве будут зашифрованы, то есть (как и в BitLocker) при записи данных на этот диск данные «на лету» шифруются. Стандартным методом шифрования является алгоритм AES, поскольку большинство современных процессоров оптимизированы под него.

Стоит отметить, что блочным устройством в данном случае может быть как целый диск (например, /dev/sda3, /dev/sdb), так и обычный файл с любым именем и расширением, который подключается как loop-устройство.

LUKS – это алгоритм, определяющий действия и их порядок во время работы с зашифрованным носителем.

Итак, для наглядности рассмотрим шифрование на примере операционной системы Debian (для операционной системы Ubuntu все действия идентичны, поскольку Ubuntu – это производная от Debian). Для облегчения и наглядности работы с этим способом шифрования используем пакет «cryptsetup».

Для начала, если не установлены нужные пакеты, установим их, используя терминал:

$ sudo apt-get update — обновляем список доступных пакетов, чтобы поставить самую свежую версию.

$ sudo apt-get –y install cryptsetup — непосредственно установка.

Далее стоит определиться, какой вариант шифрования целесообразнее: прячем гигабайты «ХХХ»-видео? Тогда создаём файл на нужный размер (или пару десятков гигабайт), заполним его случайными значениями и будем использовать для хранения ценной информации.

В случае использования раздела целиком находим нужный с помощью команды

$ sudo fdisk –l

В результате выполнения команды получим примерно такой вывод. Здесь физические диски представлены записями /dev/sdaX, а динамические диски LVM – записями /dev/mapper/YYY, где YYY – название виртуального блочного устройства.

Далее, для описания более сложного варианта, рассмотрим шифрование раздела, представленного файлом. Назовём его «good_xxx_4k.avi» - так будет меньше подозрений, что файл большого размера (формат .avi, да ещё и в 4K!)

Создаём такой файл с помощью команды «dd»:

$ sudo dd if=/dev/random of=/opt/good_xxx_4k.avi bs=1M count=40960 status=progress

Здесь «if=/dev/random» — заполняемый случайными числами файл, «of=/opt/good_xxx_4k.avi» — создаваемый файл в каталоге /opt/, «bs=1M» — размер блока в 1 мегабайт (можно указать и другой размер), которым мы заполняем файл, «count=40960» — число таких блоков. Умножая размер блока на число блоков получаем, что файл «весит» 40 гигабайт. Опция «status=progress» — необходима, чтобы не так страшно было смотреть на отсутствие видимых признаков изменений до окончания выполнения команды, то есть смотрим прогресс создания файла.

На основе этого файла создаём блочное устройство «/dev/loop0», которым будем дальше оперировать:

$ sudo losetup /dev/loop0 /opt/good_xxx_4k.avi

Итак, устройство создано, теперь можно сделать из него полноценный зашифрованный каталог. Рассмотрим основные параметры команды «cryptsetup», которые могут пригодиться:

  • luksFormat – создание зашифрованного раздела
  • luksOpen – подключение зашифрованного раздела с вводом ключа шифрования
  • luksClose – отключение зашифрованного раздела
  • luksDump – создание резервной копии заголовков LUKS

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

$ man cryptsetup

Итак, выполнив все предварительные операции, приступаем к шифрованию раздела.

ВАЖНО! Стоит отметить, что если выполнять шифрование раздела, на котором уже содержатся важные файлы, стоит заблаговременно перенести их в другое место, так как шифруемое устройство будет стёрто начисто!

Создаём шифрованный раздел:

$ sudo cryptsetup -y -v luksFormat /dev/loop0

Отвечаем на вопрос утвердительно (yes) и вводим пароль, которым шифруем раздел, затем вводим его повторно. Пароль нужно выбирать достаточно криптостойкий: не менее 10 символов из строчных и прописных букв латиницы, цифр, спецсимволов. Желательно, чтобы это были не слова, а просто набор букв – так меньше вероятность подбора пароля. И, естественно, нужно запомнить этот пароль (лучше нигде не записывая).

Выполняем следующую команду:

$ sudo cryptsetup luksOpen /dev/loop0 diplom

Она посылает модулю dm-crypt команду на подключение устройства «/dev/loop0» как устройство «/dev/mapper/diplom», при этом система запросит установленный пароль шифрования.

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

$ sudo ls -l /dev/mapper/diplom

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

$ sudo cryptsetup -v status diplom

На всякий случай можно сделать резервную копию заголовков LUKS:

$ sudo cryptsetup luksDump /dev/loop0

Для дальнейшей работы необходимо отформатировать диск

$ sudo dd if=/dev/zero of=/dev/mapper/diplom status=progress

и создать на нем файловую систему (например, ext4)

$ sudo mkfs.ext4 /dev/mapper/diplom

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

$ mkdir ~/diplom — в домашнем каталоге пользователя создаём каталог с названием «diplom»

$sudo mount /dev/mapper/diplom ~/diplom  — монтируем в него зашифрованный диск

Готово!

По окончании работы с зашифрованным диском выполняем в терминале команды

$ sudo umount ~/diplom  — размонтируем зашифрованный диск от каталога

$ sudo cryptsetup luksClose diplom — отключаем зашифрованный раздел, чтобы никто без пароля не мог получить к нему доступ

Вот, пожалуй, и всё. Основные принципы работы разобраны. Стоит добавить, что начиная с версии ядра Linux 2.6.32 шифрование модулем dm-crypt может быть ускорено аппаратно процессорами Intel и AMD, содержащими набор инструкций AES-NI.

Из заметных минусов — LUKS не рекомендован для различных приложений, которым требуется шифрование на уровне файлов.

И «вишенка на торте»: если вы потеряли/забыли пароль так, что совсем не можете вспомнить, то есть 2 выхода – либо терморектальный криптоанализатор (не факт, что поможет вспомнить), либо поминаете безвозвратно утерянные файлы стаканом чего покрепче и начинаете все с нуля!

Report Page