сколько слотов для ключей поддерживает luks2?

У меня нет ответа на ваш основной вопрос, но мне стало интересно узнать о вашем втором вопросе «что я уже пробовал», и на данный момент это лучшее, что я могу сделать, чтобы заставить это работать с помощью одной команды, без подоболочки.:

IFS=: find_path=(${PATH}) && find "${find_path[@]}" <your_find_params>

Это уродливо и доказывает, что одна -команда/без -подоболочки, вероятно, не стоит затраченных усилий. В комментарии Стефана ниже вы можете вместо этого сделать что-то вроде

(IFS=:; set -f; find $PATH <your_find_params>)

Редактировать:Конечно, это не относится к случаю новой строки, встроенной в компонент пути, но кого это волнует... мы живем в реальном мире.:)

1
22.11.2019, 23:29
2 ответа

Для LUKS1 это 8 фиксированных слотов для клавиш -.

Для LUKS2, в настоящее время не более 32 клавиш -слотов:

#define LUKS2_KEYSLOTS_MAX       32

Попытка добавить больше просто приводит к сообщению об ошибке «Все слоты ключей заполнены».

Однако ответ может оказаться не таким уж простым. Ограничение в 32 существует в коде, но вообще не упоминается в LUKS2 On -Спецификации формата диска .

Заголовок LUKS2 на самом деле способен хранить более 32 слотов ключей -. Или, возможно, он даже не сможет хранить 8 из них. Это зависит от смещения данных, размера области слотов ключей, а также размера, необходимого для каждого отдельного ключа.

Для недавно отформатированного заголовка по умолчанию используется большое смещение данных, поэтому вы можете легко получить 32 ключевых слота -. Если вы конвертировали из LUKS1 (со смещением данных всего в 2 МБ ), он не изменился в 8 слотах ключей -. Если смещение данных меньше, оно может быть меньше, чем 8 ключевых слотов -.

При смещении данных в 1МиБ вы получаете только 3 слота ключей -(cryptsetupвыдает предупреждение об этом):

# truncate -s 100M foobar.img
# cryptsetup luksFormat --offset=2048 foobar.img
WARNING: keyslots area (1015808 bytes) is very small,
available LUKS2 keyslot count is very limited.
# cryptsetup luksAddKey foobar.img 
# cryptsetup luksAddKey foobar.img 
# cryptsetup luksAddKey foobar.img 
No space for new keyslot.

В этом конкретном примере можно было использовать только 3 ключевых слота -, прежде чем в заголовке закончилось место для хранения большего количества:

# cryptsetup luksDump foobar.img
LUKS header information
Version:        2
Epoch:          5
Metadata area:  16384 [bytes]
Keyslots area:  1015808 [bytes]
[...]
Keyslots:
  0: luks2
    [...]
    Area offset:32768 [bytes]
    Area length:258048 [bytes]
    Digest ID:  0
  1: luks2
    [...]
    Area offset:290816 [bytes]
    Area length:258048 [bytes]
    Digest ID:  0
  2: luks2
    [...]
    Area offset:548864 [bytes]
    Area length:258048 [bytes]
    Digest ID:  0

Здесь общая доступная площадь слотов ключей составляет всего 1015808 байт. Каждый ключ имеет размер 257048 байт. Для хранения дополнительного ключа потребуется как минимум 1032192 байта, поэтому в данном конкретном случае больше ключей просто не помещается.

Если вас не волнует выравнивание MiB, можно сделать смещение еще меньше,оставив вам только один слот для ключа -.

3
27.01.2020, 23:17

Luks2 не имеет фиксированных слотов для ключей, как Luks1. Сколько Вы можете хранить, зависит от:
*luks2 -метаданные -размер (макс. 4 МБ можно зарезервировать в соответствии со спецификацией ), где определения слотов ключей хранятся вместе со всеми другими метаданными (в формате JSON, поэтому нет определенного резервирования области для ключей, а также нет требований к абсолютному размеру каждого ключа ).
*luks2 -слоты для ключей -размер (макс.128 МБ могут быть зарезервированы в соответствии со спецификацией ), где сохраняется фактическое криптографическое содержимое слотов ключей. Здесь это также свободная структура, поэтому от реальных данных слотов зависит, сколько ключей вы можете получить с определенным размером.
Я не считал, но думаю, что слотов в большинстве случаев может быть много.

1
27.01.2020, 23:17

Теги

Похожие вопросы