Шифрование по стандарту LUKS широко используется в Linux. LUKS2 – новая версия стандарта, которая делает шифрование более надёжным и безопасным. Как выяснилось, даже слишком безопасным: скорость перебора паролей к дискам LUKS2, зашифрованным с новыми установками по умолчанию, в несколько сот раз медленнее атак на оригинальную версию LUKS2. Почему так получилось и что с этим можно сделать? Читайте в сегодняшней статье.
Утилиты шифрования дисков используют симметричную криптографию для преобразования информации в зашифрованный поток данных. В подавляющем большинстве случаев используется алгоритм шифрования AES, для которого (единственного из множества алгоритмов) в большинстве современных платформ доступно аппаратное ускорение, а в процессорах Intel – специальный набор инструкций AES-NI. Как правило, используется ключ шифрования длиной 256 бит, но попадаются и 128-битные ключи (например, Microsoft BitLocker по умолчанию использует именно такие ключи).
Иногда пользователь может выбрать, каким алгоритмом шифровать данные, а в ряде случаев доступен и выбор алгоритма, посредством которого текстовый пароль преобразуется в двоичный ключ.
Выбор функции преобразования ключа – Key Derivation Function (KDF) не менее, а для целей восстановления доступа – даже более важен. Эта функция используется для одностороннего (то есть, несимметричного и принципиально необратимого) преобразования текстового пароля (или другого протектора – например, данных сертификата или содержимого файла) в двоичный ключ заданной длины. Как правило, алгоритм KDF достаточно прост: входные данные (а ими является не только сам пароль, но и дополнительный набор данных – «соль») преобразовываются посредством хэш-функции, причём процедура проводится итеративно с целью замедлить скорость потенциальной атаки. Чем большее количество итераций используется для преобразования пароля, тем ниже будет скорость перебора.
Число итераций может быть фиксированным или произвольным. LUKS использует произвольное количество итераций, которое вычисляется в процессе создания зашифрованного диска или контейнера в зависимости от производительности системы. Единожды заданное число итераций в LUKS в дальнейшем не меняется.
LUKS (от Linux Unified Key Setup) — спецификация формата шифрования дисков, разработанная для использования в ОС на основе ядра Linux. Поддержка LUKS доступна во множестве дистрибутивов Linux как для настольных компьютеров, так и для специализированных устройств. При помощи LUKS могут быть зашифрованы диски, работающие в составе сетевых накопителей QNAP и некоторых других производителей.
Для проведения атаки на зашифрованный диск нужно знать все параметры защиты, включая алгоритм и метод шифрования, длину ключа, выбранную хэш-функцию и число итераций. В некоторых реализациях шифрования дисков эти данные являются ещё одним секретом, что заставляет перебирать не только пароль, но и все возможные параметры шифрования (так, например, работает VeraCrypt). В LUKS все параметры шифрования сохраняются в составе контейнера в открытом виде.
По утверждениям разработчиков, основные отличия второй версии спецификации LUKS2 от оригинала – в увеличенной надёжности хранения метаданных благодаря резервированию. Однако этим нововведения не ограничиваются. Если в первой версии LUKS для преобразования пароля в двоичный ключ по умолчанию использовалась функция PBKDF2+SHA-256, организовать атаку на которую посредством графического ускорителя оказалось несложно, то в LUKS2 разработчики применили принципиально новый подход.
Новая функция преобразования пароля, используемая в LUKS2 по умолчанию – Argon2 в его гибридном варианте argon2id. Алгоритм Argon2 специально разработан для предотвращения атак, использующих аппаратное ускорение.
Новый алгоритм сравним по скорости вычисления на центральном процессоре с традиционными функциями хеширования, однако был спроектирован таким образом, чтобы для него невозможно (или очень сложно и дорого) было бы реализовать атаку с аппаратным ускорением. Суть аппаратного ускорения — в распараллеливании потоков, а для вычисления функции Argon2 требуется большое количество оперативной памяти. Объём оперативной памяти в современных видеокартах позволяет одновременно запускать очень небольшое количество потоков, вычисляющих значение функции Argon2; накладные расходы при этом заметно превышают выгоду от использования видеокарты. В результате перебор паролей к LUKS2 с функцией преобразования пароля Argon2 реализован только средствами центрального процессора; ускорение на GPU недоступно.
Насколько быстро (а точнее, насколько медленно) работает перебор паролей при использовании LUKS2 в конфигурации с Argon2? В этом случае атака будет выполняться силами только центрального процессора. Замеры показали, что процессор Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz способен выдать скорость в 2 (прописью: два) пароля в секунду. На более мощных и современных процессорах скорости будут выше, но порядок величины остаётся неизменным. Мы же сделаем вывод о высокой защищённости томов LUKS2 в конфигурации Argon2 и их стойкости против атак методом перебора.
Несмотря на то, что Argon2 используется в LUKS2 по умолчанию, при создании зашифрованного диска пользователь может использовать другую функцию преобразования пароля. В таких случаях аппаратное ускорение будет полноценно работать, а перебор паролей ускорится на порядки.
Если пользователь отказался от использования Argon2 и предпочёл классическую комбинацию PBKDF2+SHA-256, то скорость перебора на центральном процессоре вырастает в разы, а использование графического ускорителя увеличивает скорость атаки на порядки. На том же процессоре Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz скорость перебора паролей к LUKS2 в конфигурации PBKDF2+SHA-256 составляет 29 паролей в секунду, а подключение NVIDIA GeForce RTX 2070 GPU выдаёт скорость в 381 паролей в секунду.
Как мы уже говорили, для проведения атаки на зашифрованный диск необходимо знать все параметры шифрования и иметь доступ к слотам ключей. Эти данные содержатся в заголовке LUKS2, который необходимо извлечь из зашифрованного диска или контейнера. Таким образом, для расшифровки LUKS2 нужно проделать следующие шаги:
Для извлечения метаданных шифрования можно воспользоваться одним из двух инструментов. При исследовании непосредственно компьютера подозреваемого его можно загрузить с USB-накопителя, созданного программой Elcomsoft System Recovery. В этом случае метаданные шифрования можно извлечь непосредственно с исследуемого компьютера.
Если же в вашем распоряжении диски или образы дисков, то для извлечения метаданных следует воспользоваться программой Elcomsoft Forensic Disk Decryptor.
Использование Elcomsoft System Recovery
Внимание: используйте Elcomsoft System Recovery версии 8.30 или более новой.
Использование Elcomsoft Forensic Disk Decryptor
Внимание: используйте Elcomsoft Forensic Disk Decryptor версии 2.20 или выше.
LUKS обеспечивает стойкую защиту от перебора, но современные инструменты для взлома паролей позволяют значительно ускорить перебор с использованием как аппаратных ускорителей на основе видеокарт, так и многочисленных компьютеров, объединённых в единую вычислительную сеть.
Для настройки атаки выполните следующие действия.
Скорость перебора – важный, но не основной параметр, влияющий на время восстановления пароля. Использование «умных» атак может существенно сократить времязатраты – особенно в случаях, когда о пароле хоть что-нибудь известно. К примеру, если вам удалось извлечь список других паролей пользователя из облака Google, iCloud или Microsoft Account или из браузера пользователя (например, Chrome, Microsoft Edge, Firefox и др.), возможно, выяснятся некоторые закономерности, согласно которым пользователь составляет пароли. К примеру, могут использоваться определённые наборы символов:
Elcomsoft Distributed Password Recovery предлагает многочисленные варианты атак по шаблонам (например, таким, по которым создаются пароли вида Password1, password1967 или pa$$w0rd):
Можно использовать маски:
В особо сложных случаях можно подключать до двух словарей и использовать правила генерации паролей на основе скриптов:
LUKS – весьма популярная система шифрования дисков, а LUKS2 – ещё более надёжная и безопасная версия этой системы. Новый алгоритм преобразования пароля Argon2 делает LUKS2 образцовым механизмом шифрования дисков, устойчивым ко многим видам атак.
Производительное решение для восстановление паролей к десяткам форматов файлов, документов, ключей и сертификатов. Аппаратное ускорение с использованием потребительских видеокарт и лёгкое масштабирование до 10,000 рабочих станций делают решение Элкомсофт оптимальным для исследовательских лабораторий и государственных агентств.
Официальная страница Elcomsoft Distributed Password Recovery »
Elcomsoft Forensic Disk Decryptor обеспечивает моментальный доступ к содержимому зашифрованных дисков, созданных BitLocker, FileVault 2, PGP Disk, TrueCrypt и VeraCrypt. Доступны режимы полной расшифровки и оперативного доступа к информации. Ключи для расшифровки содержимого зашифрованных дисков извлекаются из слепка оперативной памяти компьютера, методом атаки через порт FireWire либо анализом файла гибернации. Возможно использования паролей и депонированных ключей.
Elcomsoft System Recovery поможет восстановить доступ к учётным записям к локальным учётным записям Windows и универсальной учётной записи Microsoft Account и создать образ диска для последующего анализа. Поддерживается как моментальный сброс, так и восстановление оригинального пароля. С помощью Elcomsoft System Recovery можно предоставить административные привилегии любому пользователю. Продукт поставляется вместе с лицензионной загрузочной средой Windows PE.