VeraCrypt – фактическая замена популярной программе шифрования дисков TrueCrypt и самый распространённый на сегодняшний день криптоконтейнер. В сравнении с TrueCrypt, VeraCrypt предлагает широкий выбор алгоритмов шифрования и хеширования паролей. Как выбранные алгоритмы влияют на безопасность данных и скорость атаки и что делать, если неизвестно, каким именно способом защищён зашифрованный контейнер?
Ещё во времена TrueCrypt пользователям предлагался выбор из нескольких разных алгоритмов шифрования, в том числе несколько вариантов с последовательным шифрованием данных несколькими алгоритмами. В VeraCrypt этот выбор стал ещё шире. Теперь пользователю предлагается на выбор пять алгоритмов шифрования (AES, Serpent, Twofish, Camellia и «Кузнечик») и десять вариантов их последовательного использования.
С точки зрения эксперта-криминалиста выбор какого-то конкретного алгоритма шифрования или их комбинации не имеет большого значения: атака на ключ шифрования бесполезна как в случае с шифром «по умолчанию», в роли которого выступает AES-256, так и в случае выбора любого другого алгоритма или их последовательности. За десятилетия повсеместного использования и массовых исследований не взломали ни AES, ни какие-либо другие алгоритмы (за возможным исключением «Кузнечика», к которому у исследователей от криптографии есть вопросы).
Выбор алгоритма шифрования способен повлиять лишь на скорость доступа к зашифрованным данным, но не на скорость перебора паролей.
В то же время серьёзное влияние на скорость атаки оказывает простой факт: известно ли эксперту, какой именно алгоритм шифрования выбран. Если алгоритм известен, то атака будет достаточно быстрой; если же нет, то возможные стратегии включают атаку на алгоритм по умолчанию (AES-256 в качестве шифра и SHA-512 в качестве хеш-функции) и атаку по всему спектру возможных комбинаций шифров и функций хеширования. Последняя будет достаточно медленной (приблизительно в 175 раз медленнее атаки с настройками «по умолчанию»).
Важно отметить, что приложение Elcomsoft Distributed Password Recovery поддерживает все возможные комбинации алгоритмов шифрования и хеширования, включая атаку по всему спектру. Настройка атаки осуществляется в приложении Elcomsoft Forensic Disk Decryptor на этапе извлечения заголовка от зашифрованного диска.
Для того, чтобы зашифровать и расшифровать данные, криптоконтейнер не использует пароль. Для шифрования любым алгоритмом (от AES до «Кузнечика» включительно) используется двоичный ключ переменной длины, так называемый Data Encryption Key или Media Encryption Key (MEK). Каким именно образом пароль пользователя (вероятно, достаточно сложный) преобразуется в двоичный ключ MEK? Он и не преобразуется. Media Encryption Key для единожды созданного контейнера неизменен; он хранится в зашифрованном (точнее сказать, «обёрнутом», wrapped) виде прямо в составе контейнера, а в «развёрнутом» виде используется для доступа к данным.
Ключ шифрования данных MEK в обязательном порядке шифруется (дальше будет тавтология) ключом шифрования ключа шифрования Key Encryption Key (KEK). Без KEK невозможно расшифровать MEK, а без MEK невозможно расшифровать данные. Для чего нужна такая сложная схема? Например, для того, чтобы пользователь мог сменить пароль от зашифрованного диска без обязательной расшифровки и перешифровки всего содержимого. Однако роль пары ключей MEK/KEK этим сценарием не ограничивается. Так, достаточно будет затереть несколько сотен байт в заголовке контейнера (перезаписав область, в которой хранится MEK), и контейнер никто и никогда больше расшифровать не сможет, даже если точно известен пароль. Возможность моментального и безвозвратного уничтожения данных – важная часть общей стратегии безопасности.
Каким образом из пароля получается ключ KEK? VeraCrypt проводит циклическую последовательность односторонних (необратимых) математических преобразований – хеш-функций, причём количество циклов достаточно велико: по умолчанию преобразование производится 500,000 раз. Таким образом, с настройками «по умолчанию» на вычисление одного-единственного ключа KEK на основе введённого пароля VeraCrypt потратит от одной до 5-6 секунд.
Здесь наступает важный момент. В предыдущей главе были приведены скорости работы алгоритмов шифрования, а шифр AES оказался как самым быстрым, так и достаточно безопасным. С выбором алгоритма хеширования ситуация обратная: самый нестандартный и самый медленный алгоритм оказывается и наиболее безопасным. Производительность алгоритмов хеширования на единственном CPU Intel i7-9700K выглядит следующим образом:
Точно так же, как и в случае с алгоритмами шифрования, для проведения атаки на зашифрованный диск эксперт должен указать точный алгоритм хеширования – либо провести атаку на весь спектр алгоритмов.
Насколько быстро или медленно работает перебор паролей? На примере последней версии Elcomsoft Distributed Password Recovery 4.20 с поддержкой VeraCrypt мы получили следующие цифры:
Скорость атаки в стандартной конфигурации (алгоритм шифрования AES, хэш-функция – SHA-512) – 1140 паролей в секунду с загрузкой всех ядер процессора и использованием вычислительных ресурсов видеокарты NVIDIA GeForce 2070. Если провести подобную атаку на диск, зашифрованный алгоритмом Serpent, то цифры не изменятся (нет, мы не копировали данные: все цифры были перепроверены несколько раз). Скорость перебора в гораздо большей степени зависит от функции хеширования и в меньшей – от алгоритма шифрования. Впрочем, последовательное использование двух шифров уменьшит скорость перебора, а трёх – уменьшит ещё сильнее; разница, тем не менее, несравнима с тем, какое влияние на скорость перебора оказывает выбор хеш-функции. Так, выбор Whirlpool вместо SHA-512 замедляет скорость перебора с 1140 до 74.6 паролей в секунду. Самой медленной будет атака по всему спектру возможностей: всего 6.63 паролей в секунду, в 171 раз медленнее атаки с настройками «по умолчанию».
Elcomsoft Distributed Password Recovery позволяет проводить атаки с использованием как аппаратного ускорения (видеокарт AMD и NVIDIA), так и с использованием множества компьютеров, объединённых в единую вычислительную сеть. Тем не менее, если атака проводится на зашифрованный диск с неизвестными параметрами защиты, имеет смысл воспользоваться возможностями «умных» атак на основе как стандартных словарей, так и словарей, составленных из известных паролей пользователя (о том, как их извлечь из браузера Google Chrome, резервных копий iOS или облачных сервисов iCloud, Google Drive и Microsoft Account, мы писали неоднократно).
В EDPR можно ограничить наборы символов, в рамках которых будет осуществляться перебор:
В программе также доступна возможность автоматически перебирать распространённые вариации известных паролей (например, Password1, password1967 or pa$$w0rd):
Об использовании масок мы недавно писали. Маски – один из важнейших инструментов для эффективного перебора паролей:
В особо сложных случаях на помощь приходят гибридные атаки, позволяющие комбинировать слова из одного или двух словарей и использовать правила, основанные на скриптах:
В ряде случаев восстановление оригинального пароля к контейнеру в разумные сроки не представляется возможным. В таких случаях стоит рассмотреть альтернативные варианты.
Извлечь готовый ключ шифрования и с его помощью смонтировать (или расшифровать целиком) зашифрованный раздел – самый быстрый и эффективный способ, которым можно воспользоваться. Суть его заключается в следующем.
Для того, чтобы расшифровать данные, криптоконтейнер не использует пароль. Для шифрования любым алгоритмом используется двоичный ключ переменной длины, так называемый Data Encryption Key или Media Encryption Key (MEK). Этот ключ шифрования (MEK) хранится в оперативной памяти компьютера; он же попадает в файлы гибернации и подкачки. Наличие ключа в оперативной памяти требуется для того, чтобы программа-криптоконтейнер могла получить доступ к зашифрованным данным. Обратите внимание: ключ шифрования хранится в оперативной памяти совершенно независимо от того, какой алгоритм шифрования пользователь выбрал в настройках контейнера. AES, TwoFish, Serpent, «Кузнечик» или любая комбинация алгоритмов – независимо от выбора пользователя, ключи шифрования будут храниться в оперативной памяти, а сложность и скорость их извлечения практически одинакова.
Таким образом, сложность этой атаки мало зависит как от выбора алгоритма шифрования, так и от способа преобразования пароля в двоичный ключ.
Есть несколько способов извлечения ключей шифрования. Если зашифрованный том был смонтирован во время изъятия компьютера, могут быть доступны следующие способы:
Для извлечения ключей, снятия и анализа образа оперативной памяти используйте Elcomsoft Forensic Disk Decryptor:
Дополнительная информация в англоязычном разделе блога:
Производительное решение для восстановление паролей к десяткам форматов файлов, документов, ключей и сертификатов. Аппаратное ускорение с использованием потребительских видеокарт и лёгкое масштабирование до 10,000 рабочих станций делают решение Элкомсофт оптимальным для исследовательских лабораторий и государственных агентств.
Официальная страница Elcomsoft Distributed Password Recovery »
Elcomsoft Forensic Disk Decryptor обеспечивает моментальный доступ к содержимому зашифрованных дисков, созданных BitLocker, FileVault 2, PGP Disk, TrueCrypt и VeraCrypt. Доступны режимы полной расшифровки и оперативного доступа к информации. Ключи для расшифровки содержимого зашифрованных дисков извлекаются из слепка оперативной памяти компьютера, методом атаки через порт FireWire либо анализом файла гибернации. Возможно использования паролей и депонированных ключей.