De acordo com meu entendimento do Secure Boot, ele provavelmente funciona assim:
- O firmware UEFI tem uma chave fornecida pela Microsoft que é usada para verificação criptográfica de binários inicializáveis.
- Shim é um bootloader assinado, que é assinado por chaves da Microsoft. Como essas mesmas chaves estão presentes no UEFI, Shim é reconhecido como confiável.
- Agora, o Shim foi projetado com a capacidade de usar chaves personalizadas com ele.
- O Debian implementa suas chaves personalizadas no Shim, compilando o Shim com sua CA (arquivo .der).
- O Debian assina kernels com as chaves públicas confiáveis por esta CA. Essas chaves públicas também são disponibilizadas publicamente.
- Agora, quando o Shim é carregado pelo UEFI, ele carrega ainda mais os kernels assinados e, assim, o Secure Boot é implementado.
Minha pergunta é: por que o Debian tornou o arquivo .der e as chaves públicas diretamente disponíveis em seu código-fonte? Isso significa que se um invasor de alguma forma obtiver acesso root a um sistema, ele pode assinar kernels modificados com as chaves públicas do Debian, quebrando o modelo de segurança. Agora, obter acesso root é certamente difícil de um ataque executado remotamente, mas não é completamente impossível.
Ou meu entendimento do mecanismo Secure Boot está errado, ou há outro propósito pelo qual essas chaves são disponibilizadas publicamente. Por favor, corrija meu entendimento.