O kernel com um nome de arquivo terminando com .efi.signed
é assinado pela Canonical para uso com o Secure Boot. A maioria dos computadores tem firmware que não confia na assinatura da Canonical; é apenas com a ajuda do programa Shim (o binário shimx64.efi
no ESP ) que o kernel assinado é confiável.
Para elaborar um pouco, o caminho de carregamento para componentes assinados do Ubuntu com Secure Boot ativado é assim:
EFI -> Shim -> GRUB 2 -> Kernel -> Kernel modules
- O EFI confia no Shim porque ele foi assinado pela Microsoft, cujas chaves estão incorporadas no firmware.
- O Shim corrige o subsistema de inicialização segura da EFI e inclui a chave pública da Canonical. Shim confia no GRUB 2 porque foi assinado com a chave privada da Canonical.
- O GRUB 2 chama o sistema de inicialização segura da EFI (agora corrigido pelo Shim) para verificar o kernel, que também é assinado com a chave privada da Canonical.
- O kernel verifica se os módulos do kernel estão assinados pela chave privada da Canonical ou por alguma outra chave na cadeia de inicialização segura.
Eu não sei de antemão porque há um arquivo de kernel não assinado no Ubuntu. O arquivo assinado funciona bem, mesmo em sistemas que não suportam inicialização segura (incluindo computadores com BIOS puro). Assim, o arquivo não assinado é bastante redundante, AFAIK.
Observe que cada um dos componentes do Shim em diante pode ser obtido em um formato não assinado ou com suas assinaturas removidas. Se você mesmo construir o Shim, poderá substituir a chave pública da Canonical por sua própria, ou com qualquer outra chave pública que desejar. (A maior parte das distribuições principais tem seus próprios binários Shim com suas próprias chaves embutidas.) Construir Shim a partir da fonte seria inútil, a menos que você faça a Microsoft assiná-lo, o que custaria US $ 100 e um lote de esforço. Se você precisar assinar as coisas sozinho, adicionar sua chave como uma Chave do Proprietário da Máquina (MOK) é mais fácil do que recriar o Shim e assiná-lo pela Microsoft. Você também pode ajustar os conjuntos de chaves suportados diretamente pelo EFI, o que pode evitar a necessidade de Shim. Assim, há muita coisa que você pode mudar sobre como todas essas peças se encaixam. Veja minha página principal em Secure Boot e minha página sobre assumir o controle total do Secure Boot para obter mais detalhes sobre como gerenciar o Secure Boot.