Я хочу использовать полное шифрование диска с помощью Luks в ubuntu 14.04. Однако я хочу использовать свой собственный скрипт python для выполнения функции генерации ключа дешифрования во время загрузки устройства, который затем отправляется lukes для его расшифровки.
В идеале я хотел бы, чтобы «результат из сценария python» + «пользователь вводит ключ дешифрования», который затем передается lukes, чтобы устройство могло дешифровать. Затем я могу реализовать свои собственные функции в питоне, чтобы создать «второй фактор», позволяющий устройству расшифровать.
Я искал, но так и не нашел ответа на свой вопрос. Вы можете помочь или дать совет?
Спасибо.
Если вы используете полное шифрование диска для своей корневой файловой системы, вам придется решить проблему, заключающуюся в том, что интерпретатор 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
Я упоминал выше.