Inicialização Segura

Secure Boot é um recurso da Unified Extensible Firmware Interface (UEFI) que verifica todos os componentes de firmware e software de baixo nível antes de carregar. Durante a inicialização, o UEFI Secure Boot verifica a assinatura de cada componente do software de inicialização, incluindo drivers de firmware do UEFI (também conhecidos como ROMs opcionais), aplicativos da Extensible Firmware Interface (EFI) e drivers e binários do sistema operacional. Se as assinaturas forem válidas ou confiáveis pelo fabricante original do equipamento (OEM), a máquina inicia e o firmware dá controle ao sistema operacional.

Componentes e processo

A Inicialização Segura depende desses componentes críticos:

  • Chave de plataforma (PK) – estabelece a relação de confiança entre o proprietário da plataforma (Microsoft) e o firmware. A metade pública é PKpub e a metade privada é PKpriv.
  • O banco de dados de KEK (chave de registro de chave) – estabelece a relação de confiança entre o sistema operacional e o firmware da plataforma. A metade pública é KEKpub e a metade privada é KEKpriv.
  • Banco de dados de assinaturas (db) – armazena os resumos criptográficos dos signatários confiáveis (chaves públicas e certificados) dos módulos de código de firmware e software autorizados a interagir com o firmware da plataforma.
  • Banco de dados de assinaturas revogadas (dbx) - Mantém resumos revogados de módulos de código que o OEM identifica como maliciosos, vulneráveis, comprometidos ou não confiáveis. Se um hash está no banco de dados de assinaturas e no banco de dados de assinaturas revogadas, o banco de dados de assinaturas revogadas tem precedência.

A figura e o processo a seguir explicam como o OEM atualiza esses componentes:

Diagrama do fluxo de boot seguro mostrando bancos de dados assinados e validação de chave de troca de chaves durante a inicialização do sistema.

O OEM armazena os resumos do Secure Boot na RAM não volátil (NV-RAM) da máquina no momento da fabricação.

  1. O OEM preenche a assinatura db com os codificadores ou hashes de imagem de aplicativos UEFI, carregadores de sistema operacional (como o Carregador do Sistema Operacional da Microsoft ou o Gerenciador de Inicialização) e drivers UEFI que são confiáveis.
  2. O OEM preenche o dbx de assinaturas revogadas com resumos de módulos que não são mais confiáveis.
  3. O OEM preenche a KEK (chave de registro de chave) com chaves de assinatura que podem atualizar o banco de dados de assinatura e o banco de dados de assinaturas revogadas. Um usuário autorizado fisicamente presente pode editar os bancos de dados por meio de atualizações assinadas com a chave correta ou usando menus de firmware.
  4. Após o OEM adicionar os bancos de dados db, dbx e KEK e concluir a validação e os testes finais do firmware, o OEM bloqueia o firmware para que não seja editado e gera uma chave de plataforma (PK). O OEM pode usar o PK para assinar atualizações para o KEK ou para desativar o Secure Boot.

Durante cada etapa do processo de inicialização, o sistema calcula os resumos do firmware, bootloader, sistema operacional, drivers do kernel e outros artefatos da cadeia de inicialização e os compara com valores aceitáveis. O sistema não permite que firmware e software descoberto como não confiável carreguem. O Secure Boot pode bloquear a injeção de malware de baixo nível ou ataques de malware antes da inicialização.

Inicialização segura na frota do Azure

Hoje, toda máquina implantada na frota de computação do Azure para hospedar cargas de trabalho dos clientes vem de fábricas com o Secure Boot ativado. Ferramentas e processos direcionados estão presentes em todas as etapas do pipeline de desenvolvimento e integração de hardware para garantir que os processos não revertam a habilitação do Secure Boot por acidente ou por intenção maliciosa.

Validar que os digests de db e dbx estão corretos garante:

  • O bootloader está presente em uma das entradas do banco de dados.
  • A assinatura do bootloader é válida.
  • Host inicia com software confiável.

Validar as assinaturas de KEKpub e PKpub confirma que apenas partes confiáveis têm permissão para modificar as definições de software confiável. Por fim, garantir que o Secure Boot esteja ativo valida que o sistema faz cumprir essas definições.

Próximas etapas

Para saber mais sobre como a Microsoft impulsiona a integridade e a segurança da plataforma, veja: