VeraCrypt

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
VeraCrypt
Логотип программы VeraCrypt
Скриншот программы VeraCrypt
VeraCrypt 1.17, запущенная в Windows 10
Тип программное обеспечение для шифрования диска[d]
Написана на C++, Си и язык ассемблера[1]
Интерфейс wxWidgets
Операционные системы Windows, macOS и Linux
Первый выпуск 22 июня 2013
Последняя версия 1.26.7 (1 октября 2023)
Тестовая версия 1.26.10 (8 ноября 2023)
Репозиторий veracrypt.fr/code/VeraCr…
Лицензия Apache License 2.0[2]
Сайт veracrypt.fr/en/Home.html
Логотип Викисклада Медиафайлы на Викискладе

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

VeraCrypt поддерживает[18] взаимодействия с 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. Hash Algorithms. VeraCrypt Documentation. IDRIX. Дата обращения: 4 января 2015. Архивировано из оригинала 5 января 2015 года. (англ.)
  4. Header Key Derivation, Salt, and Iteration Count. VeraCrypt Documentation. IDRIX (4 января 2015). Дата обращения: 4 января 2015. Архивировано из оригинала 5 января 2015 года. (англ.)
  5. Paul Rubens. VeraCrypt a Worthy TrueCrypt Alternative. Quinstreet Enterprise. eSecurity Planet. 13.10.2014 Архивная копия от 4 января 2018 на Wayback Machine (англ.)
  6. «VeraCrypt Release Notes». Дата обращения: 21 августа 2015. Архивировано из оригинала 26 октября 2015 года.
  7. Castle, Alex (March, 2015). «Where Are We At With TrueCrypt?». MaximumPC, p. 59.
  8. Release Notes. Дата обращения: 3 октября 2018. Архивировано 30 марта 2018 года.(англ.)
  9. Plausible Deniability. VeraCrypt Documentation. IDRIX (4 января 2015). Дата обращения: 4 января 2015. Архивировано из оригинала 11 января 2016 года.
  10. Hidden Volume. VeraCrypt Documentation. IDRIX. Дата обращения: 4 января 2015. Архивировано из оригинала 22 декабря 2015 года.
  11. Hidden Operating System. VeraCrypt Documentation. IDRIX (4 января 2014). Дата обращения: 4 января 2015. Архивировано из оригинала 22 декабря 2015 года.
  12. 1 2 Security Requirements and Precautions Pertaining to Hidden Volumes. VeraCrypt Documentation. IDRIX (4 января 2015). Дата обращения: 4 января 2015. Архивировано из оригинала 22 декабря 2015 года.
  13. 1 2 VeraCrypt User Guide. Дата обращения: 22 августа 2015. Архивировано из оригинала 16 декабря 2015 года.
  14. Security Requirements and Precautions. VeraCrypt Documentation. IDRIX. Дата обращения: 16 февраля 2015. Архивировано из оригинала 5 января 2015 года.
  15. Alex Halderman et al. Lest We Remember: Cold Boot Attacks on Encryption Keys. Архивная копия от 7 июня 2011 на Wayback Machine (англ.)
  16. VeraCrypt Documentation. Physical Security. Архивная копия от 22 декабря 2015 на Wayback Machine (англ.)
  17. VeraCrypt Documentation. Malware Архивная копия от 30 марта 2021 на Wayback Machine (англ.)
  18. TPM 2.0 · veracrypt/VeraCrypt-DCS@3058711 · GitHub
  19. VeraCrypt FAQ Архивная копия от 16 декабря 2015 на Wayback Machine (англ.)
  20. Idrassi, Mounir. Security audit (31 декабря 2014). Дата обращения: 22 февраля 2015. Архивировано из оригинала 5 августа 2015 года. (англ.)
  21. 1 2 Мария Нефёдова. Аудит VeraCrypt выявил 26 уязвимостей, 8 из которых критические (18 октября 2016). Дата обращения: 18 июня 2018. Архивировано 18 июня 2018 года.
  22. VeraCrypt - Bug Bounty Program (англ.). HackerOne. Дата обращения: 17 июня 2019. Архивировано 17 июня 2019 года.
  23. Apache License 2.0 (Apache). Дата обращения: 1 июля 2015. Архивировано из оригинала 9 июля 2015 года.
  24. Microsoft Public License (Ms-PL). Дата обращения: 1 июля 2015. Архивировано из оригинала 5 февраля 2016 года.
  25. см. Архивировано 30 мая 2012 года.  (недоступная ссылка)

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