Inicialização Segura

A inicialização segura é um padrão de segurança desenvolvido por membros do mercado de PCs para certificar-se de que um dispositivo seja iniciado usando apenas o software de confiança do OEM (Fabricante de Equipamento Original). Quando o PC é iniciado, o firmware verifica a assinatura de cada parte do software de inicialização, incluindo drivers de firmware UEFI (também conhecidos como ROMs opcionais), aplicativos EFI e o sistema operacional. Se as assinaturas forem válidas, o PC será inicializado e o firmware dará controle ao sistema operacional.

O OEM pode usar as instruções do fabricante do firmware para criar chaves de inicialização segura e armazená-las no firmware do PC. Ao adicionar drivers UEFI, você também precisará verificar se eles estão assinados e incluídos no banco de dados de Inicialização Segura.

Para obter informações sobre como funciona o processo de inicialização segura, incluindo Inicialização Confiável e Inicialização Medida, confira Proteger o processo de inicialização do Windows 10.

Requisitos de inicialização segura

Para dar suporte à inicialização segura, você deve fornecer o seguinte.

Requisito de hardware Detalhes
Variáveis UEFI Versão 2.3.1 Errata C As variáveis devem ser definidas como SecureBoot=1 e SetupMode=0 com um banco de dados de assinatura (EFI_IMAGE_SECURITY_DATABASE) necessário para inicializar a máquina pré-provisionada com segurança e incluindo uma PK definida em um banco de dados KEK válido. Para obter mais informações, procure os requisitos do sistema System.Fundamentals.Firmware.UEFISecureBoot no download do PDF de Especificações e Políticas do Programa de Compatibilidade de Hardware do Windows.
UEFI v2.3.1 Seção 27 A plataforma deve expor uma interface que esteja de acordo com o perfil UEFI v2.3.1 Seção 27.
Banco de dados de Assinatura UEFI A plataforma deve vir provisionada com as chaves corretas no banco de dados de Assinatura UEFI (db) para permitir a inicialização do Windows. Ela também deve oferecer suporte a atualizações autenticadas seguras nos bancos de dados. O armazenamento de variáveis seguras deve ser isolado do sistema operacional em execução para que não possam ser modificados sem detecção.
Assinatura de firmware Todos os componentes de firmware devem ser assinados usando pelo menos RSA-2048 com SHA-256.
Gerenciador de inicialização Quando a energia é ligada, o sistema deve começar a executar o código no firmware e usar a criptografia de chave pública de acordo com a política de algoritmo para verificar as assinaturas de todas as imagens na sequência de inicialização, incluindo o Gerenciador de Inicialização do Windows.
Proteção contra reversão O sistema deve proteger contra reversão de firmware para versões mais antigas.
EFI_HASH_PROTOCOL A plataforma fornece o EFI_HASH_PROTOCOL (por UEFI v2.3.1) para descarregar operações de hash criptográfico e o EFI_RNG_PROTOCOL (definido pela Microsoft) para acessar a entropia da plataforma.

Bancos de dados e chaves de assinatura

Antes de o PC ser implantado, você, como OEM, armazena os bancos de dados da Inicialização Segura no PC. Isso inclui o banco de dados de assinaturas (db), banco de dados de assinaturas revogadas (dbx) e banco de dados de chaves de registro de chaves (KEK). Esses bancos de dados são armazenados na RAM não volátil (NV-RAM) do firmware no momento da fabricação.

O banco de dados de assinaturas (db) e o banco de dados de assinaturas revogadas (dbx) listam os signatários ou hashes de imagem de aplicativos UEFI, carregadores de sistema operacional (como o Carregador do Sistema Operacional Microsoft ou Gerenciador de Inicialização) e drivers UEFI que podem ser carregados no dispositivo. A lista revogada contém itens que não são mais confiáveis e não podem ser carregados. Se um hash de imagem estiver em ambos os bancos de dados, o banco de dados de assinaturas revogadas (dbx) prevalecerá.

O banco de dados de chaves de registro de chaves (KEK) é um banco de dados separado de chaves de assinatura que pode ser usado para atualizar o banco de dados de assinaturas e o banco de dados de assinaturas revogadas. A Microsoft exige que uma chave especificada seja incluída no banco de dados KEK para que, no futuro, a Microsoft possa adicionar novos sistemas operacionais ao banco de dados de assinatura ou adicionar imagens incorretas conhecidas ao banco de dados de assinaturas revogadas.

Depois que esses bancos de dados foram adicionados e após a validação e teste final do firmware, o OEM bloqueia a edição do firmware, exceto para atualizações assinadas com a chave correta ou atualizações por um usuário fisicamente presente que esteja usando menus de firmware e gera um PK (chave da plataforma). A PK pode ser usada para assinar atualizações para o KEK ou para desativar a Inicialização Segura.

Você deve entrar em contato com o fabricante do firmware para obter ferramentas e assistência na criação desses bancos de dados.

Sequência de inicialização

  1. Depois que o PC é ligado, os bancos de dados de assinatura são verificados em relação à chave da plataforma.
  2. Se o firmware não for confiável, o firmware UEFI deverá iniciar a recuperação específica do OEM para restaurar o firmware confiável.
  3. Se houver um problema com o Gerenciador de Inicialização do Windows, o firmware tentará inicializar uma cópia de backup do Gerenciador de Inicialização do Windows. Se isso também falhar, o firmware deverá iniciar a correção específica do OEM.
  4. Depois que o Gerenciador de Inicialização do Windows começar a ser executado, se houver um problema com os drivers ou o kernel do NTOS, o Ambiente de Recuperação do Windows (Windows RE) será carregado para que esses drivers ou a imagem do kernel possam ser recuperados.
  5. O Windows carrega software antimalware.
  6. O Windows carrega outros drivers de kernel e inicializa os processos de modo de usuário.