VeraCrypt

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
VeraCrypt
VeraCrypt Logo.svg
VeraCrypt screenshot.png
VeraCrypt 1.17, запущенная в Windows 10
Тип Криптография
Разработчик IDRIX
Написана на C, C++, Ассемблер
Интерфейс WxWidgets
Операционная система Microsoft Windows NT 5+, Linux, macOS
Языки интерфейса 37 языков
Первый выпуск 22 июня 2013
Последняя версия 1.23 (12 сентября 2018)
Состояние Актуальное
Лицензия Apache License 2.0
Сайт www.veracrypt.fr
Commons-logo.svg VeraCrypt на Викискладе

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

17 августа 2016 года, в версию 1.18а, добавлена возможность шифрования дисковых разделов, отформатированных в формате GPT[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].

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. http://habrahabr.ru/sandbox/94379/ Может ли VeraCrypt стать следующим TrueCrypt?
  2. Hash Algorithms. VeraCrypt Documentation. IDRIX. Проверено 4 января 2015. (англ.)
  3. Header Key Derivation, Salt, and Iteration Count. VeraCrypt Documentation. IDRIX (4 января 2015). Проверено 4 января 2015.  (англ.)
  4. Paul Rubens. VeraCrypt a Worthy TrueCrypt Alternative. Quinstreet Enterprise. eSecurity Planet. 13.10.2014 (англ.)
  5. «VeraCrypt Release Notes»
  6. Castle, Alex (March, 2015). «Where Are We At With TrueCrypt?». MaximumPC, p. 59.
  7. Release Notes. Проверено 3 октября 2018.(англ.)
  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. 1 2 Мария Нефёдова. Аудит VeraCrypt выявил 26 уязвимостей, 8 из которых критические (18 октября 2016). Проверено 18 июня 2018.
  20. Apache License 2.0 (Apache). Проверено 1 июля 2015.
  21. Microsoft Public License (Ms-PL). Проверено 1 июля 2015.
  22. см.

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