Содержание
  1. 1. Векторы атаки
    1. 1.1. Атака в лоб
    2. 1.2. Извлечение ключей
    3. 1.3. Доступ к включенному компьютеру
  2. 2. Алгоритмы шифрования
    1. 2.1. AES
    2. 2.2. Serpent
    3. 2.3. Twofish
    4. 2.4. Camellia
    5. 2.5. Кузнечик
  3. 3. Дополнительные настройки
    1. 3.1. PIM
    2. 3.2. Хэш-функция
    3. 3.3. Скрытые разделы

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

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

Атака в лоб

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

Извлечение ключей

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

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

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

Доступ к включенному компьютеру

Здесь все просто, если компьютер включен, а криптоконтейнер смонтирован - получить доступ к данным не составит труда (что очевидно).

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

Алгоритмы шифрования

AES

Advanced Encryption Standard, также известный как Рейндал - симметричный алгоритм блочного шифрования, он хорошо проанализирован и сейчас широко используется. За десятилетия повсеместного использования и массовых исследований этот алгоритм так и не взломали, секретных черных ходов не нашли. Его большой плюс в том, что он аппаратно поддерживается процессорами Intel с 2010 года, и процессорами AMD с 2011 года, что позволяет многократно ускорить процесс шифрования/дешифрования.

Serpent

Serpent - cимметричный блочный алгоритм шифрования. При разработке Serpent использовался более консервативный подход к безопасности, нежели у других финалистов AES, проектировщики шифра считали, что 16 раундов достаточно, чтобы противостоять известным видам криптоанализа, но увеличили число раундов до 32, чтобы алгоритм мог лучше противостоять ещё неизвестным методам криптоанализа.

Став финалистом конкурса AES, алгоритм Serpent в результате голосования занял 2 место. Serpent не запатентован и является общественным достоянием.

Twofish

Twofish - симметричный алгоритм блочного шифрования с размером блока 128 бит и длиной ключа до 256 бит. Число раундов 16.

Являлся одним из пяти финалистов второго этапа конкурса AES. Алгоритм разработан на основе алгоритмов Blowfish, SAFER и SQUARE.

Camellia

Camellia - алгоритм симметричного блочного шифрования (размер блока 128 бит, ключ 128, 192, 256 бит), один из финалистов европейского конкурса NESSIE (наряду с AES и Shacal-2).

Сертифицирован японской организацией CRYPTREC как рекомендованный для промышленного и государственного использования алгоритм.

Кузнечик

Кузнечик - симметричный алгоритм блочного шифрования с размером блока 128 бит и длиной ключа 256 бит, использующий для генерации раундовых ключей SP-сеть.

Данный алгортим является принятным стандартным алгоритмом шифрования в РФ (ГОСТ 34.12-2018, ГОСТ Р 34.12-2015, RFC 7801).

Сначала в Стрибоге была найдена ошибка, уменьшающая его стойкость с 2512 до 2266.
В 2016 году исследователи показали, что таблица перестановки в российских алгоритмах хеширования и шифрования Кузнечик и Стрибог имеет структуру, сильно далёкую от случайной.
И в 2019 году было опубликовано новое исследование “Partitions in the S-Box of Streebog and Kuznyechik”, которое недвусмысленно намекает на теоретическую возможность бекдора в этих алгоритмах.

Проще говоря, выбор иного алгоритма шифрования, чем дефолтный AES не сможет улучшить безопасность зашифрованных данных, а вот ухудшить — запросто. Как минимум снижением скорости доступа к данным - это можно проверить использовав встроенный бенчмарк.

Дополнительные настройки

PIM

PIM - персональный множитель итераций, влияет напрямую на количество итераций, которые будут использованы для преобразования пароля в ключ шифрования. VeraCrypt вычисляет количество итераций (число преобразований) по формуле 15000 + (PIM * 1000).

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

Какое значение PIM установить? Любое, больше 500 - чем больше будет PIM, тем больше уйдет времени на монтирование криптоконтейнера, но для PIM > 500 и < 1000, это значение будет в пределах секунды-двух.

Есть ли смысл в этом? Определенно, т.к. в случае взлома, PIM становится еще одним барьером, т.к. взлом как правило будет проходить для стандартного значения PIM, и даже если (вдруг) пароль будет подобран, без правильного значения PIM это не даст ровным счетом ничего.

Хэш-функция

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

Т.е. взломщику для взлома криптоконтейнера придется использовать атаку по всему массиву PIM, и по каждому хэш-алгоритму отдельно, это затруднит взлом на порядки. Даже для короткого пароля в таком случае взлом становится крайне сложным делом, что конечно же не повод не использовать хороший, годный пароль.

Скрытые разделы

Может произойти так, что вам придется раскрыть свой пароль к зашифорванному контейнеру. Для таких ситуаций в VeraCrypt существует механизм скрытых разделов (Hidden volume).

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

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