Я хочу использовать полное шифрование диска с помощью Luks на Ubuntu 14.04. Однако я хочу использовать свой собственный скрипт Python для выполнения функции генерации ключа дешифрования во время загрузки устройства, который затем отправляется в Lukes для разрешения дешифрования.
В идеале я хотел бы "результат скрипта python" + "пользователь вводит ключ дешифрования", который затем передается lukes, чтобы устройство могло расшифровать. Затем я могу реализовать собственную функциональность в python, чтобы создать "второй фактор", чтобы устройство могло расшифровать.
Я искал, но так и не нашел ответа на свой вопрос. Можете ли вы помочь или дать совет?
Спасибо.
решение1
Если вы используете полное шифрование диска для вашей корневой файловой системы, то вам придется решить проблему, что интерпретатор Python обычно недоступен на ранней стадии загрузки. Вам понадобится несколько мегабайт дополнительного незашифрованного дискового пространства для хранения, например, /usr/bin/python2.7
и кучи необходимых вещей, /usr/lib/python2.7
и вам придется разработать несколько модификаций для /boot/initrd
того, чтобы это работало.
Процесс загрузки вызывается /scripts/local-top/cryptroot
из корня initrd. Обычно это вызывает инструмент plymouth ask-for-password --prompt
. Он используется для запроса у пользователя парольной фразы перед запуском графического пользовательского интерфейса. Эта парольная фраза, в свою очередь, передается в cryptsetup.
Если вы все еще хотите продолжать использовать этот подход, вы можете/должны использовать файл конфигурации в каталоге конфигурации, /etc/initramfs-tools/
чтобы настроить новое значение для себя, cryptkeyscript
вместо того, чтобы напрямую взламывать скрипт /usr/share/initramfs-tools/scripts/local-top/cryptroot
. Это сделает установку обновлений дистрибутива ОС менее обременительной в дальнейшем.
Для получения дополнительной информации обратитесь к документации пакетов initramfs-tools, cryptsetup и plymouth, а также взгляните на скрипт оболочки, который cryptroot
я упомянул выше.