Estou usando a abordagem ubuntu padrão com shim e grub2, combinada com a minha própria chave de plataforma (shin auto-assinado com sbsign) e uma partição raiz criptografada, para garantir a inicialização da instalação do meu 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 boot não criptografada contra modificações maliciosas.
Então, como posso verificar o initrd e a configuração do grub, possivelmente usando um hash sha256, antes de usá-los para inicializar? Essa verificação pode acontecer no shim, no grub ou em alguma outra ferramenta que eu possa usar além ou em vez de shim e / ou grub.
O objetivo desta questão é impedir a execução do kernel com um ambiente modificado (linha de comando do kernel e initrd) para evitar 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 de leitura de tutoriais / blogs sobre inicialização segura, incluindo o Ubuntu e PreLoader.efi da Linux Foundation, todos explicando como a verificação de executáveis incluindo módulos do kernel, mas nenhum deles 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 pedir uma verificação de não-binários no processo de inicialização.
As melhores fontes que encontrei são as de Rod Smith .
O que eu ainda não tentei é modificar o código fonte do shim ou do grub, criando um fork ou contribuindo diretamente para eles. Seria esse o único caminho a percorrer?