我希望在 ubuntu 14.04 上使用 Luks 进行全盘加密。但是,我希望使用自己的 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
我上面提到的 shell 脚本。