VeraCrypt

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
VeraCrypt
VeraCrypt Logo.svg
VeraCrypt screenshot.png
VeraCrypt 1.17, запущенная в Windows 10
Тип

Криптография

Разработчик

IDRIX

Написана на

C, C++, Ассемблер

Интерфейс

WxWidgets

Операционная система

Microsoft Windows NT 5+, Linux, macOS

Языки интерфейса

37 языков

Первый выпуск

2013-06-22; 1461 день тому назад

Последняя версия

1.19 (17 октября 2016)[1]

Состояние

Актуальное

Лицензия

Apache License 2.0

Сайт

www.veracrypt.fr

Commons-logo.svg VeraCrypt на Викискладе

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

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

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

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 использует 327661 итераций. Для стандартных шифруемых разделов на диске и файловых контейнеров, VeraCrypt использует 655331 итераций для хэш-функции RIPEMD-160 и 500000 итераций для 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].

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

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

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

Производительность[править | править вики-текст]

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

Эти меры увеличивают производительность VeraCrypt.

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

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

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

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

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

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

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

Malware[править | править вики-текст]

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

Trusted Platform Module[править | править вики-текст]

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

Аудит[править | править вики-текст]

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

После того как в 2014 году проект TrueCrypt неожиданно прекратил работу, а его анонимные авторы объявили об «отставке», одним из наиболее популярных опенсорсных средств шифрования стал VeraCrypt.

В августе 2016 года фонд OSTIF (Open Source Technology Improvement Fund) анонсировал, что в вскоре проведет независимый аудит проекта VeraCrypt, средства для которого пожертвовали DuckDuckGo и VikingVPN. Для проведения анализа были привлечены специалисты компании QuarksLab.

Хотя не обошлось без происшествий, аудит все же был завершен в срок – к середине сентября 2016 года. Теперь, спустя месяц, аудиторы представили подробный доклад (PDF) о проделанной работе, занимающий 42 страницы. Специалисты Quarkslab сосредоточили свои усилия вокруг VeraCrypt 1.18 и DCS EFI Bootloader 1.18 (UEFI), в основном изучая новые функции, которыми форк оброс после апреля 2015 года и проведенного тогда аудита проекта TrueCrypt. Исследователи пишут, что в коде форка им удалось обнаружить восемь критических уязвимостей, три умеренные уязвимости и еще пятнадцать багов низкой степени важности.

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

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

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

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

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

Планируемые возможности[править | править вики-текст]

В планах разработчиков — обеспечить возможность шифрования дисковых разделов, отформатированных в формате GPT[22].

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

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

  1. Release Notes
  2. http://habrahabr.ru/sandbox/94379/ Может ли VeraCrypt стать следующим TrueCrypt?
  3. Hash Algorithms. VeraCrypt Documentation. IDRIX. Проверено 4 января 2015. (англ.)
  4. Header Key Derivation, Salt, and Iteration Count. VeraCrypt Documentation. IDRIX (4 января 2015). Проверено 4 января 2015.  (англ.)
  5. Paul Rubens. VeraCrypt a Worthy TrueCrypt Alternative. Quinstreet Enterprise. eSecurity Planet. 13.10.2014 (англ.)
  6. «VeraCrypt Release Notes»
  7. Castle, Alex (March, 2015). «Where Are We At With TrueCrypt?». MaximumPC, p. 59.
  8. Plausible Deniability. VeraCrypt Documentation. IDRIX (4 января 2015). Проверено 4 января 2015.
  9. Hidden Volume. VeraCrypt Documentation. IDRIX. Проверено 4 января 2015.
  10. Hidden Operating System. VeraCrypt Documentation. IDRIX (4 января 2014). Проверено 4 января 2015.
  11. 1 2 Security Requirements and Precautions Pertaining to Hidden Volumes. VeraCrypt Documentation. IDRIX (4 января 2015). Проверено 4 января 2015.
  12. 1 2 VeraCrypt User Guide
  13. Security Requirements and Precautions. VeraCrypt Documentation. IDRIX. Проверено 16 февраля 2015.
  14. Alex Halderman et al. Lest We Remember: Cold Boot Attacks on Encryption Keys.  (англ.)
  15. VeraCrypt Documentation. Physical Security.  (англ.)
  16. VeraCrypt Documentation. Malware  (англ.)
  17. VeraCrypt FAQ  (англ.)
  18. Idrassi, Mounir. Security audit (December 31, 2014). Проверено 22 февраля 2015. (англ.)
  19. Apache License 2.0 (Apache). Проверено 1 июля 2015.
  20. Microsoft Public License (Ms-PL). Проверено 1 июля 2015.
  21. см.
  22. Issues. Проверено 4 января 2015.(англ.)

Ссылки[править | править вики-текст]