Certificar e assinar o pacote de atualização
Como a atualização de firmware é entregue como um pacote de driver, ela precisará passar por todos os mesmos processos de verificação e assinatura que um pacote de driver regular. O pacote de driver precisará passar nos testes do Windows HLK (Windows Hardware Lab Kit) e precisará ser enviado ao Partner Center para assinatura. Depois de assinado, o pacote de driver será distribuído de volta para o remetente.
A assinatura do pacote de driver é diferente de assinar o firmware UEFI ou o próprio firmware do dispositivo. A assinatura no pacote de driver, entregue por meio do catálogo de segurança, é usada pelo Windows para verificar a integridade do firmware.bin antes de entregá-la à UEFI. O Windows não fornece o catálogo de segurança para o firmware. A assinatura no firmware UEFI ou na atualização de firmware do dispositivo é validada pelo firmware da plataforma e não é verificada pelo Windows. O IHV/OEM é responsável por garantir a integridade e a segurança do firmware por meio da verificação de assinatura, criptografia ou outros meios.
Processo de assinatura de atualização de firmware e requisitos para inicialização segura uefi
Ao assinar atualizações de firmware uefi destinadas ao consumo por dispositivos Windows com inicialização segura UEFI ativa, o processo de assinatura envolve alguma combinação das seguintes tarefas:
Assinando as imagens de firmware atualizadas.
Assinando a cápsula carregando o firmware atualizado.
Assinando o pacote de atualização de firmware fornecido ao sistema operacional; este pacote conterá a cápsula.
Dessas tarefas, somente o nº 3 é sempre necessário. Em um sistema habilitado para inicialização segura, todo o firmware UEFI deve ser assinado, o que implica que o nº 1 é necessário quando a atualização diz respeito a drivers ou aplicativos UEFI. Para sistemas de espera conectados, o nº 1 também é necessário para todo o firmware do sistema. Se a atualização de firmware não estiver protegida por outros meios, a cápsula deverá ser assinada para proteger a atualização de firmware em si e garantir a autenticidade do pacote de atualização antes de ser instalada.
O diagrama a seguir indica o signatário dos vários componentes discutidos no restante deste artigo.
Assinar o firmware atualizado
Quando assinada, a assinatura do firmware atualizado deve ser possível validar pelo carregador de firmware dos sistemas durante a inicialização. No mínimo, isso ocorrerá automaticamente na reinicialização, mas a pré-validação é recomendada por motivos de confiabilidade e experiência do usuário.
Em sistemas Arm, nenhum driver UEFI ou aplicativos separados da imagem de firmware em si pode ser instalado, pois a única imagem UEFI PE/COFF permitida é o carregador do sistema operacional Microsoft Windows (BootMgfw.efi), e ela será verificada usando a única entrada de Banco de Dados Permitido uefi que contém o Microsoft Windows Production CA 2011. Portanto, somente o firmware do sistema e do dispositivo pode ser adicionado. Em sistemas que não são arm, drivers e aplicativos UEFI podem ser assinados com qualquer encadeamento de chaves de volta a uma chave no Banco de Dados Permitido uefi.
O firmware do sistema ou do dispositivo pode ser assinado com uma chave encadeada de volta a uma chave associada à ROM de inicialização do sistema ou ser protegida por outros meios (por exemplo, uma cápsula assinada e, em seguida, instalação protegida).
Assinar a cápsula
O conteúdo da cápsula é determinado pelo OEM. A cápsula pode conter apenas um catálogo de imagens de firmware para atualizar em qualquer formato que o OEM escolher ou pode ser entregue na forma de uma imagem de aplicativo EFI (formato de arquivo PE/COFF). Se a cápsula for um arquivo PE/COFF, ela deverá ser assinada pelo OEM antes de enviar à Microsoft para Assinatura do Pacote de Atualização de Firmware do Windows.
Em sistemas baseados em Arm, como nenhuma chave que não seja a AC de Produção da Microsoft 2011 é permitida no Banco de Dados Permitido da UEFI ("db") e a Microsoft não usará um signatário sob essa AC para assinar código UEFI de terceiros, a carga dessa cápsula não pode usar o serviço loadImage da UEFI regular. No entanto, o aplicativo cápsula pode ser carregado usando uma verificação específica da plataforma em relação à chave pública de ROM de inicialização ou ao PK uefi. Essa carga ainda deve ser medida em TPM PCR[7] como para qualquer outra imagem. Em geral, quando a assinatura de cápsula é considerada necessária (por exemplo, para garantir a integridade e a autenticidade do pacote de atualização completo), e a cápsula pode incluir atualizações de firmware para firmware fora da UEFI, a cápsula deve ser assinada de forma que possa ser verificada usando chaves não UEFI mantidas por plataforma (por exemplo, assinadas usando um encadeamento de chaves de volta a uma chave pública associada à ROM de inicialização ou ao PK da UEFI).
Em sistemas não Arm, a cápsula pode ser um aplicativo EFI, desde que seja assinada com uma chave encadeada de volta a uma entrada no Banco de Dados Permitido uefi. A Inicialização Segura uefi pode ser usada automaticamente para verificar a integridade da cápsula.
Assinar o pacote de atualização de firmware
O pacote de atualização de firmware precisa ser enviado ao Partner Center para ser assinado. Esta etapa criará uma assinatura de catálogo do conteúdo do pacote. A assinatura de catálogo é usada pelo carregador do sistema operacional microsoft para verificar se o pacote é autêntico e não foi adulterado antes que a atualização real seja fornecida ao firmware por meio do UpdateCapsule.
Enviando o pacote de atualização de firmware para o Partner Center para assinatura:
Assine o conteúdo da cápsula de acordo com as instruções na seção anterior.
Crie um pacote de atualização de firmware que inclua a cápsula e assine o pacote de atualização de firmware. Para obter mais informações, consulte Criação de um pacote de driver de atualização.
A partir Windows 8, o Windows não permite pacotes de atualização de firmware assinados pelo OEM Verisign, mesmo em ambientes de teste.
Atualize o firmware instalando o pacote de atualização de firmware.
Instale o HLK (Windows Hardware Lab Kit) no sistema de teste e execute todos os testes aplicáveis ao dispositivo de firmware.
Envie os logs HLK e o driver para o Partner Center para assinatura.
Ao enviar o pacote de driver de atualização de firmware, selecione Windows 8 ou posterior como o sistema operacional aplicável. Se você escolher qualquer sistema operacional de nível inferior, o Partner Center assinará o catálogo no pacote de driver com o algoritmo SHA1. A partir de Windows 8, todos os pacotes de driver de atualização de firmware devem estar assinados com SHA256.
Artigos relacionados
Atualizações de firmware de sistema e dispositivo por meio de um pacote de driver de firmware
Personalizar o firmware para diferentes regiões geográficas