В конце июля с разработчиком VeraCrypt Моуниром Идрасси связался некто Алексей Иванов и сообщил, что нашёл критическую уязвимость, которая позволяет обнаружить наличие второго скрытого тома. Метод обнаружения исследователь не раскрывает, т.к. он может помочь злоумышленникам провести атаку.
В TrueCrypt и VeraCrypt в версиях ранее 1.18, как объяснено в Спецификации Формата Тома, у внешних томов, которые не содержат скрытый том, есть заголовок + случайные данные, тогда как у внешних томов, которые содержат скрытый том, есть два заголовка + случайные данные.
Обычно это различие не должно быть проблемой, потому что заголовки зашифрованы, используя ключ, полученный из их соответствующих паролей, и случайные данные – на самом деле результат шифрования, который обнуляет использование временного случайного ключа. Благодаря свойствам режима шифрования XTS, зашифрованные данные должны выглядеть случайными для атакующего, который не может получить информацию о формате данных, не имея пароля.
Но оказывается, что это предположение не всегда верно, и что по крайней мере, можно построить различие, которое было бы в состоянии обнаружить, имеет внешний том один заголовок (без скрытого тома) или два заголовка (со скрытым томом).
К счастью, существует очевидный способ защиты от такой атаки: внешний том должен всегда иметь два заголовка! Когда нет второго заголовка тома, мы просто создаём “фальшивый” скрытый том, который использует случайный главный ключ. Таким образом, различие, которое упоминалось выше, всегда будет возвращать, что есть скрытый том, не будучи в состоянии сказать, является ли скрытый том поддельным или нет.
Это исправление было реализовано в VeraCrypt 1.18а. Не представляется возможным применить исправление существующих томов, так что пользователям, которые полагаются на функцию скрытого тома, необходимо создать новые тома, используя последнюю версию VeraCrypt и отказаться от существующих томов. Конечно, такие пользователи должны установить/использовать только VeraCrypt 1.18а или выше на своих компьютерах, чтобы правдоподобно отрицать наличие скрытого тома: если они принуждаются к выдаче пароля скрытого тома субъектом, который видит различие упомянутое выше, они могут ответить, что они создали внешний том с помощью VeraCrypt 1.18а или выше, который создал поддельный заголовок скрытого тома и это может быть легко доказано, если выдать пароль от внешнего тома.
Разработчик советует обновить VeraCrypt до версии 1.18a и воссоздать все свои тома (и внешний и скрытый) используемые в этой версии. Изменение паролей не важно в этой проблеме, таким образом, Вы можете сохранить их неизменными.