VeraCrypt

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
VeraCrypt
VeraCrypt Logo.svg
VeraCrypt screenshot.png
VeraCrypt 1.17, запущенная в Windows 10
Тип Шифрование
Написана на C++, ассемблер и Си[1]
Интерфейс WxWidgets
Операционная система Microsoft Windows, macOS и Linux
Языки интерфейса множество языков[d]
Первый выпуск 22 июня 2013
Последняя версия
Лицензия Apache License 2.0[2]
Сайт veracrypt.fr​ (англ.)
Commons-logo.svg Медиафайлы на Викискладе

VeraCrypt — программное обеспечение, используемое для шифрования «на лету». VeraCrypt — бесплатный и открытый проект, начатый 22 июня 2013 года в качестве форка TrueCrypt. Запущен и по настоящее время поддерживается Mounir Idrassi, основателем компании IDRIX, после того как 28 мая 2014 года было объявлено о прекращении поддержки программы TrueCrypt[3].

Схема шифрования[править | править код]

Алгоритмы[править | править код]

VeraCrypt может использовать следующие алгоритмы шифрования: AES, Serpent, Twofish, Camellia, Кузнечик, а также комбинации этих алгоритмов.

Используемые криптографические хеш-функции: RIPEMD-160, SHA-256, SHA-512, Стрибог и Whirlpool[4].

Режимы шифрования[править | править код]

VeraCrypt использует режим шифрования XTS (англ.).

Ключи[править | править код]

Ключ заголовка и вторичный ключ заголовка для режима XTS генерируются при помощи алгоритма PBKDF2 с использованием 512-битной криптографической соли, число итераций составляет от 327 661 до 655 331, в зависимости от используемой хеш-функции[5].

Усовершенствования по сравнению с TrueCrypt[править | править код]

По утверждению разработчиков, в VeraCrypt реализован ряд усовершенствований в области безопасности по сравнению с TrueCrypt.

В то время как TrueCrypt использует 1000 итераций при генерации ключа, которым шифруется системный раздел при использовании алгоритма PBKDF2-RIPEMD-160, VeraCrypt использует 327 661 итерацию. Для стандартных шифруемых разделов на диске и файловых контейнеров VeraCrypt использует 655 331 итерацию для хеш-функции RIPEMD-160 и 500 000 итераций для SHA-2 и Whirlpool. Это существенно замедляет VeraCrypt при открытии зашифрованных разделов диска при их монтировании, но делает его не менее чем в 10 (и не более чем в 300) раз более устойчивым к атаке прямым перебором[6].

Исправлена уязвимость начального загрузчика для Windows. Для режима загрузки из зашифрованного раздела добавлена поддержка алгоритма SHA-256 и исправлены проблемы с уязвимостью ShellExecute для Windows.

Для Linux и macOS добавлена поддержка дисков с секторами больше 512 байт. Для Linux реализована поддержка разделов, отформатированных под NTFS.

Указанные усовершенствования привели к несовместимости с форматом разделов TrueCrypt. Разработчики VeraCrypt сочли старый формат TrueCrypt слишком уязвимым для потенциальной атаки АНБ и отказались от него. Это одно из главных различий между VeraCrypt и конкурирующим проектом-форком TrueCrypt — CipherShed, который продолжает поддерживать старый формат. Начиная с версии 1.0f, VeraCrypt может открывать и преобразовывать в свой формат разделы, отформатированные в формате TrueCrypt[7][8].

17 августа 2016 года в версию 1.18а добавлена возможность шифрования дисковых разделов, отформатированных в формате GPT[9].

Правдоподобное отрицание наличия зашифрованных данных[править | править код]

VeraCrypt, также как и TrueCrypt, поддерживает возможность отрицаемого шифрования[10], позволяя создавать внутри зашифрованного тома ещё один, «скрытый том»[11]. Кроме того, версия VeraCrypt для Windows позволяет создавать и выполнять скрытый экземпляр операционной системы Windows, чьё наличие также можно правдоподобно отрицать[12].

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

Быстродействие[править | править код]

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

Эти меры увеличивают быстродействие VeraCrypt.

Потенциальные проблемы с безопасностью[править | править код]

Программа подвержена ряду потенциальных атак, к которым чувствительно и другое программное обеспечение для шифрования дисков, например BitLocker. Для смягчения этой опасности разработчики VeraCrypt предоставили пользователям ряд профилактических рекомендаций[13][15].

Некоторые из этих проблем перечислены ниже.

Ключи шифрования, хранимые в оперативной памяти[править | править код]

VeraCrypt сохраняет ключи в оперативной памяти в открытом виде. Теоретически, злоумышленник мог бы получить доступ к её содержимому с помощью так называемой атаки методом холодной перезагрузки, при которой атакующий получает физический доступ к содержимому модулей оперативной памяти компьютера после его выключения и посредством специального программного обеспечения или оборудования восстанавливает их старое содержимое. Подобная атака была успешно применена в отношении разделов диска, зашифрованных TrueCrypt[16]. Для противодействия некоторым атакам данной категории, начиная с версии 1.24 в VeraCrypt добавлено шифрование ключей в оперативной памяти, а также стирание ключей из памяти при перезагрузке или завершении работы системы.

Физическая безопасность[править | править код]

VeraCrypt не обеспечивает безопасности данных на компьютере, к которому атакующий имеет физический доступ, как правило, тайный, в процессе работы с зашифрованными данными. Эта уязвимость относится не к случаю потерянных, конфискованных или украденных компьютеров, а когда злоумышленники имеют возможность установить на компьютер тот или иной вид шпионской аппаратуры — аппаратный кейлоггер, bus-master устройство, обладающее прямым доступом к оперативной памяти, или какое-то ещё устройство, предназначенное для решения подобных задач[17].

Вредоносное ПО[править | править код]

VeraCrypt не обеспечивает безопасности данных на компьютере с установленным вредоносным ПО. Многие вредоносные программы этого типа содержат в себе кейлоггеры и могут, в частности, считывать вводимые с клавиатуры пароли и передавать их злоумышленникам[18].

Trusted Platform Module[править | править код]

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

Аудит[править | править код]

VeraCrypt опирается на исходный код TrueCrypt, который успешно, хотя и с некоторыми замечаниями, прошёл независимый аудит.

Независимый аудит кода VeraCrypt весной 2015 года был в стадии планирования. Обсуждалось его начало в июле 2015 года[20].

К середине сентября 2016 года аудит был завершён. Доклад о результатах занимал 42 страницы. Этот независимый аудит был проведён фондом OSTIF (Open Source Technology Improvement Fund), а средства на него пожертвовали DuckDuckGo и VikingVPN. Фонд OSTIF, в свою очередь, привлёк для проведения аудита специалистов компании Quarkslab[21].

Специалисты компании Quarkslab, проводившей этот аудит, сосредоточили свои усилия вокруг VeraCrypt 1.18 и DCS EFI Bootloader 1.18 (UEFI), в основном изучая новые функции, которыми VeraCrypt пополнился после апреля 2015 года и проведённого тогда аудита проекта TrueCrypt. Исследователи пишут, что в коде VeraCrypt им удалось обнаружить восемь критических уязвимостей, три умеренные уязвимости и ещё 15 ошибок низкой степени важности[21].

Для поддержания высокой степени безопасности кода VeraCrypt осенью 2018 года была опубликована программа bug bounty[22].

Модель лицензирования и распространения исходных текстов[править | править код]

С 28 июня 2015 года VeraCrypt лицензирован под Apache License 2.0[23]. До этого он был опубликован под Microsoft Public License[24].

Поскольку VeraCrypt опирается на исходные коды TrueCrypt, на него распространяются также и положения TrueCrypt License 3.0[25], которая многими источниками не считается свободной.

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

См. также[править | править код]

Примечания[править | править код]

  1. The veracrypt Open Source Project on Open Hub: Languages Page — 2006.
  2. http://veracrypt.codeplex.com/license
  3. http://habrahabr.ru/sandbox/94379/ Может ли VeraCrypt стать следующим TrueCrypt?
  4. Hash Algorithms. VeraCrypt Documentation. IDRIX. Дата обращения 4 января 2015. (англ.)
  5. Header Key Derivation, Salt, and Iteration Count. VeraCrypt Documentation. IDRIX (4 января 2015). Дата обращения 4 января 2015.  (англ.)
  6. Paul Rubens. VeraCrypt a Worthy TrueCrypt Alternative. Quinstreet Enterprise. eSecurity Planet. 13.10.2014 (англ.)
  7. «VeraCrypt Release Notes»
  8. Castle, Alex (March, 2015). «Where Are We At With TrueCrypt?». MaximumPC, p. 59.
  9. Release Notes. Дата обращения 3 октября 2018.(англ.)
  10. Plausible Deniability. VeraCrypt Documentation. IDRIX (4 января 2015). Дата обращения 4 января 2015.
  11. Hidden Volume. VeraCrypt Documentation. IDRIX. Дата обращения 4 января 2015.
  12. Hidden Operating System. VeraCrypt Documentation. IDRIX (4 января 2014). Дата обращения 4 января 2015.
  13. 1 2 Security Requirements and Precautions Pertaining to Hidden Volumes. VeraCrypt Documentation. IDRIX (4 января 2015). Дата обращения 4 января 2015.
  14. 1 2 VeraCrypt User Guide
  15. Security Requirements and Precautions. VeraCrypt Documentation. IDRIX. Дата обращения 16 февраля 2015.
  16. Alex Halderman et al. Lest We Remember: Cold Boot Attacks on Encryption Keys. (англ.)
  17. VeraCrypt Documentation. Physical Security. (англ.)
  18. VeraCrypt Documentation. Malware (англ.)
  19. VeraCrypt FAQ (англ.)
  20. Idrassi, Mounir. Security audit (December 31, 2014). Дата обращения 22 февраля 2015. (англ.)
  21. 1 2 Мария Нефёдова. Аудит VeraCrypt выявил 26 уязвимостей, 8 из которых критические (18 октября 2016). Дата обращения 18 июня 2018.
  22. VeraCrypt - Bug Bounty Program (англ.). HackerOne. Дата обращения 17 июня 2019.
  23. Apache License 2.0 (Apache). Дата обращения 1 июля 2015.
  24. Microsoft Public License (Ms-PL). Дата обращения 1 июля 2015.
  25. см.  (недоступная ссылка)

Ссылки[править | править код]