November 3, 2020

Создаем зашифрованный диск с «двойным» дном с помощью Veracrypt

VeraCrypt — свободный форк TrueCrypt используемый для сквозного шифрования в Windows, Mac OSX и Linux, и позволяет шифровать системный диск, отдельный внутренний или внешний диск или создавать виртуальные диски с использованием файлов-контейнеров.

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

Создание ключевого файла

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

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

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

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

Создание зашфированного раздела

Для того чтобы создать скрытый зашифрованный раздел, нужно сначала подготовить обычный (внешний) зашифрованный том. Для его создания запустим из меню Сервис — Мастер создания томов.

Выберем "Зашифровать несистемный раздел/диск", что бы создать зашифрованный диск (в моем случае это небольшой SSD диск). Если отдельного диска нет, можно использовать "Создать зашифрованный файловый контейнер", т.к. он будет в дальнейшем смонтирован как виртуальный диск, все последующие инструкции справедливы и для него.

Тип тома зададим "Скрытый том Veracrypt", режим тома «Обычный» (т.к. мы создаём новый том). В размещении тома нужно выбрать диск, на котором будет создан зашифрованный том, в случае создания файлового контейнера, нужно будет указать место, где этот файл создать.

Режим создания тома "Создать и отформатировать" если диск пустой, или "Зашифровать на месте", если на диске уже есть данные, которые нужно зашифровать.

Алгоритм шифрования оставляем AES, т.к. несмотря на наличие возможности выбрать один из пяти алгоритмов шифрования, AES является достаточно надежным и быстрым (в VeraCrypt поддерживается и включено по умолчанию аппаратное ускорение этого алгоритма, при использовании процессоров, имеющих набор инструкций AES-NI).

Средняя скорость шифрования/дешифрования в памяти (12 потоков, Апп. ускорение AES включено, Мб/c, больше-лучше):

Зададим надежный пароль (как выбрать надежный пароль мы рассказывали в этой статье).

Интересный факт: пароль “самого разыскиваемого хакера”, использовавшего полное шифрование дисков, Джереми Хэммонда, был именем его кошки: “Chewy 123”;

Перед форматированием тома потребуется совершить несколько хаотичных движений мышкой, что бы создать необходимый уровень энтропии для шифрования. Опцию «быстрое форматирование» не следует использовать, так как предполагается создание скрытого раздела. Если не предполагается хранение больших файлов (>4Гб), тип файловой системы рекомендуется оставить FAT.

Создание скрытого тома

В мастере томов выберем "Зашифровать несистемный раздел/диск". Режим тома "Скрытый том VeraCrypt". Режим создания "Прямой режим". Выберем устройство или контейнер, зашифрованные на предыдущем шаге. Введем созданный ранее пароль и нажмем "Далее".

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

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

Подключение внешнего тома

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

Для подключения внешнего тома нажмем "Смонтировать", откроем "Параметры" и установим опцию "Защитить скрытый том от повреждения при записи" и укажем пароль и ключевой файл от скрытого тома.

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

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

Подключение скрытого тома

Для подключения скрытого тома, нажмем «Смонтировать», укажем пароль и ключевой файл от скрытого тома. При примонтированном скрытом томе, VeraCrypt добавляет пометку "Скрытый".

Векторы атаки

  • Атака в лоб:

Атаки методом перебора, при наличии стойкого пароля малоэффективна — это тот сценарий, к которому и готовились разрабочики VeraCrypt, а при наличии ключевого файла — неэффективны абсолютно.

  • Извлечение ключей шифрования:

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

  • Скрытое управление:

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