Isso é mais um comentário do que uma resposta, desculpe. Mas como você ainda não recebeu respostas, eu queria escrever algo de qualquer maneira.
Quanto a como funciona:
No Initramfs, você geralmente tem um processo mestre (geralmente um script /init
baseado em busybox) que é responsável por disponibilizar a partição raiz antes de transferir o processo de inicialização para o sistema init real da instalação do Ubuntu.
No caso de dropbear
no Initramfs, esse é um processo separado iniciado por /init
. Ao entrar no dropbear, você obtém um shell que é outro processo. Enquanto isso, o original /init
tem que estar rodando e esperando por algo, neste caso a senha do LUKS.
Então, o que o script /init
mais provavelmente faz aqui, assim que começou o dropbear, é criar um canal nomeado ou fifo, ou seja, o /lib/cryptsetup/passfifo
. E então ele lê a partir desse pipe nomeado. Esta leitura irá bloquear até que realmente haja algo para ler, então é assim que /init
trava e espera por entrada.
Então alguns anos depois você loga em dropbear
e faz seu echo passphrase > /lib/cryptsetup/passfifo
, ponto em que /init
acorda de seu sono e continua para desbloquear LUKS e continuar com o resto do processo de inicialização.
E essa é basicamente a ideia geral de como isso funciona. Se não houver documentação para isso, você teria que ler o script de shell.
Quanto a uma chave criptografada GPG no Initramfs, tenho certeza de que esse é o método padrão no Ubuntu de alguma forma, provavelmente configurado via /etc/crypttab
. Você verificou o wiki para um howto?
Certamente, exigiria que o GPG fosse incluído no Initramfs. mas eu delineei uma abordagem alternativa aqui que poderia ser feita para funcionar sem dependências adicionais:
Como eu uso o dm-crypt (LUKS) com o GnuPG para usar dois fatores para o FDE?
O problema com isto é claro que não é padrão, então, embora possa ser mais simples em teoria, pode ser mais difícil de configurar.