Estou usando a abordagem padrão do ubuntu com shim e grub2, combinada com minha própria chave de plataforma (calibração com assinatura própria com sbsign) e uma partição raiz criptografada, para garantir a inicialização segura da instalação do ubuntu. Mas isso verifica apenas o grubx64.efi e o kernel, mas não protege os arquivos initrd.img e grub.cfg na partição de inicialização não criptografada contra modificações maliciosas.
Então, como posso verificar a configuração do initrd e do grub, possivelmente usando um hash sha256, antes de usá-los para inicializar? Essa verificação pode ocorrer no calço, no grub ou em alguma outra ferramenta que eu possa usar além de ou no calço e / ou grub.
O objetivo desta pergunta é impedir a execução do kernel com um ambiente modificado (linha de comando do kernel e initrd) para impedir o vazamento da senha de criptografia da partição raiz para qualquer lugar.
Não encontrou nenhum método para verificar a configuração de inicialização, apesar de vários dias lendo tutoriais / blogs da Web sobre inicialização segura, incluindo o Ubuntu e o PreLoader.efi da Linux Foundation, todos explicando como funciona a verificação de executáveis, incluindo módulos do kernel, mas nenhum que menciona o grub.cfg e (scripts de shell e arquivos de configuração dentro do) initrd, então parece que eu sou o primeiro a solicitar a verificação de não binários no processo de inicialização. As melhores fontes que eu já encontrei são as de Rod Smith .
O que eu não tentei ainda é modificar o código fonte do shim ou grub, criando um fork ou contribuindo diretamente para eles. Esse seria o único caminho a percorrer?