Шифрование дисков в Linux: LUKS2, Argon2 и аппаратное ускорение

16 августа, 2022, Oleg Afonin
Рубрика: «Разное»
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Шифрование по стандарту LUKS широко используется в Linux. LUKS2 – новая версия стандарта, которая делает шифрование более надёжным и безопасным. Как выяснилось, даже слишком безопасным: скорость перебора паролей к дискам LUKS2, зашифрованным с новыми установками по умолчанию, в несколько сот раз медленнее атак на оригинальную версию LUKS2. Почему так получилось и что с этим можно сделать? Читайте в сегодняшней статье.

Шифрование дисков: ключи, пароли и алгоритмы

Утилиты шифрования дисков используют симметричную криптографию для преобразования информации в зашифрованный поток данных. В подавляющем большинстве случаев используется алгоритм шифрования AES, для которого (единственного из множества алгоритмов) в большинстве современных платформ доступно аппаратное ускорение, а в процессорах Intel – специальный набор инструкций AES-NI. Как правило, используется ключ шифрования длиной 256 бит, но попадаются и 128-битные ключи (например, Microsoft BitLocker по умолчанию использует именно такие ключи).

Иногда пользователь может выбрать, каким алгоритмом шифровать данные, а в ряде случаев доступен и выбор алгоритма, посредством которого текстовый пароль преобразуется в двоичный ключ.

Выбор функции преобразования ключа – Key Derivation Function (KDF) не менее, а для целей восстановления доступа – даже более важен. Эта функция используется для одностороннего (то есть, несимметричного и принципиально необратимого) преобразования текстового пароля (или другого протектора – например, данных сертификата или содержимого файла) в двоичный ключ заданной длины. Как правило, алгоритм KDF достаточно прост: входные данные (а ими является не только сам пароль, но и дополнительный набор данных – «соль») преобразовываются посредством хэш-функции, причём процедура проводится итеративно с целью замедлить скорость потенциальной атаки. Чем большее количество итераций используется для преобразования пароля, тем ниже будет скорость перебора.

Число итераций может быть фиксированным или произвольным. LUKS использует произвольное количество итераций, которое вычисляется в процессе создания зашифрованного диска или контейнера в зависимости от производительности системы. Единожды заданное число итераций в LUKS в дальнейшем не меняется.

LUKS: первый вариант спецификации

LUKS (от Linux Unified Key Setup) — спецификация формата шифрования дисков, разработанная для использования в ОС на основе ядра Linux. Поддержка LUKS доступна во множестве дистрибутивов Linux как для настольных компьютеров, так и для специализированных устройств. При помощи LUKS могут быть зашифрованы диски, работающие в составе сетевых накопителей QNAP и некоторых других производителей.

Для проведения атаки на зашифрованный диск нужно знать все параметры защиты, включая алгоритм и метод шифрования, длину ключа, выбранную хэш-функцию и число итераций. В некоторых реализациях шифрования дисков эти данные являются ещё одним секретом, что заставляет перебирать не только пароль, но и все возможные параметры шифрования (так, например, работает VeraCrypt). В LUKS все параметры шифрования сохраняются в составе контейнера в открытом виде.

LUKS2 и Argon2: надёжнее и безопаснее

По утверждениям разработчиков, основные отличия второй версии спецификации 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 паролей в секунду.

Шаг 1: извлечение метаданных шифрования

Как мы уже говорили, для проведения атаки на зашифрованный диск необходимо знать все параметры шифрования и иметь доступ к слотам ключей. Эти данные содержатся в заголовке LUKS2, который необходимо извлечь из зашифрованного диска или контейнера. Таким образом, для расшифровки LUKS2 нужно проделать следующие шаги:

  1. Извлечь метаданные шифрования (заголовок LUKS2) из состава контейнера или диска утилитой Elcomsoft Forensic Disk Decryptor или Elcomsoft System Recovery. Данные сохраняются в небольшом файле.
  2. Открыть файл с метаданными шифрования в Elcomsoft Distributed Password Recovery, выбрать слот ключа, настроить и провести атаку.
  3. После того, как пароль будет найден, смонтировать или расшифровать зашифрованный диск.

Для извлечения метаданных шифрования можно воспользоваться одним из двух инструментов. При исследовании непосредственно компьютера подозреваемого его можно загрузить с USB-накопителя, созданного программой Elcomsoft System Recovery. В этом случае метаданные шифрования можно извлечь непосредственно с исследуемого компьютера.

Если же в вашем распоряжении диски или образы дисков, то для извлечения метаданных следует воспользоваться программой Elcomsoft Forensic Disk Decryptor.

Использование Elcomsoft System Recovery

Внимание: используйте Elcomsoft System Recovery версии 8.30 или более новой.

  1. Скачайте Elcomsoft System Recovery и запустите программу установки. Создайте загрузочный USB накопитель.
  2. Загрузите исследуемый компьютер с созданного на предыдущем шаге USB накопителя. Вы попадёте в среду Windows PE. Утилита Elcomsoft System Recovery запустится автоматически.
  3. Просмотрите список дисков.
  4. Выберите диски LUKS2 и нажмите “Dump” для сохранения метаданных шифрования.
  5. Откройте файл с метаданными шифрования в Elcomsoft Distributed Password Recovery для настройки атаки.

Использование Elcomsoft Forensic Disk Decryptor

Внимание: используйте Elcomsoft Forensic Disk Decryptor версии 2.20 или выше.

  1. Запустите Elcomsoft Forensic Disk Decryptor.
  2. Выберите опцию “Extract/prepare data for further password recovery”.
  3. Выберите диск или образ диска LUKS. В примере ниже выбран физический диск.
  4. EFDD отобразит список зашифрованных томов. Выберите том для извлечения метаданных.
  5. Нажмите Next для сохранения метаданных шифрования в файл.

Шаг 2: восстановление пароля

LUKS обеспечивает стойкую защиту от перебора, но современные инструменты для взлома паролей позволяют значительно ускорить перебор с использованием как аппаратных ускорителей на основе видеокарт, так и многочисленных компьютеров, объединённых в единую вычислительную сеть.

Для настройки атаки выполните следующие действия.

  1. Запустите Elcomsoft Distributed Password Recovery.
  2. Откройте файл с метаданными LUKS, сохранённый при помощи Elcomsoft Forensic Disk Decryptor либо Elcomsoft System Recovery.
  3. Выберите слот ключа.
  4. Настройте и запустите атаку.

Скорость перебора – важный, но не основной параметр, влияющий на время восстановления пароля. Использование «умных» атак может существенно сократить времязатраты – особенно в случаях, когда о пароле хоть что-нибудь известно. К примеру, если вам удалось извлечь список других паролей пользователя из облака Google, iCloud или Microsoft Account или из браузера пользователя (например, Chrome, Microsoft Edge, Firefox и др.), возможно, выяснятся некоторые закономерности, согласно которым пользователь составляет пароли. К примеру, могут использоваться определённые наборы символов:

Elcomsoft Distributed Password Recovery предлагает многочисленные варианты атак по шаблонам (например, таким, по которым создаются пароли вида Password1, password1967 или pa$$w0rd):

Можно использовать маски:


В особо сложных случаях можно подключать до двух словарей и использовать правила генерации паролей на основе скриптов:

Заключение

LUKS – весьма популярная система шифрования дисков, а LUKS2 – ещё более надёжная и безопасная версия этой системы. Новый алгоритм преобразования пароля Argon2 делает LUKS2 образцовым механизмом шифрования дисков, устойчивым ко многим видам атак.


  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

REFERENCES:

Elcomsoft Distributed Password Recovery

Производительное решение для восстановление паролей к десяткам форматов файлов, документов, ключей и сертификатов. Аппаратное ускорение с использованием потребительских видеокарт и лёгкое масштабирование до 10,000 рабочих станций делают решение Элкомсофт оптимальным для исследовательских лабораторий и государственных агентств.

Официальная страница Elcomsoft Distributed Password Recovery »


Elcomsoft Forensic Disk Decryptor

Elcomsoft Forensic Disk Decryptor обеспечивает моментальный доступ к содержимому зашифрованных дисков, созданных BitLocker, FileVault 2, PGP Disk, TrueCrypt и VeraCrypt. Доступны режимы полной расшифровки и оперативного доступа к информации. Ключи для расшифровки содержимого зашифрованных дисков извлекаются из слепка оперативной памяти компьютера, методом атаки через порт FireWire либо анализом файла гибернации. Возможно использования паролей и депонированных ключей.

Официальная страница Elcomsoft Forensic Disk Decryptor »


Elcomsoft System Recovery

Elcomsoft System Recovery поможет восстановить доступ к учётным записям к локальным учётным записям Windows и универсальной учётной записи Microsoft Account и создать образ диска для последующего анализа. Поддерживается как моментальный сброс, так и восстановление оригинального пароля. С помощью Elcomsoft System Recovery можно предоставить административные привилегии любому пользователю. Продукт поставляется вместе с лицензионной загрузочной средой Windows PE.

Официальная страница Elcomsoft System Recovery »

НАШИ НОВОСТИ