GRUB занимает слишком много времени, чтобы разблокировать зашифрованный загрузочный раздел

Я установил GRUB2 в зашифрованный загрузочный раздел, как описано здесь . Выбранный алгоритм хэширования для моего luksFormatsha512 , с luksFormat временем по умолчанию (который составляет 2 секунды).

Этот зашифрованный раздел занимает чуть более 2 секунд, чтобы разблокировать, если он сделан из командной строки (либо из архивирования, либо из запущенной системы), но GRUB занимает в среднем 10,5 секунд, чтобы разблокировать его. Это медленнее, чем приемлемо для моего сценария.

Я нашел других людей, имеющих такую ​​же проблему здесь и здесь . Во второй ссылке пользователь frostschutz опубликовал некоторые подсказки о том, что может быть причиной этого, о котором я думаю, 2 очень верны:

1) CPU может работать в режиме энергосбережения во время разблокировки GRUB

2) GRUB может использовать реализацию хеширования, которая намного медленнее, чем система. Он сделал бенчмарк, который можно найти здесь .

Поскольку шифрование загрузочного раздела становится все более распространенным, и пока нет удовлетворительного ответа на эту проблему, я подумал, что я бы спросил об этом. Что можно сделать, кроме уменьшения количества итераций (что существенно снижает безопасность в сценарии автономной атаки), чтобы противостоять этому (значительно) медленному времени дешифрования загрузчиком GRUB?

Я бы хотел хотя бы точно определить причину. Есть ли способ проверить (и, возможно, изменить) часы процессора на экране загрузчика? Я знаю, что у GRUB есть оболочка; Я открыл его и пробовал cat /proc/cpuinfo но он терпит неудачу с «/ proc not found» или что-то в этом роде. Я также пробовал cpuid , и хотя он не терпит неудачу, он также ничего не возвращает.

В качестве дополнительной информации я получил эти тайминги:

  • GRUB занимает 9 секунд или дольше, чтобы разблокировать загрузочный раздел ( /boot ) после ввода пароля и нажатия Enter .
  • Кажется, что ядро ​​занимает около 7 секунд, чтобы разблокировать корневой раздел ( / ). Опять же, это время после нажатия Enter .
  • Ядро разблокирует и монтирует загрузочный раздел ( /boot ) через crypttab всего за 2 секунды.

Обновления:

  • Я попробовал хэширование SHA256, и потребовалось больше времени (13 секунд). Вероятно, это указывает на то, что GRUB должен использовать 64 бита, как это можно сделать здесь , https://security.stackexchange.com/a/40218/91904 и в ответе frostschutz .

  • Также попробовал SHA1, и он занимает 11,5 секунды.

  • Кажется, не имеет значения, используется ли AES256 или AES512

  • Также не имеет значения, какая файловая система используется для загрузочного раздела.

One Solution collect form web for “GRUB занимает слишком много времени, чтобы разблокировать зашифрованный загрузочный раздел”

GRUB – ранняя загрузка. Нет ОС, еще нет Linux, хотя мы, как правило, забываем, что, поскольку GRUB делает много удивительно сумасшедших вещей само по себе. Таким образом, сообщение a /proc not found .

SHA512 много выигрывает от 64-битных инструкций, но GRUB, возможно, пока не сможет их использовать. Попробуйте SHA256 или SHA1, возможно, они работают лучше для GRUB. Не имеет значения, какая хэш-спецификация вы используете с LUKS, поскольку подсчет iter будет соответствующим образом адаптирован. См. Как изменить hash-spec и время-время существующего устройства LUMS dm-crypt? о том, как попробовать это без повторного шифрования всего.

GRUB, похоже, использует какой-то вариант библиотеки gcrypt для своих потребностей в хэшировании. Я не знаю, действительно ли мой старый критерий действителен. Назад, когда я тестировал, это не самая быстрая библиотека (по крайней мере, так, как она используется в cryptsetup benchmark ), и были удивительно большие различия.

Поэтому, если вы не используете gcrypt с вашим двоичным ключом cryptsetup, это может быть другой причиной разницы во времени для разблокировки. Возможно, вам просто нужно поэкспериментировать, пока не найдете значение, которое работает для вас.

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

По всем неправильным причинам … люди нарушают вашу / загрузку, люди так же легко манипулируют загрузчиком. GRUB поддерживает только самую прямую схему, в чем дело, если она попадает в дешевый кейлоггер?

  • Загрузочный загрузчик Linux из Mac OSX
  • LMDE - пустая клемма при загрузке, без ввода
  • Переустановите grub на mbr без копирования файлов модулей или конфигурации
  • Grub2 не обновляется
  • Может ли GRUB2 совместно использовать системный раздел EFI с Windows?
  • Два дистрибутива linux, grub не обнаруживают другого
  • Черный экран после GRUB
  • Сбой установки элементарной ОС
  • Как вы передаете режимы VGA / VESA с GRUB2?
  • GRUB не находит / загружается в LVM
  • Как заменить Root Drive на Debian?
  • Linux и Unix - лучшая ОС в мире.