VeraCrypt

VeraCrypt
Логотип программы VeraCrypt
Скриншот программы VeraCrypt
VeraCrypt 1.17, запущенная в Windows 10
Тип программное обеспечение для шифрования диска
Написана на C++, Си и язык ассемблера[2]
Интерфейс wxWidgets
Операционные системы Windows, macOS, Linux и FreeBSD
Дата выпуска 22 июня 2013
Последняя версия
Репозиторий github.com/veracrypt/Ver…
Лицензия Apache License 2.0[3]
Сайт veracrypt.jp (англ.)
Логотип Викисклада Медиафайлы на Викискладе

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

Схема шифрования

Алгоритмы

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

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

Режимы шифрования

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

Ключи

Ключ заголовка и вторичный ключ заголовка для режима XTS генерируются при помощи алгоритма PBKDF2 с использованием 512-битной криптографической соли, число итераций составляет по умолчанию 200 000 или 500 000, в зависимости от используемой хеш-функции[5]. Количество итераций может быть уменьшено пользователем до значений 2048 или 16 000, соответственно[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 поддерживает[19] взаимодействия с TPM, хотя, по мнению разработчиков, TPM не может быть использован для решения задач информационной безопасности[20], поскольку TPM не обеспечивает никакой защиты компьютера от злоумышленника, получившего физический доступ к компьютеру и, например, установившего аппаратный кейлоггер.

Аудит

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

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

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

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

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

Институт защиты информации (SIT) провёл другой аудит в 2020, согласно запросу Германского офиса информационной безопасности Federal Office for Information Security (BSI), и опубликовал результаты в октябре 2020.[24][25]

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

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

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

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

См. также

Примечания

  1. ↑ https://github.com/veracrypt/VeraCrypt/releases/tag/VeraCrypt_1.26.24 — 2025.
  2. ↑ The veracrypt Open Source Project on Open Hub: Languages Page — 2006.
  3. ↑ http://veracrypt.codeplex.com/license
  4. ↑ Hash Algorithms (англ.). VeraCrypt Documentation. IDRIX. Дата обращения: 4 января 2015. Архивировано из оригинала 5 января 2015 года.
  5. ↑ 1 2 Header Key Derivation, Salt, and Iteration Count (англ.). VeraCrypt Documentation. IDRIX. Дата обращения: 28 августа 2025. Архивировано 27 июня 2025 года.
  6. ↑ Paul Rubens. VeraCrypt a Worthy TrueCrypt Alternative. Quinstreet Enterprise. eSecurity Planet. 13.10.2014 Архивная копия от 4 января 2018 на Wayback Machine (англ.)
  7. ↑ «VeraCrypt Release Notes». Дата обращения: 21 августа 2015. Архивировано из оригинала 26 октября 2015 года.
  8. ↑ Castle, Alex (March, 2015). «Where Are We At With TrueCrypt?». MaximumPC, p. 59.
  9. ↑ Release Notes. Дата обращения: 3 октября 2018. Архивировано 30 марта 2018 года.. (англ.)
  10. ↑ Plausible Deniability. VeraCrypt Documentation. IDRIX (4 января 2015). Дата обращения: 4 января 2015. Архивировано из оригинала 11 января 2016 года.
  11. ↑ Hidden Volume. VeraCrypt Documentation. IDRIX. Дата обращения: 4 января 2015. Архивировано из оригинала 22 декабря 2015 года.
  12. ↑ Hidden Operating System. VeraCrypt Documentation. IDRIX (4 января 2014). Дата обращения: 4 января 2015. Архивировано из оригинала 22 декабря 2015 года.
  13. ↑ 1 2 Security Requirements and Precautions Pertaining to Hidden Volumes. VeraCrypt Documentation. IDRIX (4 января 2015). Дата обращения: 4 января 2015. Архивировано из оригинала 22 декабря 2015 года.
  14. ↑ 1 2 VeraCrypt User Guide. Дата обращения: 22 августа 2015. Архивировано из оригинала 16 декабря 2015 года.
  15. ↑ Security Requirements and Precautions. VeraCrypt Documentation. IDRIX. Дата обращения: 16 февраля 2015. Архивировано из оригинала 5 января 2015 года.
  16. ↑ Alex Halderman et al. Lest We Remember: Cold Boot Attacks on Encryption Keys. Архивная копия от 7 июня 2011 на Wayback Machine (англ.)
  17. ↑ VeraCrypt Documentation. Physical Security. Архивная копия от 22 декабря 2015 на Wayback Machine (англ.)
  18. ↑ VeraCrypt Documentation. Malware Архивная копия от 30 марта 2021 на Wayback Machine (англ.)
  19. ↑ TPM 2.0 · veracrypt/VeraCrypt-DCS@3058711 · GitHub. Дата обращения: 9 апреля 2024. Архивировано 9 апреля 2024 года.
  20. ↑ VeraCrypt FAQ Архивная копия от 16 декабря 2015 на Wayback Machine (англ.)
  21. ↑ Idrassi, Mounir. Security audit (англ.) (31 декабря 2014). Дата обращения: 22 февраля 2015. Архивировано из оригинала 5 августа 2015 года.
  22. ↑ 1 2 Мария Нефёдова. Аудит VeraCrypt выявил 26 уязвимостей, 8 из которых критические (18 октября 2016). Дата обращения: 18 июня 2018. Архивировано 18 июня 2018 года.
  23. ↑ VeraCrypt - Bug Bounty Program (англ.). HackerOne. Дата обращения: 17 июня 2019. Архивировано 17 июня 2019 года.
  24. ↑ VeraCrypt / Forums / General Discussion: Germany BSI Security Evaluation of VeraCrypt. sourceforge.net. Дата обращения: 1 декабря 2021.
  25. ↑ Security Evaluation of VeraCrypt. Federal Office for Information Security (BSI) (30 ноября 2020). Дата обращения: 27 июля 2022.
  26. ↑ Apache License 2.0 (Apache). Дата обращения: 1 июля 2015. Архивировано из оригинала 9 июля 2015 года.
  27. ↑ Microsoft Public License (Ms-PL). Дата обращения: 1 июля 2015. Архивировано из оригинала 5 февраля 2016 года.
  28. ↑ см. Архивировано 30 мая 2012 года.  (недоступная ссылка)

Ссылки