При использовании полного шифрования диска с Ubuntu (в отличие от шифрования homedir) для шифрования тома используется dm-crypt с LUKS. В установщике (по крайней мере, на 12.04 альтернативный) вы можете выбрать настройку с помощью ключевой фразы или ключевого файла. Я хотел бы использовать комбинацию двух; не либо, но и то и другое.
Почему? Потому что это повышает безопасность (двухфакторный); вам нужно что- то иметь, и вам нужно что- то знать, чтобы разблокировать это. Затем я хочу поместить ключевой файл на маленькое съемное запоминающее устройство (USB-накопитель) и подключать его только во время загрузки. Результатом должно быть то, что необходимо вставить правильную флешку и предоставить правильную фразу-пароль для разблокировки корневого раздела.
Итак, другими словами, я хочу, чтобы при загрузке меня спрашивали о парольной фразе, которой шифруется ключевой файл на внешнем диске.
Я вижу /usr/share/initramfs-tools/hooks/cryptgnupg
вспомогательный скрипт, который может помочь в его выполнении, но я понятия не имею, как его использовать.
Просто чтобы избежать путаницы: я не прошу, чтобы добавить дополнительный ключ к тому, чтобы разблокировать его.
источник
/usr/share/doc/cryptsetup/README.gnupg
. Я постараюсь найти время для его изменения, чтобы он использовал ключевой файл с внешнего носителя.Ответы:
Я делаю то же самое, однако, боюсь, мой ответ не будет удовлетворительным, так как по разным причинам я пошел с полностью пользовательскими Initramfs .
Вместо того
GnuPG
, что является дополнительным двоичным файлом, который должен быть включен в Initramfs (и в случаеGnuPG-2
довольно сложного), я просто использовал то, что уже есть. И это очевидноdm-crypt/LUKS
.Итак, предположим, у вас есть
keyfile
. Желательно со случайными данными.Добавьте шифрование для этого с LUKS (не стесняйтесь добавлять ваши настройки шифра по вашему выбору).
Теперь у вас есть ключевой файл (512 байт) и keyfile.luks (2 МБ, для которого cryptsetup по какой-то причине необходимо написать заголовок 192k LUKS). Так как Initramfs будут сжаты в любом случае, это не так уж плохо (все же меньше, чем
GnuPG
).Теперь вы можете расшифровать ключевой файл:
И у вас есть 512 байт случайных данных в
/dev/mapper/lukskey
. (Вы можете написать в него, если хотите изменить его, чтобы мы могли инициализировать файл с нулями раньше.)В Initramfs
init
вы можете затем открыть реальный том LUKS с ним (при условии, что вы сначала добавили ключ).Такой подход делает GnuPG совершенно лишним, плюс вы получаете все преимущества LUKS, такие как множественные пароли для ключа, шифр по вашему выбору и так далее. Не говоря уже о хорошем (в основном обычном) запросе пароля с несколькими повторными попытками.
источник