Desejo usar criptografia completa de disco usando Luks no Ubuntu 14.04. No entanto, desejo usar meu próprio script python para executar a funcionalidade de gerar a chave de descriptografia durante a inicialização do dispositivo, que ele envia para Luke para permitir a descriptografia.
Idealmente, eu gostaria de "resultado do script python" + "o usuário insere a chave de descriptografia", que é então passada para Luke para permitir que o dispositivo seja descriptografado. Posso então implementar minha própria funcionalidade no python para criar um 'segundo fator' para permitir a descriptografia do dispositivo.
Eu pesquisei, mas realmente não encontrei a resposta para minha pergunta. Você pode ajudar ou dar algum conselho?
Obrigado.
Responder1
Se você usar criptografia completa de disco para seu sistema de arquivos raiz, terá que resolver o problema de que o interpretador Python normalmente não está disponível no início da inicialização. Você precisará de vários megabytes de espaço em disco não criptografado adicional para armazenar, por exemplo, /usr/bin/python2.7
e um monte de coisas essenciais, /usr/lib/python2.7
e terá que desenvolver várias modificações para /boot/initrd
fazer isso funcionar.
O processo de inicialização é invocado /scripts/local-top/cryptroot
a partir da raiz do initrd. Isso normalmente chama a ferramenta plymouth ask-for-password --prompt
. Isso é usado para solicitar a senha ao usuário antes que a interface gráfica do usuário seja iniciada. Esta senha, por sua vez, é canalizada para o cryptsetup.
Se você ainda deseja continuar com essa abordagem, você pode/deve usar um arquivo de configuração no diretório de configuração /etc/initramfs-tools/
para configurar um novo valor para você, cryptkeyscript
em vez de hackear o script /usr/share/initramfs-tools/scripts/local-top/cryptroot
diretamente. Isso tornará a instalação de atualizações de distribuição do sistema operacional menos complicada posteriormente.
Para mais informações consulte a documentação dos pacotes initramfs-tools, cryptsetup e plymouth e dê uma olhada no shell script cryptroot
que mencionei acima.