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?
fonte
Respostas:
Encontrei um ótimo artigo que descreve essa configuração: https://ruderich.org/simon/notes/secure-boot-with-grub-and-signed-linux-and-initrd
tl; dr: Assine a configuração do grub e o initrd com o GPG, gere o binário do grub que aplicará verificações e assinará com chaves do secureboot.
Pacote para ubuntu que implementa uma ideia semelhante: https://github.com/JohnstonJ/ubuntu-secure-boot
fonte
O Grub parece oferecer suporte à verificação de assinaturas usando assinaturas desanexadas. Eu suspeito que essa é sua resposta.
fonte